Я пытаюсь регистрировать некоторые простые данные каждый раз, когда продукт сохраняется, например, цены и цены правил каталога. Я настроил свой модуль для работы с событием catalog_product_save_after
, и все, кажется, работает нормально, за исключением цены в каталоге, которая тянет цену ДО сохранения.
Чтобы проверить, я попытался вставить прямой запрос MySQL к таблице catalogrule_product_price
, но оказалось, что значения там не были обновлены на основе последнего изменения, когда я его запрашиваю. После сохранения я проверяю MySQL напрямую, и он обновляется, как и ожидалось.
Я нашел оператор replace into
в Mage_CatalogRule_Model_Mysql4_Rule::_saveRuleProductPrices()
, но когда я попытался разместить свой прямой запрос sql сразу после $this->_getWriteAdapter()->query($query);
, я все еще получаю старую цену правила каталога.
Может кто-то указать мне верное направление?
Из части файла config.xml модуля...
<adminhtml>
<events>
<catalog_product_save_after>
<observers>
<mycompany_productlog_observer>
<type>singleton</type>
<class>MyCompany_ProductLog_Model_Observer</class>
<method>catalog_product_save_after</method>
</mycompany_productlog_observer>
</observers>
</catalog_product_save_after>
</events>
</adminhtml>
Часть вызова из etc/modules/MyCompany_All.xml...
<MyCompany_ProductLog>
<active>true</active>
<codePool>local</codePool>
<depends>
<Mage_CatalogRule />
</depends>
</MyCompany_ProductLog>