2013-10-09 7 views
5

Próbuję zaktualizować poziom zapasów produktów, ale niestety nie osiągam sukcesu. Oto mój kod. chcę zaktualizować „inventory_level” produkt, ale umożliwi to zrobić ..Jak zaktualizować "inventory_level" produktu według sku id w Bigcommerce?

<?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/>"; 

         } 


?> 

Here " Bigcommerce::updateProduct(76,$field); " is not working.. 
Please Help me.. 
Thanks.. 

Odpowiedz

4

staram się robić to samo (inny język programowania). Mam wezwanie do ich wsparcia. Wygląda na to, że nadal musisz odwołać się do product_id.

Nie można aktualizować po prostu za pomocą kodu SKU. Musisz znać product_id. Zwalczyłem to poprzez żądanie wszystkich produktów i załadowanie odpowiedzi do tablicy (product_id, sku, itp.). Następnie odczytałem tablicę, pobrałem ilość z naszego systemu za pomocą SKU i opublikowałem (PUT) poziom inventory na podstawie powiązanego product_id.

IMHO to ogromne niedopatrzenie z ich strony. Kogo obchodzi, co product_id znajduje się na stronie?

Poprosiłem o ulepszenie, które umożliwia aktualizację przez SKU.

+1

Kontaktowałem się z nimi również w tej sprawie. Nie wydawali się zbyt zainteresowani tym szybko (lub czymkolwiek innym). Dlatego wdrożyliśmy to samo rozwiązanie. –

+0

Tak, również skontaktowałem się z nimi w sprawie tego błędu, ale nie sądzę, że zmienią te rzeczy w niedalekiej przyszłości. Musimy zaktualizować "inventory_level" po prostu przez product_id, a nie przez sku :( –

8

Nie musisz pobierać WSZYSTKICH produktów, dlaczego nie pobrać TYLKO produktu, który ma sku, czego potrzebujesz?

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

analizowania odpowiedzi na identyfikator (to identyfikator produktu dla produktu z tym magazynowej)

Następnie do PUT użyciu tego identyfikatora produktu.

+1

OK, wydaje się prawie w porządku ... Zrobię to, sposób .. Dziękuje bardzo .. :) –

+1

Zgadzam się z tą odpowiedzią, powtórzenie kodu SKU i pobranie identyfikatora z SKU, następnie updateProduct() na wynikowym identyfikatorze. Mogę podać czystą odpowiedź cURL, która może być łatwiejsza do wdrożenia/zrozumienia w razie potrzeby. Chociaż ta odpowiedź wydaje się prosta. – JPMC

+0

Nie działa to niestety w przypadku produktów, w których każda opcja produktu ma inny kod SKU i oddzielne poziomy zapasów. –

Powiązane problemy