Bestellabwicklung in Magento: Status und Zustände von Bestellungen verstehen

Nach dem der Kunde im Checkout auf „Bestellung abschließen“ klickt, wird der Warenkorb in eine Bestellung umgewandelt. Die Bestellung wird im Backend sichtbar. Danach ist für die Bestellabwicklung eine Abfolge vorgesehen, bei der die Bestellung den Zustand wechselt: Durch Erstellen einer Rechnung wechselt der Zustand in processing, nach Erstellung des Lieferscheins kommt die Bestellung in den Zustand complete.

Der Status der Bestellung und die für die Abwicklung vorhandene Optionen werden von Magento abhängig von dem Zustand der Bestellung bereitgestellt. Das folgende Diagramm veranschaulicht die Bestellabwicklung in Magento:

Bestellabwicklung in Magento: Zustandsübergangsdiagramm

Zustand und Status

Jede Bestellung hat zwei Eigenschaften: Zustand (engl.: state) und Status (engl.: status).

Nur der Status ist dabei für den Kunden im Frontend in „Mein Benutzerkonto“ und für den Händler im Backend (als Filtereinstellung und in Bestelldetails) sichtbar.

Jedem Zustand können ein oder mehrere Status-Codes zugewiesen werden. In der Standardinstallation von Magento sind, bis auf eine Ausnahme, jedem Zustand genau ein Status zugewiesen, wobei die internen Bezeichnungen in den meisten Fällen übereinstimmen:

Magento Zustands- und Status-CodesBestellstatus in der Bestellübersicht

Diese Übersicht ist in System > Bestellstatus & Zustand einsehbar. Dort lassen sich zusätzliche Status-Codes definieren und Zuständen zuweisen. Die Liste der Zustände ist vordefiniert und kann nicht bearbeitet werden. Ein Status-Code kann nach dem Anlegen nicht mehr gelöscht werden!

Bestellzustände

Zustand new

Im Zustand new hat die Bestellung den Status Pending (Ausstehend).

Den Zustand new bekommt eine neue Bestellung bei einer Offline-Zahlung wie Vorkasse oder Nachnahme. Der Kunde bekommt dabei eine Bestellbestätigung.

Zustand pending_payment

Im Zustand pending_payment hat die Bestellung den gleichnamigen Status Pending Payment (Ausstehende Zahlung).

Dieser Zustand ist für Abwicklung von Online-Zahlungen vorgesehen (darunter PayPal, MoneyBookers/Skrill, Sofortüberweisung, giropay, Kreditkarte, Lastschrift, Rechnung). Eine neue Bestellung, für die eine Online-Zahlungsmethode gewählt wurde, wird im Zustand pending_payment angelegt. Eine Bestellung im Zustand pending_payment wird im Frontend nicht angezeigt, d. h. sie bleibt in „Mein Benutzerkonto“ für einen registrierten Kunden unsichtbar. Der Kunde bekommt keine Bestellbestätigung.

Im Zustand pending_payment bleibt die Bestellung bis Magento eine Bestätigung über eine erfolgreiche Zahlung erhalten hat. Daraufhin sollte die Rechnung automatisch generiert werden, und die Bestellung in den Zustand processing wechseln.

Eine Zahlungsseite bietet meistens eine Schaltlfläche oder einen Link zum Abbruch der Zahlung. Bricht der Kunde die Zahlung auf diese Weise ab, wird die Bestellung storniert und wechselt in den Zustand canceled. Wenn die Bestellung seit längerem im Zustand pending_payment bleibt, bedeutet es, dass der Kunde das Browserfenster mit der Zahlungsseite geschlossen hat ohne die Zahlung abzuschließen. In diesem Fall kann die Bestellung manuell im Backend storniert werden.

Da der Warenkorb beim Klick auf „Bestellung abschließen“ in eine Bestellung umgewandelt wurde, wird der Warenkorb leer sein, wenn der Kunde zum Shop zurückkehrt.

Wenn der Kunde auf der Zahlungsseite die Zahlung abbricht und die Bestellung damit storniert, befüllen einige wenige Extensions (darunter die Extension von Sofortüberweisung und von MoneyBookers) den Warenkorb mit dem Inhalt der stornierten Bestellung. Meistens ist das jedoch nicht der Fall; PayPal und viele andere Extensions zur Abwicklung von Online-Zahlungen (z. B. Kreditkartenzahlungen, Kauf auf Rechnung) lassen den Kunden bei Abbruch zum Shop mit leerem Warenkorb zurückkehren.

Zustand processing

Im Zustand processing hat die Bestellung den gleichnamigen Status Processing (Verarbeitung).

