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.
Antworten:
Vor kurzem hatte ich das gleiche Problem, als ich eine neue Preisregel für unser Projekt testete. Und der Grund für meine Kopfschmerzen war, dass ich nicht jedes Mal bemerkte, wenn Sie eine neue Regel erstellen oder einige der vorhandenen Regeln bearbeiten - Sie sollten auf die Schaltfläche " Regeln anwenden " klicken, um Magento über Ihre Regeländerungen zu informieren.
quelle
Es reicht nicht immer aus, auf "Regeln anwenden" zu klicken. Ich habe kürzlich festgestellt, dass die Regeln irgendwann in der Zukunft nicht mehr angewendet werden, wenn cron nicht richtig eingerichtet ist.
Ich konnte mich nicht wirklich festlegen, als die Regeln nicht mehr funktionierten. In meinem Fall hatte ich eine Handvoll Regeln, die basierend auf der Kundengruppe (Großhandel) angewendet werden.
quelle
Überprüfen Sie, ob der Job geplant wird
Sie können dies tun, indem Sie entweder die Datenbank überprüfen oder die folgende Erweiterung installieren: Aoe_Scheduler
Testen Sie, ob der Job funktioniert
Erstellen Sie ein PHP-Skript
run_my_rules.php
und geben Sie dort nur den Inhalt für die Funktion ein:dailyCatalogUpdate
Führen Sie diesen dann über die Konsole aus. Sehen Sie, was passiert.quelle