php - Magento 重新索引单个项目和相关组产品的正确方法

标签 php magento model

在修改后重新索引单个项目的正确方法是什么。

示例上下文:

我们公司依赖名为 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/

相关文章:

php - 将 magento 联系表单数据存储在数据库中?

magento - 单击magento中的主类别时显示所有子类别产品?

javascript - Magento : One Page Checkout Alignment Issue (Payment Method)

model-view-controller - MVC::什么是模型?

javascript - 如何在 SAPUI5 上检索字段值

php - 我在从 php 执行 MySQL 触发器时遇到问题

php - 使用 php 连接到 sql "server group"以对多个数据库运行查询

php - 如何按组 ID 计算 php 中 SQL 列的平均值并显示在 HTML 页面上?

php - cakephp foreach循环只显示标题的第一个字母

php - MySQL 声明 PHPMyADMIN