通过简单和复杂产品的扩展更新Magento库存

时间:2013-07-30 00:19:11

标签: magento model magento-1.7 inventory

我正在使用以下代码通过我开发的扩展程序更新Magento商店的库存库存数量:

Mage::getModel("cataloginventory/stock_item")
  ->loadByProduct($pid)
  ->setQty($qty)
  ->save();

现在,从我的测试来看,这很好用,但是如果这对可以在Magento中创建的不同类型的产品(例如简单和复杂的产品)产生任何负面影响,我有点担心。

以上是更新SOH的正确方法,我是否需要以不同的方式处理复杂产品?我的直觉是,我不需要对复杂的产品做任何不同的事情,因为它们最终都来自一个拥有自己库存的简单产品?

任何建议表示赞赏

1 个答案:

答案 0 :(得分:3)

只要您只更新简单,就可以这样了。实际上,所有其他非虚拟产品类型都是从简单产品中获取库存。

您甚至可能想要添加

$stockItem = Mage::getModel("cataloginventory/stock_item")
    ->loadByProduct($pid)
    ->setQty($qty);

if ($stockItem->getCanBackInStock() && $stockItem->getQty() > $stockItem->getMinQty()) {
    $stockItem->setIsInStock(true)
        ->setStockStatusChangedAutomaticallyFlag(true);
}

$stockItem->save();

请参阅Mage_CatalogInventory_Model_Stock::backItemQty(),了解Magento如何添加库存。