Order State und Order Status in Magento 2

Wenn KundInnen einen Bestellvorgang abschließen indem sie einen Kauf tätigen, dann wandelt Magento den Warenkorb in eine Bestellung (Englisch: „Order“) um.

Damit beginnt der Lebenszyklus der Bestellung, der in einem zweistufigen Modell aus Order State und Order Status abgebildet wird.

Auf erster Ebene steht der Order State, dem ein oder mehrere Order Status untergeordnet sind. Die Reihenfolge und Anzahl der Order States sind ziemlich fix codiert. Hier sollte man nach Möglichkeit nichts ändern. Versucht man Magento hier für seine eigenen Prozesse hinzubiegen, handelt man sich leicht Probleme ein.

Besser ist es, die Anpassungen und Erweiterungen des Lebenszyklus auf Ebene des Order Status vorzunehmen. Auch hier können Extensions von Drittherstellern Probleme heraufbeschwören, wenn sie den Order-Status ändern ohne Magentos eingebaute Methoden zu verwenden. Wer weiß, was er tut, kann jedoch viel erreichen.

Das offizielle Handbuch erklärt den Order Status Workflow, bietet eine Liste der Standard-Order-Status und zeigt, wie man im Backend eigene Order Status anlegt. (Manchmal ist eigene Programmierung nötig, um den neuen Status dann perfekt in die Abläufe einzubinden.)

Häufige Fragen und Antworten

In der praktischen Anwendung von Order State und Order Status ergeben sich im Detail häufig Fragen. Unter anderem, weil Details zwischen Magento 1 und Magento 2 abweichen. Hier einige Antworten auf Fragen, mit denen ich im Projekt-Alltag konfrontiert war.

Kann man alle Status von einem State löschen?

Nein, zumindest ein Status mus dem State zugeordnet sein.

Kann man den State für einen Status ändern?

Ja, man kann einen bestehenden Status einem anderen State zuordnen.

Kann man eigene States hinzufügen?

Nein. Man kann nur eigene Status hinzufügen.

Wo kann man definieren, ob ein Order Status im Frontend sichtbar ist?

Das kann man beim Assignment steuern, wenn man den Status zum State zuordnet. Wenn man den Order Status bearbeitet, kann man das nicht ändern.

Was passiert, wenn man den Default Status eines State unassigned?

Dann wird e in anderer, verbleibender Status zum Standard-Status für den State.

Was passiert, wenn jeder Status für einen State im Frontend unsichtbar ist?

Bitte kommentieren Sie, wenn Sie die Antwort kennen!