Ich benutze Magento 1.9.1.0. Ich habe eine Katalogpreisregel festgelegt, die für alle meine Produkte in meinem Geschäft mit einem Rabatt von 20 Prozent für nur einen Tag gilt. Die Aktion catalogrule_apply_all soll jeden Tag um 1 Uhr morgens ausgeführt werden (0 1 * * *).
Ich habe ein Problem beim Festlegen des Datumsbereichs der Aktion. Um dies zu testen, habe ich in meiner Entwicklungsumgebung das from_date und das end_date mit dem Wert 'today' eingerichtet. Nach Anwendung der Regel kann ich die Promotion im Frontend nicht sehen. Ich muss das from_date auf einen Tag zurücksetzen, damit es funktioniert.
Jetzt muss ich die Promotion, die in 2 Tagen beginnt, für meine Produktionsumgebung planen und bin mir nicht sicher, welcher Wert dem Feld from_date zugewiesen wird. Soll ich den Tag zuweisen, bevor es aktiv sein soll, oder soll ich das tatsächliche Startdatum verlassen?
quelle
Ich habe auch das gleiche Problem, aber es war in Magento EE 1.14.2.1. System / Konfiguration / Allgemein - Die Einstellungen für die Gebietsschemaoptionen scheinen zu korrigieren.
Ich kam zu dem Schluss, dass das Problem in der Datei lag: Mage / CatalogRule / Model / Resource / Rule.php Ersetzen der Zeile
mit
So wird es sein
Beide sollten den aktuellen Zeitstempel berechnen. Aber basierend auf meinen Tests,
Konvertiert in den richtigen Zeitzonenversatz (wie meine Server-Datums- und Zeiteinstellungen), während ich immer einen Tag zuvor mit habe Wie Jeroen gesagt hat, könnte es sich um einen Magento-Fehler handeln.quelle
Von
Mage/CatalogRule/Model/Resource/Rule.php
Bis jetzt sieht alles gut aus, wenn Sie das Gleiche für von und bis heute setzen. Für das Datum ist Datum + Sekunden an einem Tag - 1, also wird das Ende dieses Tages sein.
Möglicherweise ist das Kerndatum aufgrund einer widersprüchlichen Zeitzoneneinstellung falsch.
Sie können mit einem Testskript testen und einige Daten wiedergeben.
Oder rufen Sie das
insertRuleData
manuell auf und fügen Sie der Ressourcendatei einige Debugdaten zum Testen hinzu.quelle
System / Configuration / Locale options
-> Zeitzone richtig einstellenspecial_to_date & special_from_date - funktioniert nicht im Regelfilter . Kann nur verwenden - special_price
Wenn jedoch Einstellungen im Produkt mit veraltetem Sonderpreis vorhanden sind, müssen die Sonderpreisattribute mit einem Skript wie - aktualisiert werden.
quelle
Problem ist, dass die Funktion gmtTimestamp () Zend_Date :: TIMEZONE_SECS subtrahiert, um den GMT-Zeitstempel vom Datum in der aktuellen Zeitzone zurückzugeben. Wenn Sie dieser Funktion eine Zeichenfolge wie "Heute" übergeben und Ihre aktuelle Zeitzone nicht UTC ist, ist das Ergebnis immer falsch.
Um dies zu korrigieren, ändern Sie die Zeile 218 von Mage / CatalogRule / Model / Resource / Rule.php
mit
quelle
Ich fand es besser, den Zeitstempel zu ändern, um die Ortszeit zu verwenden, als GMT für die Berechnungen zu verwenden.
quelle
Das Problem besteht weiterhin in Magento 1.9.4.0. Die Verwendung der Lösung von xelber funktioniert perfekt. Schreiben Sie einfach die Funktion
insertRuleData()
inMage_CatalogRule_Model_Resource_Rule
quelle