1

目前我正在尝试研究如何加快在 magento 中保存产品的速度。我们通过 Magento API 导入产品,每个产品都需要很长时间才能更新。在 catalog_product_save_* 事件上触发了大量的观察者。

你有什么提示什么观察者不重要,我可以禁用它们,或者我可以用低影响禁用什么。

感谢您的任何建议。哈罗

4

2 回答 2

3

产品保存后花费最多时间的过程是索引器。manual您可以像这样以编程方式将索引模式设置为:

$indexers = Mage::getSingleton('index/indexer')->getProcessesCollection(); 
foreach ($indexers as $indexer) {
   $indexer->setMode(Mage_Index_Model_Process::MODE_MANUAL)->save();
}

导入后将其设置为auto

$indexers = Mage::getSingleton('index/indexer')->getProcessesCollection(); 
foreach ($indexers as $indexer) {
   $indexer->setMode(Mage_Index_Model_Process::MODE_REAL_TIME)->save();

 }

此外,根据您要导入的内容,您可能希望重新索引您的数据。

可能的索引列表:

  1. 产品属性
  2. 产品价格
  3. 目录 URL 重写
  4. 产品平面数据
  5. 类别平面数据
  6. 分类产品
  7. 目录搜索索引
  8. 标记聚合数据
  9. 库存状况

要执行重新索引:

$process = Mage::getModel('index/process')->load($id);
$process->reindexAll();

$id上面列表中的列表索引在哪里。

于 2012-06-14T10:22:36.407 回答
3

只需将所有索引的索引模式设置为“手动”即可。
因此,每次保存产品后,magento 都不会运行重新索引。
不要忘记将它们恢复正常并在产品导入完成后运行完整的重新索引。

于 2012-06-14T08:23:25.317 回答