Magento 重新索引单个项目和相关组产品的正确方法
对单个项目进行修改后,重新编制其索引的正确方法是什么?
示例上下文:
我们公司依赖于名为Stone Edge的第三方库存管理平台。我们还在多个店面上销售商品,包括Magento,Amazon,Ebay和 Buy.com
每10分钟一次 Stone Edge将从站点下载所有订单,然后将库存调整发送回我们的Magento商店。这是通过向存储在我们Web服务器上的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();
但是,在完成此操作后,问题变得明显。项目本身已重新编制索引,但如果它们是分组产品的成员,则不会更新组产品。
有一个明显的问题需要我来解决。解决这个问题的最佳方法是什么?
如果我碰巧想出一个答案,我会发布一个答案。