0

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

4

2 回答 2

2

您的代码适用于没有选项集的产品,因为您正在点击products 端点,该端点用于单个产品,没有选项集/变体。

如果您有带有选项/变体的产品(例如手套和衬衫),这些将是 SKU,您可以使用SKU 端点更新这些产品——确保您具有与每个 SKU 关联的正确 ID。

这是 API 文档,如果您遇到更多问题,可以参考。Product注意和SKU对象之间的区别。

于 2016-06-13T22:56:23.807 回答
0

我可能遗漏了一些东西,但看起来你没有告诉 api 你指的是哪个选项,所以它无法正确回复并因此给你一个 404。

于 2016-06-13T22:59:26.087 回答