In diesen Zustand kommt eine Bestellung, wenn eine Rechnung aber noch kein Lieferschein oder ein Lieferschein aber noch keine Rechnung erstellt wurde.

In Magento sind Teilrechnungen und Teillieferungen möglich. Eine Bestellung bleibt in dem Zustand processing, solange sie nicht vollständig berechnet und geliefert wurde.

Zustand complete

Im Zustand complete hat die Bestellung den gleichnamigen Status Complete (Vollständig).

In diesen Zustand kommt eine Bestellung, wenn Rechnung und Lieferschein erstellt wurden. Bei virtuellen Produkten entfällt der Lieferschein.

Bei Verwendung von Teilrechnungen und Teillieferungen kommt die Bestellung in den Zustand complete, nur wenn sie vollständig berechnet und vollständig geliefert wurde.

Zustand closed

Im Zustand closed hat die Bestellung den gleichnamigen Status Closed (Geschlossen).

In den Zuständen processing und complete kann eine Bestellung nicht storniert werden, sondern muss durch Erstellung einer Gutschrift erstattet werden.

Bei einer Teilerstattung bleibt die Bestellung im Zustand complete. Erst bei Erstattung aller Artikel wechselt der Zustand zu closed. Weicht die Gesamtsumme von Gesamterstattung um nur einen Cent ab, bleibt die Bestellung im Zustand complete, wobei der letzte Cent mit einer weiteren Gutschrift erstattet werden kann. Die Wertminderung bei Rückgabe eines gebrauchten Artikels kann über Berichtigungszuschlag abgebildet werden.

Zustand canceled

Im Zustand canceled hat die Bestellung den gleichnamigen Status Canceled (Storniert).

Eine Bestellung kann nur in den Zuständen new und payment_pending storniert und damit in den Zustand canceled überführt werden.

Bei Online-Zahlungen wird die Bestellung beim Abbruch der Zahlung durch den Klick auf die Schaltfläche „Zahlung abbrechen“ o. ä. automatisch storniert. Wenn der Kunde das Browserfenster mit der Zahlungsseite schließt, bleibt die Bestellung im Zustand payment_review und muss im Backend manuell storniert werden.

Zustand holded

Im Zustand holded hat die Bestellung den Status On Hold (Zurückgestellt).

Durch den Klick auf die Schaltlfäche „Zurückstellen“ im Backend wechselt die Bestellung in den Zustand holded. Schaltlfächen zur Abwicklung der Bestellung werden ausgeblendet. Bevor eine Bestellung weiterverarbeitet oder storniert werden kann, muss sie wiederaufgenommen werden. Dabei wechselt der Zustand zu dem ursprünglichen Wert, den die Bestellung vor dem Klick auf „Zurückstellen“ hatte.

Eine Bestellung kann nur in Zuständen vor complete zurückgestellt werden. Eine stornierte oder erstattete Bestellung kann nicht zurückgestellt werden.

Zustand payment_review

Dieser Zustand ist im Diagramm nicht enthalten.

Im Zustand payment_review hat die Bestellung standardmäßig den gleichnamigen Status Payment Review (Zahlungsprüfung).

In den Zustand payment_review wechselt eine Bestellung, wenn der Kunde eine Online-Zahlung autorisiert hat, aber das Geld noch nicht gezahlt wurde. Der Kunde bekommt dabei trotzdem eine Bestellbestätigung, und die Bestellung wird im Frontend in „Mein Benutzerkonto“ sichtbar – im Gegensatz zu dem Zustand pending_payment.

Den Zustand payment_review bekommt eine Bestellung bei Zahlung mit einem frisch eröffneten PayPal-Konto, welches nicht gedeckt ist und für die Abbuchung vom Bankkonto des Kunden noch validiert werden muss. Für die Validierung überweist PayPal zufällige Cent-Beträge auf das Bankkonto des Kunden, die er in seinem PayPal-Konto eingibt, sodass die Bestellung 1-3 Tage in diesem Zustand verweilen kann. Der Händler bekommt in der Regel eine Email vom Zahlungsdienstleister mit mehr Informationen zum Vorgang.

