Я хочу знать, есть ли способ обновить индекс magento для одного или нескольких продуктов. Так, например, у меня есть 100 продуктов, которые я только что программно обновил в цене ... и теперь мне нужно пнуть индексатор, чтобы он переиндексировал цену для этих 100 продуктов. Так что просто для ясности ...
Я знаю, что можно просто обновить один индекс для ВСЕХ продуктов. Например, это обновит индекс цен на все продукты:
$process = Mage::getSingleton('index/indexer')->getProcessByCode('catalog_product_price');
$process->reindexEverything();
И я также знаю, что можно обновить ВСЕ индексы только для одного продукта (или нескольких продуктов, если вы делаете это в цикле):
Mage::getSingleton('index/indexer')->processEntityAction(
$product, Mage_Catalog_Model_Product::ENTITY,
Mage_Index_Model_Event::TYPE_SAVE
);
НО, ни один из этих вариантов не работает для меня. Мне нужно иметь возможность сделать поперечное сечение этих двух. Как я могу взять один или несколько продуктов и обновить только один индекс, например индекс цен?
Я работаю с Magento CE 1.6.2.0.
РЕДАКТИРОВАТЬ: Кстати, на Magento 1.3 я смог сделать это, выполнив следующие действия, но, похоже, это больше не работает.
Mage::getModel('catalogindex/indexer')->plainReindex(
$listOfProductIds,
Mage_CatalogIndex_Model_Indexer::REINDEX_TYPE_PRICE
);