1

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

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

现在,根据我的测试,这工作正常,但是我有点担心这是否会对可以在 Magento 中创建的不同类型的产品(例如简单和复杂的产品)产生任何负面影响。

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

任何建议表示赞赏

4

1 回答 1

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 如何增加库存。

于 2013-09-19T15:28:49.990 回答