Je suis confronté au problème que la mise à jour quotidienne des règles du catalogue de Magento ne fonctionne pas. Cela signifie qu'il n'y a pas de changement de prix des produits lorsque la date d'expiration de la règle de catalogue arrive, je dois donc appuyer sur le bouton Appliquer la règle dans Admin. Cron est configuré et fonctionne. Il semble que la méthode catalogrule / observer :: dailyCatalogUpdate devrait vérifier et appliquer les règles automatiquement tous les jours, mais ce n'est pas le cas (j'ai également essayé de la lancer manuellement). Voici le code de base de 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>
Observateur:
/*file app/code/core/Mage/CatalogRule/Model/Observer.php*/
public function dailyCatalogUpdate($observer)
{
Mage::getResourceSingleton('catalogrule/rule')->applyAllRulesForDateRange();
return $this;
}
J'ai réussi à modifier la méthode d'observation comme ci-dessous:
/*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;
}
De cette façon, les règles sont vérifiées et appliquées chaque jour et les prix des produits sont modifiés si la règle expire. Je ne pense pas que ce soit un bug de Magento. Veuillez indiquer quel est le problème du fait que les règles ne sont pas vérifiées et appliquées automatiquement?