Analyse Shop-Management

Shopify orderCreate: Endlich mehrere Tracking-Nummern pro Fulfillment beim Order-Import

Zwei Pakete, eine Bestellung, ein Kunde. Bisher hieß das für jeden, der Orders über die Shopify Admin API importiert: Erst die Order per orderCreate anlegen, dann im zweiten Schritt das Fulfillment noch einmal anfassen, um die fehlenden Sendungsnummern nachzuladen. Dieser Umweg ist jetzt Geschichte. Shopify hat das Feld trackingNumbers in OrderCreateFulfillmentInput aufgenommen, und wer beim Import direkt alle Tracking-Nummern mitgibt, braucht keinen Folge-Call mehr.

Das klingt nach einer Kleinigkeit aus dem Changelog. Ist es nicht. Jeder Händler, der Möbel, Fahrräder, Gartengeräte oder schlicht größere Warenkörbe verschickt, kennt das Problem aus dem Tagesgeschäft: Die Bestellung geht raus, das System kennt aber nur eine Sendungsnummer. Der Kunde erhält eine Versandmail mit einem Tracking-Link, im Paket liegt aber nur die Hälfte der Ware. Die Folge sind Support-Tickets, die niemand braucht.

Was genau hat Shopify an der orderCreate Mutation geändert?

Die Antwort ist kurz: OrderCreateFulfillmentInput akzeptiert jetzt ein Array trackingNumbers, das beliebig viele Sendungsnummern direkt bei der Anlage der Bestellung aufnimmt. Bisher gab es beim Order-Import nur den Weg über eine einzelne Nummer pro Fulfillment, alles Weitere musste nachträglich über ein Update des Fulfillments ergänzt werden.

Für Integratoren heißt das konkret: Wer Paketdienst, Spedition und Sperrgut in einer Bestellung kombiniert, schreibt beim Import jetzt alle Nummern in einem Rutsch in die Order. Der zweite Request entfällt, die damit verbundene Fehlerquelle ebenfalls. Shopify hält damit die orderCreate Mutation näher an der Realität dessen, was Warenwirtschaftssysteme tatsächlich liefern, nämlich eine Sendungsliste und keine einzelne Nummer.

Kernsatz: Wer Orders mit mehreren Paketen per API importiert, überträgt ab sofort alle Tracking-Nummern in einem einzigen orderCreate Call. Der bisherige Nachtrag per Fulfillment-Update ist überflüssig.

Warum sind Multi-Package-Sendungen im DACH-Markt der Normalfall?

Weil der deutsche Versandalltag anders aussieht als das Idealbild aus den API-Dokumentationen. Ein Möbelhändler aus Nordrhein-Westfalen verschickt die Couch per Spedition, die Kissen per DHL und die Beistelllampe per GLS, alles aus einer Bestellung, oft aus zwei verschiedenen Lagern. Ein Fahrradhändler in Bayern schickt das Rad als Sperrgut und das Zubehör als Standardpaket. Teillieferungen sind bei knappen Lagerbeständen ohnehin an der Tagesordnung.

Dazu kommt die Erwartungshaltung auf Kundenseite. Deutsche Online-Shopper gehören zu den kritischsten in Europa, wenn es um Sendungsverfolgung geht. Studien zum Retouren- und Serviceverhalten zeigen seit Jahren dasselbe Bild: Unklare Lieferzusagen und unvollständige Tracking-Informationen gehören zu den häufigsten Gründen für Supportkontakte. Wer nur eine von drei Sendungsnummern kommuniziert, erzeugt genau die Verunsicherung, die er vermeiden wollte.

Drei Paketdienste plus eine Spedition in einer einzigen Bestellung sind im deutschen Möbel- und Gartensegment keine Ausnahme, sondern Standard. Genau dieser Fall war mit der alten orderCreate Logik nur über Umwege abbildbar.

Wie aufwändig war der alte Umweg wirklich?

Auf dem Papier: ein zusätzlicher API-Call. In der Praxis: ein zweiter Prozessschritt mit allem, was dazugehört. Wer den Import aus JTL-Wawi, plentymarkets, Xentral oder Billbee anbindet, musste nach dem orderCreate die zurückgegebene Fulfillment-ID speichern, im richtigen Moment ein Update fahren und den Fall behandeln, dass zwischen den beiden Calls etwas schiefging. Genau in diesem Fenster entstehen die klassischen Fehlerbilder: Die Order steht im Shop, der Kunde bekommt seine Versandbestätigung, aber die zweite Sendungsnummer kommt nie an, weil der Folge-Call in einer Queue hängen blieb oder abgelaufen ist.

