Я сталкиваюсь с проблемой, что ежедневное обновление правил каталога Magento не работает. Это означает, что в момент истечения срока действия правила каталога изменений цен на товары не происходит, поэтому я должен нажать кнопку применения правила в Admin. Cron настроен и работает. Похоже, что catalogrule / наблюдатель :: dailyCatalogUpdate метод должен проверять и применять правила автоматически каждый день, но это не так (также я пытался запустить его вручную). Вот основной код Magento:
<!--file: app/code/core/Mage/CatalogRule/etc/config.xml-->
<crontab>
<jobs>
<catalogrule_apply_all>
<schedule>
<cron_expr>*/1 * * * *</cron_expr>
</schedule>
<run>
<model>catalogrule/observer::dailyCatalogUpdate</model>
</run>
</catalogrule_apply_all>
</jobs>
...
</crontab>
наблюдатель:
/*file app/code/core/Mage/CatalogRule/Model/Observer.php*/
public function dailyCatalogUpdate($observer)
{
Mage::getResourceSingleton('catalogrule/rule')->applyAllRulesForDateRange();
return $this;
}
Я успешно изменил метод наблюдателя, как показано ниже:
/*file app/code/core/Mage/CatalogRule/Model/Observer.php*/
public function dailyCatalogUpdate($observer)
{
Mage::getModel('catalogrule/rule')->getResourceCollection()
->walk(array(
Mage::getResourceSingleton('catalogrule/rule'),
'updateRuleProductData'
));
Mage::getResourceSingleton('catalogrule/rule')->applyAllRulesForDateRange();
return $this;
}
Таким образом, правила проверяются и применяются каждый день, а цены на товары меняются, если срок действия правила истекает. Я не верю, что это ошибка Magento. Пожалуйста, сообщите, в чем проблема, что правила не проверяются и применяются автоматически?