我正在使用以下代码来更新大型商务中的产品,并使用我们的亚马逊列表中的新库存编号 - 它适用于任何没有选项集的产品(特别是手套和衬衫,显然每个都有单独的库存水平S,M,L)。
$api_url = 'https://store-558hrkjw.mybigcommerce.com/api/v2/products/'.$nearrow['ProductID'].'.json';//put inventory
$StockdataRAW = array('inventory_level' => 500);//$nearrow['CurrentStockLevel']
$Stockdata = json_encode($StockdataRAW);
$ch = curl_init();
curl_setopt( $ch, CURLOPT_URL, $api_url );
curl_setopt( $ch, CURLOPT_HTTPHEADER, array ('Content-type: application/json', 'Accept: application/json') );
curl_setopt( $ch, CURLOPT_VERBOSE, 0 );
curl_setopt( $ch, CURLOPT_CUSTOMREQUEST, 'PUT');
curl_setopt($ch, CURLOPT_SSL_CIPHER_LIST, 'TLSv1');
curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, 0 );
curl_setopt($ch, CURLOPT_POSTFIELDS, $Stockdata);
curl_setopt( $ch, CURLOPT_USERPWD, "UID:PW" );
curl_setopt( $ch, CURLOPT_SSL_VERIFYHOST, 0 );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );
// Switch on verbose information and display it on the web page.
curl_setopt($ch, CURLOPT_VERBOSE, true);
curl_setopt($ch, CURLOPT_STDERR, fopen('php://output', 'w+'));
$response = curl_exec( $ch );
$result = json_decode($response);
print_r($result);
$info = curl_getinfo($ch);
curl_close($ch);
当我使用此代码作为选项时,我会为每个产品ID获得404 - 任何想法?
答案 0 :(得分:2)
您的代码适用于没有选项集的产品,因为您正在点击用于单个产品的products endpoint,而没有选项集/变体。
如果您有带选项/变体的产品(例如手套和衬衫),那些将是SKU,您可以使用SKUs endpoint更新这些产品 - 确保您拥有与每个相关的正确ID SKU。
Here are the API docs,如果您遇到更多问题,可以参考。请注意if (Meteor.isCordova) {
var method = 'createDocumentClient';
} else {
var method = 'createDocument';
}
Meteor.call(method, myDataToSave, function( error, result)
{
console.log(error, result);
});
和Product
对象之间的差异。
答案 1 :(得分:0)
我可能会遗漏一些东西,但看起来你并没有告诉api你指的是哪个选项,所以它无法正确回复并因此给你一个404.