Eu enfrento o problema de que a atualização diária das regras do catálogo do Magento não funciona. Isso significa que não há alterações de preço dos produtos quando a data de validade da regra de catálogo chegar, por isso tenho que pressionar o botão Aplicar regra no Admin. Cron está configurado e funcionando. Parece que o método catalogrule / observer :: dailyCatalogUpdate deve verificar e aplicar regras automaticamente todos os dias, mas não o faz (também tentei iniciá-lo manualmente). Aqui está o código principal do 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>
Observador:
/*file app/code/core/Mage/CatalogRule/Model/Observer.php*/
public function dailyCatalogUpdate($observer)
{
Mage::getResourceSingleton('catalogrule/rule')->applyAllRulesForDateRange();
return $this;
}
Tive sucesso ao modificar o método observador, como abaixo:
/*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;
}
Dessa forma, as regras são verificadas e aplicadas todos os dias e os preços dos produtos são alterados se a regra expirar. Não acredito que seja um bug do Magento. Por favor, informe qual é o problema de as regras não estarem sendo verificadas e aplicadas automaticamente?