Вызов SKU getProducts Bigcommerce с фильтром Limit

В настоящее время я пытаюсь перетащить все свои продукты из BC в локальную БД, чтобы я мог с ними работать. Ограничения вызывают у меня большую головную боль!

Раньше этот код работал нормально, чтобы получить все продукты и артикулы.

$filter = array('limit' => 200, 'page' => 1);
$products = Bigcommerce::getProducts($filter);

foreach ($products as $product)
{
$ParentSKU = $product->sku;
$BC_Product_ID = $product->id;
   if ($product->skus != '')
   {
   foreach ($product->skus as $sku)
   $ChildSKU = $sku->sku;
   $Child_BC_Product_ID = $sku->id;
   }
}

Теперь это использует библиотеку PHP и работает, если продукт имеет менее 50 SKU (я думаю, что это число правильное). Это потому, что он делает вызов ....

https://store.mybigcommerce.com/api/v2/products/#productid#/skus.json?max_id=9999&limit=250

И этот результат возвращает только 50.

Теперь я могу получить их все, добавив ограничение фильтра, подобное этому....

https://store.mybigcommerce.com/api/v2/products/#productid#/skus.json?limit=250

250 — это максимальное ограничение, которое подойдет для количества настраиваемых параметров, которые у меня есть для каждого продукта. Но как мне добавить этот фильтр в мой

$product->skus

команда? Я пробовал делать так...

$filtertest = array ('limit' => 200);
$product->skus($filtertest);

Но когда я var_dump это, кажется, полностью игнорирует фильтр?? Любые идеи, как я могу добавить фильтр с помощью этого механизма?

Я бы хотел, чтобы у BC была возможность просто показать ВСЕ родительские/дочерние SKU в одном вызове как часть экспортируемых продуктов, что значительно облегчило бы работу!

Любая помощь высоко ценится!


person Matt The Ninja    schedule 07.02.2014    source источник


Ответы (1)


Итак, вместо того, чтобы получать SKU для каждого продукта, мне было проще получить ВСЕ SKU по отдельности.

Во-первых, я узнал, сколько всего SKU доступно, свернув следующий URL-адрес.

/api/v2/products/skus/count.json

И то же самое для исходных продуктов

/api/v2/products/count.json

Разделил их на 100 (как я бы пролистал их по 100)

Затем я использовал следующие команды в PHP API, предоставленном bigcommerce для SKU.

Bigcommerce::getSkus($filter)    

За продуктами...

Bigcommerce::getProducts($filter)  

Затем я использовал следующий фильтр.

$filter = array('limit' => 100, 'page' => $AmountOfPagesReturnedFromCurl);

Затем это будет перебирать все SKU/продукты, которые я могу добавить в цикл команд SQL, чтобы добавить их в мою БД.

Я надеюсь, что это будет кому-то полезно, мне очень нравится работать с Bigcommerce.

person Matt The Ninja    schedule 24.02.2014