2016-04-20 3 views
0

Есть ли способ создать несколько вариантов продукта для одного продукта с одним вызовом POST?Shopify - API-интерфейс продукта

Я знаю один вариант продукта может быть сделано с:

POST /admin/products/#{id}/variants.json 
{ 
    "variant": 
    { 
     "option1": "Default Title", 
     "price": "1.00" 
    } 
} 

Можно ли выполнить одну POST, чтобы создать несколько вариантов для того же идентификатора продукта?

ответ

0

Да. Вот пример узла для добавления новых вариантов к существующему продукту. Предостережение заключается в том, что вам нужно заполнить массив вариантов идентификаторами вариантов, которые вы хотите сохранить:

var https = require('https'); 

var cred = new Buffer("xxx:yyy").toString('base64'); 

var headers = {Authorization: "Basic "+cred, "Content-Type": "application/json"}; 
var productId = 1925263361; 
var options = { 
    host: 'kotntest1.myshopify.com', 
    port: 443, 
    path: '/admin/products/'+productId +'.json', 
    method: 'PUT', 
    headers: headers 
}; 

// Setup the request. The options parameter is 
// the object we defined above. 
var req = https.request(options, function(res) { 
    res.setEncoding('utf-8'); 

    var responseString = ''; 

    res.on('data', function(data) { 
    responseString += data; 
    //console.log(data); 
    }); 

    res.on('end', function() { 
    var resultObject = JSON.parse(responseString); 
    console.dir(resultObject); 
    }); 
}); 

req.on('error', function(e) { 
    // TODO: handle error. 
    console.log(e); 
}); 

var product = { 
    product:{ 
    id: productId, 
    variants: [ 
     { 
     id:5991257025 //existing variant id 
     }, 
     { 
     id:5991257089 //existing variant id 
     }, 
     { 
     id:19762423495 //existing variant id 
     }, 
     // new variant details 
     { 
     title:'v4', // new variant details 
     option1: 'green', 
     option2: "Honda", 
     option3: 'Civic' 
     },{ 
     title:'v5', 
     option1: 'pink', 
     option2: "Honda", 
     option3: 'Civic' 
     },{ 
     title:'v6', 
     option1: 'yellow', 
     option2: "Honda", 
     option3: 'Civic' 
     },{ 
     title:'v7', 
     option1: 'brown', 
     option2: "Honda", 
     option3: 'Civic' 
     } 
     ] 
    } 

}; 

req.write(JSON.stringify(product)); 
req.end(); 
+0

Спасибо bk за ответ, но моя проблема в том, что сам продукт уже существует. Я хочу добавить новые варианты к существующему продукту, поэтому не думайте, что POST на API продукта будет работать. Промышленность, в которой я работаю, - это одежда, и это не редкость для дизайнеров постоянно добавлять цвета и/или размеры к существующему продукту. Вот почему в моем примере я использовал вызов API-интерфейса продукта. –

+0

просто используйте PUT. См. Мой новый образец – bknights

Смежные вопросы