gpt4 book ai didi

Magento:以编程方式重建平面目录

转载 作者:行者123 更新时间:2023-12-04 07:13:32 25 4
gpt4 key购买 nike

我正在使用 cron 每晚导入库存更改。当我尝试更改产品信息(价格等)时,出现以下错误:

Column not found: 1054 Unknown column 'e.display_price_group_0' in 'field list'

我可以通过单击缓存管理面板中的“重建平面目录产品”来解决这个问题。我设置了一个 cron 来使用以下代码以编程方式执行此操作:
Mage :: getResourceModel( 'catalog/product_flat_indexer' ) -> rebuild();

运行脚本时没有出现任何错误,但“未找到列”错误仍然存​​在。

有谁知道除了通过管理界面如何重建平面目录?

最佳答案

以前我说这样做:

Mage::getModel('catalog/product_flat_indexer')->rebuild();
Note: it's getModel and NOT getResourceModel.

这不是真的。要么有效。但是,我通过一个相当痛苦的试错过程发现,除非我还重建整个目录,否则平面产品表无法正确重建。这就是我最终解决我的问题的方法:
Mage::getSingleton('catalog/index')->rebuild();
Mage::getResourceModel('catalog/product_flat_indexer')->rebuild();
Mage::getSingleton('catalog/url')->refreshRewrites();
Mage::getModel('catalog/product_image')->clearCache();
Mage::getSingleton('catalogsearch/fulltext')->rebuildIndex();
Mage::getSingleton('cataloginventory/stock_status')->rebuild();
$flag = Mage::getModel('catalogindex/catalog_index_flag')->loadSelf();
if ($flag->getState() == Mage_CatalogIndex_Model_Catalog_Index_Flag::STATE_RUNNING) {
$kill = Mage::getModel('catalogindex/catalog_index_kill_flag')->loadSelf();
$kill->setFlagData($flag->getFlagData())->save();
}
$flag->setState(Mage_CatalogIndex_Model_Catalog_Index_Flag::STATE_QUEUED)->save();
Mage::getSingleton('catalogindex/indexer')->plainReindex();

基本上,只需重建一切。不用担心优化。就像有人曾经说过的,“过早的优化是万恶之源”。

关于Magento:以编程方式重建平面目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2471934/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com