Dem Zustand payment_review ist in der Standardinstallation von Magento als einzigem ein zweiter Status-Code zugewiesen: Suspected Fraud (Betrugsverdacht). Auch in diesem Fall hat der Kunde die Zahlung autorisiert. Die Transaktion wird sowohl auf der Seite von PayPal als auch in Magento nach bestimmten Kriterien analysiert. Kommt beispielsweise die Zahlungsbenachrichtigung von PayPal bei Magento viel zu spät an oder stimmen die Gesambeträge nicht überein (s. Rundungsfehler), bekommt die Bestellung diesen Status-Code. Wenn ein Betrug von PayPal erkannt wurde, bekommt der Händer eine Email mit Zusatzinformationen. Bei Erkennung durch Magento gibt es keine zusätzliche Emails von PayPal. Beachten Sie, dass der Kunde, sofern registriert, seine Bestellung mit diesem Status in dem Kundenkonto sehen kann! Eine Bestellung mit diesem Status kann im Backend nicht weiter verarbeitet werden. Sie muss durch Manipulation des Status und Zustand in der Datenbank freigegeben werden.

Fehlverhalten von Extensions

Viele Extensions zur Abwicklung von Online-Zahlungen beachten die beschriebenen Zusammenhänge nicht. Oft wird der Status unabhängig vom Zustand gesetzt. Oder der Zustand der Bestellung wird z. B. auf processing gesetzt, ohne dass eine Rechnung erstellt wurde. In diesem Fall lassen sich Bestellungen mit Rechnungen und ohne in der Bestellübersicht nicht mehr unterscheiden. Gesamteinnahmen im Dashboard werden verfälscht, da dort nur Rechnungsbeträge berücksichtigt werden. Einige Extensions erlauben in den Einstellungen sogar freie Wahl des Status, den die Bestellung nach erfolgreicher Zahlung erhalten soll. Dies kann bei Bestellabwicklung im Backend zu Problemen führen.

Tipp: Bestellabwicklung wird im Magento-Training für Einsteiger behandelt.

9 Gedanken zu „Bestellabwicklung in Magento: Status und Zustände von Bestellungen verstehen“

  1. Vielen Dank für die Übersicht und die ausführliche Erklärung! Ist leider etwas undurchsichtig in Magento gelöst und man vergisst es schnell, wenn man nicht täglich damit arbeitet.

  2. Hallo,

    danke auch für die Übersicht, leider haben wir genau den Fall bei einem Projekt, dass ein externer Zahlungsanbieter die Umstellung der Stati erlaubt und dadurch einiges umwirft.

  3. Vielen Dank für das Tutorial. Die integrierte Funktionalität hilft jedoch aus meiner Sicht nur zum Teil, weil man als Kunde die Option Teillieferung nicht aktiv im Warenkorb auswählen kann und sich daraus dann zum Beispiel Lieferzeiten oder Versandkosten anpassen.

  4. Ahhh so ist das…
    Hilft mir aber irgendwie nicht recht weiter.
    Entweder bin ich doof oder aber das deckt den in DE üblichen Prozess mit Bestellung „auf Rechnung“ nicht recht ab.
    Für den Versand muss ich gleich eine Rechnung sowie einen Lieferschein generieren. Der Kunde zahlt also erst nach dem Erhalt der Ware den Betrag auf der Rechnung.

    Ich missbrauche jetzt das Payment „Cash on delivery“ dafür.
    Beim Erstellen der RFechnung wähle ich unten „Keine Erfassung“. Damit bleibt der Status auf „Processing“.
    Nach Zahlungseingang muss man Bestellung und Rechnung aufrufen und auf den Button „Erfassen“ klicken.
    Dann ist „Completed“.
    Zum einen ziemlich aufwendig, zum anderen kann, wenn der Kunde nur einen Teilbetrag überwiesen hat, dieser nicht erfasst werden.

    Bin ich doof? Oder gibts keine bessere Lösung?

    1. Hi,

      also „Cash on Delivery“ ist ansich die Nachnahme, während man für Rechnung den Bank Transfer als Zahlungsart wählt. So hab ich das bei mir zumindest eingerichtet.

  5. Hallo zusammen,

    ich versuche Downloadprodukte per Sofortzahlung / PayPal zum sofortigen Download nach Zahlung einzurichten. Egal welchen Zustand ich aktiviere ich muss immer erst per Hand eine Rechnung erstellen. Auch wenn ich anklicke Rechnung erstellen. Habt Ihr einen Tipp für mich ?

    Danke

  6. Hallo zusammen,
    mein shop erstellt bei der rechnungstellung leider nicht automatisch einen lieferschein. In der Testumgebung für meinen shop (headcover24.com) erstellt magento hingegen den lieferschein bei Rechnungserstellung und die Einstellungen sind identisch. Hat jemand eine Idee woran das liegen kann, oder wie ich es schaffen kann, dass auch meine live Umgebung automatisch Lieferscheine erstellt?

    Schöne Grüße,
    Gunnar

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.