php – Magento正确的方式重建索引单项和相关组产品

前端之家收集整理的这篇文章主要介绍了php – Magento正确的方式重建索引单项和相关组产品前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
修改单个项目后,重新编制索引的正确方式是什么?

示例上下文:

我们公司依靠名为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();

但是,完成这个之后,一个问题变得很明显.这些项目本身被重新编入索引,但是如果它们是分组产品的成员,则组合产品未更新.

有一个明显的问题,我需要解决.这个问题的最佳方法是什么?

如果我碰巧拿出一个,我会发布一个答案.

首先,感谢每个产品的reindex代码.正在寻找

至于更新父母,我会在更新简单产品时收集一个数组中的产品的父代号.

$masterIds [] = Mage :: getModel(‘catalog / product_type_configurable’)
– > getParentIdsByChild($product-> getId())

而当你完成了简单的产品后,只需要重新编译它们,并将它们设置为重新编号,并且 – > setForceReindexrequired(true)

猜你在找的PHP相关文章