2016-04-20 224 views
0

有一种方法可以通过一次POST调用为单个产品创建多个产品变体?Shopify - 产品变体API

我知道一个产品变量可以进行:

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

是否有可能执行一个POST到相同的产品ID创建多个变种?

回答

0

是的。以下是用于向现有产品添加新变体的节点示例。需要注意的是,您必须使用要保留的变体的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(); 
+0

感谢bk的回复,但我的问题是产品本身已经存在。我正在寻求为现有产品添加新的变体,因此不要认为产品API上的POST会起作用。我工作的行业是服装,设计师经常为现有产品添加颜色和/或尺寸的情况并不少见。这就是为什么我使用调用Product Variant API的例子。 –

+0

只是使用PUT。看到我的新样本 – bknights