Php Bigcommerce API更新库存水平(正常库存跟踪和按选项跟踪)
2013年11月11日更新: 在做了一些测试之后,我在使用bigcommerce php api时遇到了更多的问题。搜索sku的属性对于附加到选项的sku来说效果很好,但是更新它们时我似乎遇到了一些问题 以下是一个示例片段: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
$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);
}
}
}
也许没那么好,但这是我让它工作的唯一方法