Race Conditions machten das Ganze nicht besser. Sobald Shopify-seitig Workflows oder Apps auf das Fulfillment-Event reagieren, etwa für Versandmails oder Anschlüsse an 3PLs, lief der Import in einem Wettlauf gegen die eigene Nachbearbeitung. Manche Integrationen haben deshalb künstliche Verzögerungen eingebaut, nur damit das Update sicher nach der Anlage greift. Das ist die Sorte Workaround, die niemand dokumentiert, aber jeder Betreiber kennt.

Ein zweiter API-Call klingt nach einem Detail. In einer produktiven Integration ist er ein zweiter Ausfallpunkt mit eigener Retry-Logik, eigenem Monitoring und eigenen Supportfällen.

Was sollten Entwickler jetzt konkret umbauen?

Zuerst die einfache Wahrheit: Wer bisher nur eine Sendungsnummer pro Bestellung importiert, muss gar nichts tun. Interessant wird es für alle, deren Warenwirtschaft Sendungslisten liefert. Drei Punkte gehören auf die Prüfliste:

  • Mapping prüfen: Das ERP liefert pro Lieferschein oder Packstück eine Nummer. Diese Liste gehört vollständig in das trackingNumbers Array, nicht nur der erste Eintrag.
  • Legacy-Updates abbauen: Bestehende Fulfillment-Update-Calls, die nur dem Nachtragen weiterer Nummern dienten, können entfallen. Retry-Logik und Monitoring für diesen Schritt ebenfalls.
  • Kommunikation anpassen: Versandmails und Kundenkonto sollten alle übergebenen Nummern ausspielen. Die API liefert die Daten jetzt sauber, die Templates müssen sie auch nutzen.

Wer mit einem 3PL zusammenarbeitet, sollte zusätzlich klären, in welcher Reihenfolge die Sendungsnummern dort erzeugt werden. Manche Fulfillment-Dienstleister melden Nummern erst beim Packen, also nach dem Import der Order. In diesem Fall bleibt das nachträgliche Update weiterhin nötig, die Neuerung ändert daran nichts. Das Feld löst das Problem beim Import bekannter Nummern, nicht das Problem später Nummern.

Wo liegen die Grenzen der Neuerung?

Ehrlichkeit gehört dazu: Das Changelog betrifft ausschließlich den Order-Import über orderCreate. Wer live im Shop verkauft und Fulfillments im normalen Betrieb anlegt, arbeitet mit anderen Mutationen und anderen Feldern, dort ändert sich durch diese Ankündigung nichts. Die Erweiterung zielt auf den typischen Migrations- und Importfall: Bestellungen kommen aus einem Altsystem, einem Marktplatz oder einem B2B-Prozess und werden mit ihren Versanddaten komplett in Shopify eingespielt.

Genau dieses Segment ist allerdings größer, als es klingt. Jeder Shop-Wechsel zu Shopify, jede Marktplatz-Konsolidierung und jede B2B-Anbindung läuft über genau diese Mutation. Und in all diesen Fällen waren unvollständige Tracking-Daten bislang ein Ärgernis, das erst Wochen nach der Migration auffiel, nämlich dann, wenn die ersten Kunden nach ihrer zweiten Sendungsnummer fragten.

Was das für den Import-Alltag bedeutet

Shopify schließt hier keine spektakuläre Lücke, sondern eine lästige. Aber genau solche Lücken entscheiden im Betrieb darüber, ob eine Integration ruhig läuft oder dauernd manuelle Nacharbeit erzeugt. Ein Call weniger pro Multi-Paket-Order bedeutet einen Ausfallpunkt weniger, eine Fehlerklasse weniger und ein Support-Thema weniger.

Meine Empfehlung ist eindeutig: Wer eine orderCreate-Integration betreibt, prüft diese Woche, ob die Warenwirtschaft mehr als eine Sendungsnummer pro Bestellung ausspielt. Falls ja, gehört das neue Feld ins Mapping und der alte Update-Workaround in den Ruhestand. Das dauert in den meisten Setups keine zwei Tage. Der Effekt hält dauerhaft, und zwar genau dort, wo es wehtut: im Postfach des Kundenservice.