我正在使用以下代码通过我开发的扩展程序更新Magento商店的库存库存数量:
Mage::getModel("cataloginventory/stock_item")
->loadByProduct($pid)
->setQty($qty)
->save();
现在,从我的测试来看,这很好用,但是如果这对可以在Magento中创建的不同类型的产品(例如简单和复杂的产品)产生任何负面影响,我有点担心。
以上是更新SOH的正确方法,我是否需要以不同的方式处理复杂产品?我的直觉是,我不需要对复杂的产品做任何不同的事情,因为它们最终都来自一个拥有自己库存的简单产品?
任何建议表示赞赏
答案 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如何添加库存。