Magento - программно отключить автоматическое индексирование - PullRequest
6 голосов
/ 24 марта 2011

В Magento 1.9 Enterprise (который по сути является версией 1.4 Community Edition), как правильно отключить индекс программным способом, чтобы он не переиндексировался после каждого обновления продукта?

У нас сложная процедура импорта товаров, поэтому мы не можем использовать встроенный каталог импорта.

Ответы [ 2 ]

34 голосов
/ 24 марта 2011

Установка индексатора в «ручной» режим предотвратит автоматическое индексирование при сохранении / редактировании / удалении.

В MAGE_ROOT / shell вы можете найти скрипт с именем indexer.php, который между другими позволяет вамвключить / отключить индексаторы:

php indexer.php --mode-manual catalog_url
php indexer.php --mode-realtime catalog_url

У вас может быть сценарий, который устанавливает все индексаторы на ручные

Если вы хотите сделать это программно, что-то в этом роде должно работать:

$pCollection = Mage::getSingleton('index/indexer')->getProcessesCollection(); 
foreach ($pCollection as $process) {
  $process->setMode(Mage_Index_Model_Process::MODE_MANUAL)->save();
  //$process->setMode(Mage_Index_Model_Process::MODE_REAL_TIME)->save();
}
1 голос
/ 13 июля 2013

Возможно, вам не придется делать это программно.У меня была похожая проблема, где у меня было около 10 файлов для импорта.Я не смог объединиться, так как это было перемещение сайта, а некоторые зависели от других.

Вы можете отключить автоматический индекс, который при правильной настройке скрипта импорта будет прослушиваться.

Стоит попробовать:

System -> Index Management
Check All Items
Change Action to "Change Index Mode"
Select "Manual"
Save

Надеюсь, это поможет.

...