在修改单个项目后,重新编制索引的正确方式是什么?
示例上下文:
我们公司依靠名为Stone Edge的第三方库存管理平台.我们还在多个店面上销售商品,包括Magento,Amazon,Ebay和Buy.com
Stone Edge每10分钟一次会从网站下载所有订单,然后将库存调整寄回我们的Magento商店.这是通过向存储在我们的网络服务器上的一个PHP脚本发送一个简单的http请求,其中包含了自上次更新以来有库存变化的库存中的每个项目的键值对数组.
在其中每个完成保存功能后,该项目将被重新编入索引,以免在更新时间和下一个重新建立索引之间反映0个库存.
我在Magento论坛上讨论了如何重新索引项目:
$item->setForceReindexrequired(true); Mage::getSingleton('index/indexer')->processEntityAction($item,Mage_CatalogInventory_Model_Stock_Item::ENTITY,Mage_Index_Model_Event::TYPE_SAVE);
在这套说明之前,你会看到类似的东西
$item = Mage::getModel('cataloginventory/stock_item')->loadByProduct($entityid); $item->addQty($change); $item->save();
但是,完成这个之后,一个问题变得很明显.这些项目本身被重新编入索引,但是如果它们是分组产品的成员,则组合产品未更新.
如果我碰巧拿出一个,我会发布一个答案.