是的。以下是用於向現有產品添加新變體的節點示例。需要注意的是,您必須使用要保留的變體的ID來填充變體陣列:
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();
感謝bk的回覆,但我的問題是產品本身已經存在。我正在尋求爲現有產品添加新的變體,因此不要認爲產品API上的POST會起作用。我工作的行業是服裝,設計師經常爲現有產品添加顏色和/或尺寸的情況並不少見。這就是爲什麼我使用調用Product Variant API的例子。 –
只是使用PUT。看到我的新樣本 – bknights