Как обновить inventory_level продукта по идентификатору sku в Bigcommerce?

Я пытаюсь обновить уровень запасов продуктов, но, к сожалению, не добился успеха. Вот мой код. Я хочу обновить inventory_level продукта, но включить это.

<?php

require "bigcommerce.php";
use Bigcommerce\Api\Client as Bigcommerce;


Bigcommerce::configure(array(
    'store_url' => 'https://store-nos85a.mybigcommerce.com/',
    'username' => 'admin',
    'api_key' => '4b7c4bba19f290a728e00be6ae7133cda71f477b'
    ));

Bigcommerce::setCipher('RC4-SHA');
Bigcommerce::verifyPeer(false);
            $product = Bigcommerce::getProduct(76); 
            print_r($product->skus);
                       foreach($product->skus as $sku)
                        {
                           
                            if($sku->id==5)
                                {
                              $fields = array("inventory_level"=>112);
                              Bigcommerce::updateProduct(76,$fields);
                                }
                            echo "id :  ".$sku->id;
                            echo " Invntory Level: ".$sku->inventory_level."<br/>";
                            echo " SKU : ".$sku->sku."<br/>";
                           
                        }
                                                    
           
?>

Здесь Bigcommerce::updateProduct(76,$field); не работает.


person Jinank Thakker    schedule 09.10.2013    source источник


Ответы (2)


Я пытаюсь сделать то же самое (другой язык программирования). У меня звонок в их поддержку. Похоже, вы все еще должны ссылаться на product_id.

Вы не можете обновить просто по SKU. Вы должны знать product_id. Я обошел это, запросив все продукты и загрузив ответ в массив (product_id, sku и т. д.). Затем я читаю массив, получаю количество из нашей системы, используя SKU, и публикую (PUT) inventory_level, используя связанный product_id.

ИМХО это большая оплошность с их стороны. Кого волнует, какой product_id на сайте?

Я запросил расширение, позволяющее обновлять по SKU.

person GregW    schedule 14.10.2013
comment
Я тоже обращался к ним по этому вопросу. Они, похоже, не слишком заинтересованы в том, чтобы исправить это быстро (или что-то еще). Итак, мы реализовали одно и то же решение. - person Jake Braun; 18.11.2013
comment
да, я также связался с ними по поводу этой ошибки, но не думаю, что они изменят эти вещи в ближайшем будущем. Мы должны обновить inventory_level только по product_id, а не по sku :( - person Jinank Thakker; 21.03.2014

Нет необходимости загружать ВСЕ продукты, почему бы не получить ТОЛЬКО продукт с нужным вам артикулом?

GET: /api/v2/products?sku=sku-that-I'm-interested-in

проанализировать ответ для идентификатора (это идентификатор продукта для продукта с этим SKU)

Затем выполните PUT, используя этот идентификатор продукта.

person Memotronics    schedule 18.03.2014
comment
хорошо, кажется, почти все в порядке .. Я сделаю это так .. Большое спасибо .. :) - person Jinank Thakker; 21.03.2014
comment
Я согласен с этим ответом, перебираю ваши SKU и получаю идентификаторы из SKU, а затем updateProduct() для полученного идентификатора. Я могу предоставить чистый ответ cURL, который может быть проще реализовать/понять, если это необходимо. Хотя этот ответ кажется простым. - person JPMC; 23.07.2015
comment
К сожалению, это не работает при работе с продуктами, где каждый вариант продукта имеет разные артикулы и отдельные уровни запасов. - person Eric Kigathi; 19.11.2015