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)

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...