在修改后重新索引单个项目的正确方法是什么。
示例上下文:
我们公司依赖名为 Stone Edge 的第三方库存管理平台。我们还在多个店面销售商品,包括 Magento、Amazon、Ebay 和 Buy.com
每 10 分钟一次,Stone Edge 将从站点下载所有订单,然后将库存调整发送回我们的 Magento 商店。这是通过向存储在我们的网络服务器上的 php 脚本发送一个简单的 http 请求来完成的,其中包含自上次更新以来库存中的每个库存项目的键值对数组。
在对每个项目完成保存功能后,项目会重新编制索引,以免在更新时间和下一次站点范围重新编制索引之间反射(reflect)库存为 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();
然而,完成这个之后,问题就出现了。项目本身已重新编制索引,但如果它们是分组产品的成员,则不会更新组产品。
我需要解决一个明显的问题。解决此问题的最佳方法是什么?
如果我碰巧想到一个答案,我会发布一个答案。
最佳答案
请注意,与分组产品相关的生产集合将尝试加入价格指数。 所以你需要运行价格指数然后你会看到结果。 要仅运行价格指数,您可以运行,进入 magento 根文件夹,然后:
php shell/indexer.php --reindex catalog_product_price
祝你好运!
关于php - Magento 重新索引单个项目和相关组产品的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13846843/