Я использую следующий код для обновления продуктов в большой коммерции новыми инвентарными номерами из наших списков Amazon — он отлично работает для любого продукта, у которого нет набора опций (особенно перчатки и рубашки, которые, очевидно, имеют отдельные уровни инвентаря для каждого S, M). , Л).
$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);
Когда я использую этот код для опций, я получаю 404 для каждого идентификатора продукта — есть мысли?
Ваш код работает для продуктов без наборов опций, потому что вы попали в конечная точка продуктов, который используется для отдельных продуктов, без наборов опций / вариантов.
Если у вас есть продукты с вариантами / вариантами (например, перчатки и рубашки), это будут SKU, и вы можете обновить их, используя Конечная точка SKU — убедитесь, что у вас есть правильный идентификатор, связанный с каждым SKU.
Вот документы по API, на который вы можете сослаться, если у вас возникнут какие-либо проблемы. Обратите внимание на разницу между Product
а также SKU
объекты.
Возможно, я что-то упускаю, но похоже, что вы не указываете API, на какую опцию вы ссылаетесь, поэтому он не может ответить правильно и в результате выдает 404.