Ich habe das Problem, dass das tägliche Update der Katalogregeln von Magento nicht funktioniert. Das bedeutet, dass sich der Produktpreis nicht ändert, wenn das Ablaufdatum der Katalogregel erreicht ist. Ich muss daher in Admin auf die Schaltfläche zum Anwenden der Regel klicken. Cron ist konfiguriert und funktioniert. Die Methode catalogrule / observer :: dailyCatalogUpdate sollte anscheinend jeden Tag automatisch die Regeln überprüfen und anwenden, tut dies aber nicht (auch ich habe versucht, sie manuell zu starten). Hier ist der Magento-Kerncode:
<!--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>
Beobachter:
/*file app/code/core/Mage/CatalogRule/Model/Observer.php*/
public function dailyCatalogUpdate($observer)
{
Mage::getResourceSingleton('catalogrule/rule')->applyAllRulesForDateRange();
return $this;
}
Ich hatte den folgenden Erfolg beim Ändern der Beobachtermethode:
/*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;
}
Auf diese Weise werden die Regeln jeden Tag überprüft und angewendet und die Produktpreise werden geändert, wenn die Regeln ablaufen. Ich glaube nicht, dass es ein Fehler von Magento ist. Bitte teilen Sie uns mit, wo das Problem liegt, dass Regeln nicht automatisch überprüft und angewendet werden.