Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Bigcommerce API更新库存水平(正常库存跟踪和按选项跟踪)_Php_Bigcommerce - Fatal编程技术网

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

Php Bigcommerce API更新库存水平(正常库存跟踪和按选项跟踪),php,bigcommerce,Php,Bigcommerce,2013年11月11日更新: 在做了一些测试之后,我在使用bigcommerce php api时遇到了更多的问题。搜索sku的属性对于附加到选项的sku来说效果很好,但是更新它们时我似乎遇到了一些问题 以下是一个示例片段: $filter = array('sku' => '230000120078'); $skus = Bigcommerce::getSkus($filter); foreach($skus as $sku){ $options = array('invento

2013年11月11日更新: 在做了一些测试之后,我在使用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更新库存水平的内容,答案表明您只能按产品ID更新库存水平。这是否意味着,如果您有一家商店,其中的某些产品按选项集跟踪库存,并且每个选项都附有SKU,则您无法更新每个选项的库存水平

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


有人使用Bigcommerce api对此有经验吗?

是的,我一直在解决同一问题,我提出的解决方案是检查产品级别的SKU是否为空。如果是这样,库存水平由产品下SKU资源中的管理。

是的,我一直在处理同一问题,我提出的解决方案是检查产品水平上的SKU是否为空。如果是这样,库存水平由产品下SKU资源中的管理。

就实际更新SKU而言,我找到了最简单的方法,如下所示。我没有尝试运行updateSku函数,而是这样做

$filter = array('sku' => '230000120078');
$skus = Bigcommerce::getSkus($filter);
foreach($skus as $sku){
    $sku->inventory_level = 4;
    $sku->update();
}
这会更新关联sku的库存


就Paul的回答而言,他是绝对正确的,这让我找到了这个答案。

就实际更新SKU而言,我找到了最简单的方法,如下所示。我没有尝试运行updateSku函数,而是这样做

$filter = array('sku' => '230000120078');
$skus = Bigcommerce::getSkus($filter);
foreach($skus as $sku){
    $sku->inventory_level = 4;
    $sku->update();
}
这会更新关联sku的库存

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

所以

这需要一个混合解决方案;如果你看一下《快速入门指南》并没有什么帮助,你会发现这一点

目前,有两种方法可以搜索SKU-GET /产品?sku=某物或GET/products/sku?sku=某物。这个 第一次调用仅返回产品级SKU,不返回选项级SKU

他们忽略了一点,那就是要获得产品级SKU,唯一有效的方法就是顶级方法

我的解决方案是在库中包含另一个函数,该函数将路径调整为just/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-GET /产品?sku=某物或GET/products/sku?sku=某物。这个 第一次调用仅返回产品级SKU,不返回选项级SKU

他们忽略了一点,那就是要获得产品级SKU,唯一有效的方法就是顶级方法

我的解决方案是在库中包含另一个函数,该函数将路径调整为just/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);
        }   
    }
}
也许没那么好,但这是我让它工作的唯一方法