使用cURL更新BigCommerce中的库存

时间:2016-06-13 22:49:47

标签: php curl bigcommerce inventory-management

我正在使用以下代码来更新大型商务中的产品,并使用我们的亚马逊列表中的新库存编号 - 它适用于任何没有选项集的产品(特别是手套和衬衫,显然每个都有单独的库存水平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 - 任何想法?

2 个答案:

答案 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.