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?
Réponses:
Récemment, j'ai eu le même problème lorsque je testais une nouvelle règle de prix pour notre projet. Et la raison de mon mal de tête était que je n'ai pas remarqué que chaque fois que vous créez une nouvelle règle ou modifiez certaines des règles existantes - vous devez appuyer sur le bouton " Appliquer les règles " pour informer Magento de vos changements de règles.
la source
Il ne suffit pas toujours de cliquer sur «Appliquer les règles». J'ai récemment découvert que si cron n'est pas configuré correctement, à un moment donné dans le futur, les règles ne seront pas appliquées.
Je n'ai pas pu vraiment comprendre quand les règles ont cessé de fonctionner. Dans mon cas, j'avais une poignée de règles qui sont appliquées en fonction du groupe de clients (gros).
la source
Vérifiez si le travail est planifié
Vous pouvez le faire en vérifiant la base de données ou en installant cette extension: Aoe_Scheduler
Testez si le travail fonctionne
Créez un script php
run_my_rules.php
et insérez-y uniquement le contenu de la fonction:dailyCatalogUpdate
exécutez-le ensuite depuis la console. Voyez ce qui se passe.la source