Ich hatte zuvor viele Probleme mit der Neuindizierung der Katalogpreisregeln.
Meine neueste Lösung (die funktioniert) bestand darin, die Stunde zu ändern, zu der der Cron für die Neuindizierung von Katalogregeln ausgeführt wird.
Hier ist warum.
Ich verwende eine Zeitzone mit GMT + 2.
Der Standard-Cron ist auf 1,00 eingestellt.
Also habe ich ein Protokoll erstellt, um zu sehen, wann der Cron beginnt und wann er endet.
Meine Überraschung war Folgendes zu sehen:
2014-06-06T23:00:02+00:00 DEBUG (7): Start daily update
2014-06-06T23:00:05+00:00 DEBUG (7): End daily update
Die protokollierte Stunde war also die GMT-Stunde (23.00 Uhr).
Und der Cron berechnet die Daten, bis zu denen die Neuindizierung durchgeführt werden soll, folgendermaßen:
$fromDate = mktime(0,0,0,date('m'),date('d')-1);
Es werden also nicht die internen Datumsmethoden verwendet, sondern date
ich dachte direkt, dass dies etwas mit den Zeitzoneneinstellungen zu tun haben könnte.
Also habe ich den Cron um eine Stunde laufen lassen, wenn meine Zeitzone und meine GMT-Zeitzone am selben Tag sind.
Verschob es auf 2:10.
Ich hatte seitdem keine Probleme mehr.
app/code/core/Mage/CatalogRule/etc/config.xml
der Zeile suchen<cron_expr>0 1 * * *</cron_expr>
Technisch endet es um 00:00:00 30/06/14. Versuchen Sie, der datetime-Zeichenfolge in diesem Format eine Zeit hinzuzufügen, oder erhöhen Sie den Tag um eins. Durch einfaches Festlegen des Enddatums auf 30/06/14 wird das System angewiesen, die Aktion eine Minute nach 23:59:00 29/06/14 zu beenden. Dies ist die erste Minute (00:00:00) des 30/06/14 .
quelle
Ändern Sie die Zeitzone in der Konfiguration in GMT. Wenden Sie jetzt die Katalogregeln an.
Setzen Sie die Zeitzone bei Bedarf auf die gewünschte Auswahl zurück. Ich habe ein Modegeschäft www.huzoorwomen.com , das die gleichen Regeln verwendet.
quelle
Versuchen Sie, Ihre Standard-Speicherzeitzone so einzustellen, dass sie mit Ihrer Server-Zeitzone übereinstimmt.
quelle
Ich hatte auch dieses Problem, das Problem liegt vor, wenn ein Versatz der lokalen Zeitzone größer als +01: 00 ist.
Grundsätzlich nur, weil Magento den gmtTimestamp für das Regeldatum verwendet, was im oben genannten Fall zu einem Tag vor dem heutigen Tag führt.
Dafür habe ich ein kleines Modul https://github.com/Chuvisco88/Chuvisco_CatalogRuleFix entwickelt , um das Problem zu beheben. Wenn jemand dieses Problem hat, probieren Sie es bitte aus.
quelle