Bigcommerce API更新库存级别(正常库存跟踪和按选项跟踪)

时间:2013-11-07 17:12:10

标签: php bigcommerce

更新11/11/13: 在做了一些测试后,我使用bigcommerce php api遇到了一些问题。搜索sku的属性适用于附加到选项的SKU,但更新它们我似乎遇到了一些问题......

以下是一个示例代码段:

$filter = array('sku' => '230000120078');
$skus = Bigcommerce::getSkus($filter);
foreach($skus as $sku){
    $options = array('inventory_level' => 3);
    Bigcommerce::updateSku($sku->id, $options);
}

我必须遗漏一些东西,但我找不到很多在线文档。 BigCommerce Documentation for updating sku看起来好像我有这个权利,但似乎并没有起作用。有什么建议吗?

原帖:

在深入研究解决方案之前,这是一个更普遍的问题......

我读了this post关于按SKU更新库存水平的问题,答案表明您只能按产品ID更新级别。这是否意味着如果您的商店中有一些产品可以按选项集跟踪库存(每个选项附有SKU),您无法更新每个选项的库存水平?

目前我刚刚写了一个脚本连接到我们的RFID数据库并抓取当前的库存水平并将它们扔进一个csv文件,然后我每天早上上传,但我正在尝试完全自动化这个过程所以我不这样做不得不担心在新库存的24小时之间出售物品。

有没有人使用Bigcommerce api有这方面的经验?

3 个答案:

答案 0 :(得分:2)

因此...

这需要混合解决方案;如果你看一下快速入门指南(不是很有用),你会发现这个

  

目前,有两种方法可以搜索SKU - GET   / products?sku =“something”或GET / products / skus?sku =“something”。该   第一次通话仅返回产品级别SKU而非选项级别SKU。

他们忽略了要提到的是,要获得产品级别的SKU,唯一有效的方法是最好的方法。

我的解决方案是在库中包含另一个函数来调整/ products的路径?skup = xxxxx

public static function getSkuTop($filter = false)
{
    $filter = Filter::create($filter);
    return self::getCollection('/products' . $filter->toQuery(), 'Sku');
}

在我的电话中我有几个简单的逻辑位

$filter = array('sku' => '10026');
$skus = Bigcommerce::getSkus($filter);

if(is_array($skus)){
    foreach($skus as $sku){
        $sku->inventory_level = 27;
        $sku->update();
    }   
} else {
    $skus = Bigcommerce::getSkuTop($filter);
    if(is_array($skus)){
        foreach($skus as $sku){
            $options = array('inventory_level' => 28);
            Bigcommerce::updateProduct($sku->id, $options);
        }   
    }
}

可能不是那么好,但这是我能让它发挥作用的唯一方法!

答案 1 :(得分:1)

是的,我一直在研究同样的问题,我想出的解决方案是检查产品级别的SKU是否为空白。如果是这样,则inventory_level由产品下的SKU资源管理。

答案 2 :(得分:1)

就实际更新SKU而言,我想出了最简单的方法,即以下内容。而不是尝试运行updateSku函数,我这样做......

$filter = array('sku' => '230000120078');
$skus = Bigcommerce::getSkus($filter);
foreach($skus as $sku){
    $sku->inventory_level = 4;
    $sku->update();
}

这会更新相关图书的广告资源。

就保罗的回答而言,他是完全正确的,它引导我回答这个问题。