Magento – программно отключить автоматическое индексирование

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

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

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

В 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(); } 

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

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

Это стоит того:

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

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