BigCommerce API更新库存水平(正常库存跟踪和按选项跟踪)


Bigcommerce API Update Inventory Levels (both normal inventory tracking and tracking by options)

更新 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);
}

我一定错过了一些东西,但我在网上找不到太多文档。 用于更新SKU的BigCommerce文档使我似乎拥有此权利,但它似乎不起作用。 有什么建议吗?

原文:

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

我读了这篇关于按SKU更新库存水平的文章,答案表明您只能按产品ID更新库存水平。 这是否意味着,如果您的商店包含某些按选项集跟踪库存的产品(每个选项都附有 SKU),则无法更新每个选项的库存水平?

目前,我

刚刚编写了一个脚本,该脚本连接到我们的RFID数据库并获取当前的库存水平并将它们放入csv文件中,然后我每天早上上传该文件,但是我正在尝试完全自动化该过程,因此我不必担心在24小时新库存之间售罄商品。

有没有人使用Bigcommerce api有任何经验?

所以...

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

目前,有两种方法可以搜索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);
        }   
    }
}

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

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

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

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

这会更新关联 SKU 的清单。

至于保罗的回答,他是绝对正确的,这让我得出了这个答案。