Я пытаюсь создать пользовательский индексатор в разделе «Управление индексами» в сообществе Magento версии 1.4, основная цель этого пользовательского индексатора - обновить пользовательский атрибут продукта на основе набора вычислений.
Я изучил код ядра magento и сделал что-то похожее на то, что мне нужно, но я не смог найти достаточно документации по этому вопросу.
это то, что я получил до сих пор:
config.xml
<?xml version="1.0"?>
<config>
<!-- configuration -->
<global>
<index>
<indexer>
<custom_product_price>
<model>custom/indexer_price</model>
</custom_product_price>
</indexer>
</index>
</global>
<!-- configuration -->
</config>
Затем я создал модель
class MyModule_Custom_Model_Indexer_Price extends Mage_Index_Model_Indexer_Abstract
{
protected $_matchedEntities = array(
Mage_Catalog_Model_Product::ENTITY => array(
Mage_Index_Model_Event::TYPE_SAVE,
Mage_Index_Model_Event::TYPE_DELETE,
Mage_Index_Model_Event::TYPE_MASS_ACTION
)
);
/**
* Initialize resource model
*
*/
protected function _construct()
{
$this->_init('custome/indexer_price');
}
public function getName()
{
return Mage::helper('customizer')->__('Customizable Products');
}
public function getDescription()
{
return Mage::helper('customizer')->__('Index Customizable Product Prices');
}
public function matchEvent(Mage_Index_Model_Event $event) {
Mage::log("Should I match an event: ".$event->getEntity() . '|'. $event->getType());
return true;
}
protected function _registerEvent(Mage_Index_Model_Event $event) {
Mage::log("Should I register an event: ".$event->getEntity() . '|'. $event->getType());
}
protected function _processEvent(Mage_Index_Model_Event $event) {
Mage::log("Should I process an event: ".$event->getEntity() . '|'. $event->getType());
}
public function reindexAll() {
Mage::log('Do my processing to reindex');
}
}
, после реализации этого кода я смог увидеть свой новый элемент индексатора в сетке управления индексами, но когдаЯ выполнил действие переиндексации, оно просто вызвало метод reindexAll ().
Любые идеи будут полезны и заранее благодарны.