Es scheint, dass standardmäßig kein Auftragsstatusereignis vorhanden ist. Wie gehen Sie normalerweise vor, um die Änderung des Auftragsstatus zu beobachten? Ich sehe zwei Möglichkeiten: a) Überschreiben Sie das Verkaufs- / Auftragsmodell, um Ihr benutzerdefiniertes Ereignis für eine Statusänderung zu erstellen. B) Beobachten Sie das Auftragsspeicherereignis und sehen Sie sich den Status dort an
Ist einer davon der richtige Weg oder gibt es eine bessere Option?
Edit: Danke für deine bisherigen Antworten. Die Situation ist etwas komplizierter. Ich möchte der Bestellung abhängig vom aktuellen Status Informationen hinzufügen. Hier ist das Problem: Im Ereignis save_before habe ich immer noch den alten Status und nicht jetzt den neuen Status, da im Verkaufs- / Auftragsmodell die Methode _beforeSave () wie folgt lautet:
parent::_beforeSave();
$this->_checkState();
//...
Das Ereignis wird also in verarbeitet, parent::_beforeSave();
ABER der Bestellstatus wird anschließend tatsächlich in geändert $this->_checkState();
(dies ist die automatische Änderung, z. B. wenn Sie eine Rechnung erstellen, wird der Status in die Verarbeitung verschoben, wenn noch keine Sendung vorhanden ist).
Ich kann das save_after-Ereignis auch nicht verwenden, da ich etw speichern möchte. bei der Bestellung und es würde wahrscheinlich alles kaputt machen, um einen Save im save_after-Ereignis aufzurufen.
Irgendwelche Ideen? Meine einzige Idee ist jetzt, das $this->_checkState();
Verhalten in meinem save_before-Beobachter zu replizieren , um herauszufinden, wie der Zustand schließlich sein wird ...