Die Katalogpreisregel endet um Mitternacht


7

Ich habe eine Katalogpreisregel für eine Produktgruppe mit dem Startdatum 25.06.14 und dem Enddatum 30.06.14. Diese Regel funktioniert am 29.06.14 um Mitternacht nicht mehr. Dies geschieht jedes Wochenende für Kampagnen, die bis Montagabend verfügbar sein sollten. Cron rennt jede Minute. Hat jemand eine Ahnung, warum sie einen Tag im Voraus aufhören zu arbeiten?

Antworten:


4

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 dateich 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.


hi @marius, check hier: prntscr.com/7535c7 auch ich benutze zeitzone mit GMT + 5:30 und ich habe kein datum in den katalogpreisregeln angegeben. Also, was muss ich tun, um eine Lösung zu finden?
Baby in Magento

Können Sie mir bitte mitteilen, in welcher Datei und in welchem ​​Pfad Sie diesen Code geändert haben?
Baby in Magento

1
@ BabyinMagento2.Die Datei, die bestimmt, wann der Cron ausgeführt wird, ist Nach app/code/core/Mage/CatalogRule/etc/config.xmlder Zeile suchen<cron_expr>0 1 * * *</cron_expr>
Marius

Das ist in Ordnung, ich habe die Zeile, in der ich diesen Code hinzufügen muss: "$ fromDate = mktime (0,0,0, Datum ('m'), Datum ('d') - 1);" oder welche änderungen muss ich jetzt machen?
Baby in Magento

1
Sie müssen diese Zeile nirgendwo hinzufügen
Marius

1

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 .


1

Ä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.


0

Versuchen Sie, Ihre Standard-Speicherzeitzone so einzustellen, dass sie mit Ihrer Server-Zeitzone übereinstimmt.

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein


0

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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.