Zuverlässige APIs & Webhooks

WooCommerce-Bestellungen fehlen im ERP oder Fulfilment-System: Fehlende Aufträge finden und sicher nachliefern

Ist die Bestellung in WooCommerce vorhanden, aber nicht im ERP oder Fulfilment-System, prüfen Sie Eignung, Erfassung, Verarbeitung, Annahme am Ziel und Identitätszuordnung, bevor Sie etwas erneut ausführen.

WooCommerce enthält die Bestellung.

Die Zahlung kann bereits abgeschlossen sein.

Der Kunde kann bereits eine Bestätigung erhalten haben.

Doch im ERP, Lager-, Buchhaltungs-, CRM- oder Fulfilment-System fehlt der entsprechende Datensatz.

Der naheliegende Reflex lautet:

Die Bestellung erneut senden.

Das kann gefährlich sein.

Stellen Sie vor jeder Wiederholung fest, ob der Geschäftsvorgang am Ziel tatsächlich nie angekommen ist.

Eine "fehlende Bestellung" kann unterschiedliche Dinge bedeuten:

  • die Bestellung war nie für die Synchronisierung geeignet
  • WooCommerce hat sie nie an die Integration übergeben
  • die Integration hat sie erfasst, scheiterte aber vor der dauerhaften Verarbeitung
  • die Validierung hat sie vor der Übertragung abgewiesen
  • das Zielsystem hat sie abgewiesen
  • das Zielsystem hat sie angelegt, aber die Bestätigung ging verloren
  • der Zieldatensatz existiert, aber die lokale Zuordnung ging verloren
  • der ursprüngliche Auftrag ist noch in einer Warteschlange verzögert
  • ein Abfragefenster oder eine Paginierungsstrategie hat sie übersprungen
  • die Integration hält sie für synchronisiert, während der Betrieb sie nicht findet

Diese Zustände erfordern unterschiedliche Wiederherstellungsmaßnahmen.

Ziel ist nicht, fehlende Bestellungen einfach erneut zu senden.

Es lautet:

Nachweisen, an welcher Stelle jede erwartete Bestellung nicht mehr weiterkam, und nur den weiterhin fehlenden Geschäftsvorgang nachholen.

Die kurze Antwort

Prüfen Sie für jede WooCommerce-Bestellung, die in einem anderen System erwartet wird, diese Kette:

WooCommerce-Bestellung
→ für die Synchronisierung geeignet
→ von der Integration erfasst
→ dauerhaft zur Verarbeitung angenommen
→ an das Zielsystem übertragen
→ vom Zielsystem angenommen
→ externe ID gespeichert
→ fachlicher Zustand abgeglichen

Die erste nicht belegte Grenze ist der Ausgangspunkt der Untersuchung.

Stufen Sie eine Bestellung nicht allein deshalb als fehlend ein, weil sie in einem Dashboard nicht erscheint.

Stufen Sie sie nicht allein deshalb als synchronisiert ein, weil eine HTTP-Anfrage erfolgreich zurückkam.

"Die Bestellung existiert in WooCommerce" ist nur der erste Befund

WooCommerce kann Bestellungen über seine aktuelle REST API bereitstellen und externe Systeme über Webhooks benachrichtigen.

Die Collection /wp-json/wc/v3/orders unterstützt Paginierung und Filter, darunter Zeitfenster für Erstellung und Änderung.

Damit steht fest, was WooCommerce liefern kann.

Eine Integration muss dennoch entscheiden:

  • welche Bestellungen geeignet sind
  • wann sie geeignet sind
  • wie sie erfasst werden
  • wie vollständige Ergebnismengen eingesammelt werden
  • welche Darstellung das Zielsystem erwartet
  • wie Fehler gespeichert werden
  • wie Zieldatensätze zurück zugeordnet werden
  • wie fehlende oder unklare Datensätze später erkannt werden

Diese Logik liegt häufig teilweise außerhalb von WooCommerce.

Beginnen Sie mit zwei unabhängigen Fakten:

WooCommerce enthält Bestellung 18452.

und:

Der erwartete Datensatz am Ziel lässt sich derzeit nicht bestätigen.

Alles zwischen diesen Fakten muss noch belegt werden.

Ein Bestellabgleichsprotokoll erstellen

Erstellen Sie bei Vorfällen mit fehlenden Bestellungen ein vorübergehendes Abgleichsprotokoll.

Es wird zum zentralen Diagnoseprotokoll.

WooCommerce Integration Zielsystem Wiederherstellung
Bestell-ID Geeignet? Externe ID Erforderliche Maßnahme
Status Ausgewählt? Datensatz vorhanden? Keine / wiederholen / abgleichen
Erstellungs-/Änderungszeit Versuchs-ID Zielstatus Duplikatrisiko
Zahlungsstatus Verarbeitungszustand Ablehnung/Fehler Verifikation
Relevante fachliche Felder Letzter Versuch Letzter bestätigter Zustand Endergebnis

Füllen Sie die Kette für jede fragliche Bestellung so weit aus, wie die Befunde es tragen.

Nützliche Kategorien sind:

  • nie geeignet
  • geeignet, aber nie ausgewählt
  • ausgewählt, aber nie dauerhaft angenommen
  • lokal angenommen, aber Verarbeitung fehlgeschlagen
  • vom Zielsystem abgewiesen
  • am Ziel angenommen, aber Bestätigung verloren
  • Zieldatensatz vorhanden, aber Zuordnung verloren
  • verzögert
  • vollständig synchronisiert
  • weiterhin unbekannt

Das ist deutlich hilfreicher als ein einzelner Zustand namens "Synchronisierung fehlgeschlagen".

Bestellabgleichskarte

Die erste unbelegte Synchronisierungsgrenze verfolgen

Jede erwartete WooCommerce-Bestellung von der Eignung bis zur bestätigten Zielidentität nachvollziehen. Ist das externe Ergebnis unklar, zuerst im Zielsystem suchen, bevor etwas wiederholt wird.

Erwarteter Synchronisationspfad

  1. 01
    WooCommerce-Bestellung
    Erwarteter Quelldatensatz
  2. 02
    Geeignet?
    Geschäftsregeln erlauben Synchronisierung
    Fehler an dieser Grenze: Ausgeschlossen
  3. 03
    Erfasst?
    Webhook oder Polling hat sie ausgewählt
    Fehler an dieser Grenze: Nicht erfasst
  4. 04
    Dauerhaft angenommen?
    Verantwortung vor Fortschrittsänderung gespeichert
    Fehler an dieser Grenze: Unbekannt
  5. 05
    Eingereiht / verarbeitet?
    Hintergrundarbeit schreitet voran
    Fehler an dieser Grenze: Verzögert
  6. 06
    Am Ziel angenommen?
    Geschäftsvorgang existiert im Zielsystem
    Fehler an dieser Grenze: Abgewiesen
  7. 07
    Externe ID gespeichert?
    Quell- und Zielidentität sind verknüpft
    Fehler an dieser Grenze: Angenommen, aber nicht zugeordnet
  8. 08
    Abgeglichen
    Erwarteter fachlicher Zustand stimmt überein
Bei unklarem Zustand

Zuerst im Zielsystem suchen

Existiert der beabsichtigte Datensatz bereits?

  • Ja
    Zuordnung wiederherstellen
    Externes Anlegen nicht wiederholen
  • Nein
    Fehlenden Vorgang sicher wiederholen
    Nur nachweislich fehlende Arbeit nachholen

Abgleichen

Vor der Wiederholung abgleichen.

Eine fehlende Bestellung kann an mehreren Grenzen stehen bleiben. Belegen Sie den ersten unbestätigten Zustand, suchen Sie bei unklarem Erfolg im Zielsystem und stellen Sie dann eine vorhandene Identitätszuordnung wieder her oder wiederholen Sie sicher nur den tatsächlich fehlenden Vorgang.

Fehlergrenze 1: Die Bestellung war nie geeignet

Eine häufige Ursache "fehlender Bestellungen" ist die Eignungslogik.

Eine Integration synchronisiert möglicherweise bewusst nur Bestellungen mit:

  • bestimmten Statuswerten
  • bestimmten Zahlungsmethoden
  • bestimmten Produkten
  • ausgewählten Ländern
  • bestimmten Versandmethoden
  • bestimmten Kundentypen
  • erforderlichen Metadaten
  • einem freigegebenen Wertebereich
  • einem individuellen fachlichen Kennzeichen

Ein Connector exportiert eine Bestellung beispielsweise erst im Status „In Bearbeitung“ oder „Abgeschlossen“.

WooCommerce-Statuswerte haben unterschiedliche fachliche Bedeutungen. Eine bezahlte Bestellung physischer Produkte erreicht üblicherweise „In Bearbeitung“, während „Wartend“ auf eine ausstehende Zahlungsbestätigung hinweisen kann. Shops können auch individuelle Statuswerte einführen.

Die entscheidende Frage lautet:

Erfüllte diese Bestellung die konfigurierte Synchronisierungsregel zu dem Zeitpunkt, als die Integration sie prüfte?

Vergleichen Sie nicht nur den aktuellen Status der Bestellung.

Sie kann erst später geeignet geworden sein.

Der Zeitpunkt gehört zu den Befunden.

Eignung sollte nachvollziehbar begründet sein

Eine zuverlässige Integration sollte Ausschlüsse erklärbar machen.

Statt eine Bestellung stillschweigend zu ignorieren, sollte das System Feststellungen wie diese ermöglichen:

Bestellung 18452 wurde nicht exportiert, weil der Status on-hold ausgeschlossen ist.

oder:

Bestellung 18452 wurde zurückgestellt, weil die externe Kundenzuordnung unvollständig war.

Damit wird aus einem scheinbaren Synchronisierungsfehler eine ausdrückliche Geschäftsregel.

Die aktuelle MyWorks-Dokumentation zur Fehlerbehebung liefert ein anschauliches Praxisbeispiel. Werden WooCommerce-Bestellungen nicht automatisch mit QuickBooks Online synchronisiert, umfassen die Prüfungen Einstellungen zur automatischen Synchronisierung, ausgewählte Bestellstatuswerte, Zahlungsmethodenzuordnungen und das Synchronisierungsprotokoll.

Diese Einzelheiten sind connectorspezifisch.

Die übergreifende technische Anforderung lautet:

Wurde eine Bestellung ausgeschlossen, sollte sich der Grund erklären lassen.

Fehlergrenze 2: Die Bestellung war geeignet, wurde aber nie erfasst

Manche Integrationen werden durch Webhooks gesteuert.

Andere fragen WooCommerce regelmäßig ab.

Manche nutzen beides.

Ihre Fehlerbilder unterscheiden sich.

Erfassung über Webhooks

WooCommerce-Webhooks können einen Endpunkt beim Auftreten von Bestellereignissen benachrichtigen.

Ein Ablauf kann ausbleiben, wenn ein Webhook:

  • pausiert ist
  • nach wiederholten Zustellfehlern deaktiviert wurde
  • auf den falschen Endpunkt zeigt
  • durch Authentifizierungs- oder Firewallregeln abgewiesen wird
  • an einen Empfänger zugestellt wird, der vor der dauerhaften Ereignisspeicherung scheitert

WooCommerce stellt Nachweise zur Webhook-Zustellung bereit, einschließlich Anfrage- und Antwortprotokollen.

Diese Historie ist kein dauerhaftes forensisches Archiv. Die Webhook-API-Dokumentation von WooCommerce sieht nur eine begrenzte Anzahl der jüngsten Zustellprotokolle vor.

Bewahren Sie für wichtige Integrationen eigene dauerhafte Korrelationsnachweise für angenommene Ereignisse und Geschäftsvorgänge auf.

Erfassung durch regelmäßige Abfragen

Eine Polling-Integration fragt WooCommerce typischerweise nach Bestellungen ab, die in einem kontrollierten Zeitfenster erstellt oder geändert wurden.

Die aktuelle Orders API von WooCommerce unterstützt unter anderem diese Filter:

  • after
  • before
  • modified_after
  • modified_before

sowie eine ausdrückliche Datums-/GMT-Interpretation.

Das sind nützliche Synchronisierungsbausteine.

Sie bilden keinen vollständigen Synchronisierungsalgorithmus.

Die Integration benötigt weiterhin ausdrückliche Regeln für:

  • Sortierung
  • Bedeutung des Checkpoints
  • vollständige Seitenverarbeitung
  • Überlappung
  • Wiederherstellung nach Fehlern
  • gleichzeitige Aktualisierungen

Schwache Checkpoint-Semantik kann Lücken zwischen Zeitfenstern verursachen

Angenommen, ein Durchlauf speichert einen Checkpoint gegen 14:00 und der nächste fragt nur Datensätze strikt nach diesem Zeitpunkt ab.

Fragen Sie nun, was das System garantiert, wenn:

  • die Uhren von Quelle und Integration abweichen
  • eine ältere Bestellung während eines laufenden Batches geändert wird
  • ein Checkpoint weitergesetzt wird, bevor jedes Element sicher angenommen wurde
  • Wiederholungsversuche stattfinden, nachdem der Quellcursor weitergerückt ist
  • Sortierung der Abfrage und Checkpoint-Feld nicht zusammenpassen

Die sichere Ausgestaltung hängt von der Integration ab.

Ein häufiges Zuverlässigkeitsmuster kombiniert ein kontrolliertes Überlappungsfenster mit wiederholungssicherer Verarbeitung und Abgleich.

Überlappung kann wiederholte Kandidaten erzeugen.

Das lässt sich beherrschen, wenn doppelte Arbeit kontrolliert wird.

Eine unbemerkte Lücke ist ohne Abgleichsprozess wesentlich schwerer zu erkennen.

Paginierung gehört zur Korrektheit der Synchronisierung

Collection-Endpunkte von WooCommerce sind paginiert.

Die REST API stellt Seitensteuerung und Antwortheader wie Gesamtanzahl der Ressourcen und Seiten bereit.

Eine Integration muss die gesamte beabsichtigte Ergebnismenge verarbeiten.

Gehen Sie nicht davon aus:

erste erfolgreiche API-Antwort = alle geeigneten Bestellungen verarbeitet

Gibt es 250 geeignete Bestellungen und ruft ein Client nur die erste Seite ab, können die übrigen "fehlen", obwohl WooCommerce korrekt geantwortet hat.

Dynamische Datenbestände benötigen außerdem eine bewusst festgelegte Sortierung und Checkpoint-Logik.

Neue oder geänderte Datensätze können auftauchen, während eine lange Synchronisierung noch läuft.

Das ist nicht grundsätzlich ein WooCommerce-Fehler.

Es gehört zum Integrationsdesign.

Fehlergrenze 3: Erfassung erfolgreich, aber keine dauerhafte Verarbeitung

Eine Integration kann eine Bestellung erfolgreich lesen und dennoch verlieren, bevor die eigentliche Arbeit beginnt.

Eine anfällige Abfolge ist:

read WooCommerce order
advance checkpoint
attempt processing later
process crashes

Der nächste Synchronisierungszyklus beginnt möglicherweise hinter der Quellposition dieser Bestellung.

Eine sicherere Verantwortungsgrenze ist:

discover
durably record or enqueue
advance checkpoint

Die Umsetzung kann variieren, doch das Prinzip bleibt:

Den Quellcursor nicht über Arbeit hinausschieben, die die Integration noch nicht sicher angenommen hat.

Ist Action Scheduler oder eine andere Warteschlange beteiligt, prüfen Sie, ob der erwartete Auftrag tatsächlich angelegt wurde.

Existiert der Auftrag, ist aber verzögert oder fehlerhaft, handelt es sich um das eigenständige Warteschlangenproblem aus Diagnose von WooCommerce-Rückständen bei geplanten Aktionen.

Fehlergrenze 4: Verarbeitung gestartet, aber Validierung weist die Bestellung ab

Der Connector kann den WooCommerce-Datensatz annehmen, ihn aber vor jedem Aufruf der Ziel-API abweisen.

Häufige Gründe sind:

  • nicht zugeordnetes Produkt oder SKU
  • fehlende Kundenzuordnung
  • nicht unterstütztes Land oder Bundesland
  • ungültige Adressstruktur
  • fehlende erforderliche Steuerdaten
  • nicht unterstützte Währung
  • fehlende Zahlungsmethodenzuordnung
  • fehlendes erforderliches individuelles Feld
  • inkonsistente Produkt-/Variantenbeziehung

Die aktuelle, von WooCommerce bereitgestellte Dokumentation der ERPNext-Integration zeigt dieselbe Klasse betrieblicher Fragen: Bestellstatus- und Zahlungszuordnungen, geplante Synchronisierung, Logs und manuelle Neusynchronisierung beeinflussen, ob eine Bestellung korrekt im nachgelagerten ERP ankommt.

Die Implementierungsdetails unterscheiden sich je nach Connector.

Das übergreifende Prinzip bleibt:

Eine gültige WooCommerce-Bestellung ist nicht automatisch ein gültiges Zieldokument.

Die Integration muss sichtbar machen, welche Zielanforderung den Fortschritt verhindert hat.

Die Zuordnungsgrenze korrigieren, nicht die Geschäftshistorie

Angenommen, das ERP weist eine Bestellung wegen einer fehlenden SKU-Zuordnung ab.

Sie korrigieren die Zuordnung.

Das bedeutet nicht automatisch, dass die ursprüngliche WooCommerce-Bestellung geändert werden sollte.

Die WooCommerce-Bestellung kann den korrekten Geschäftsvorgang bereits abbilden.

Der Fehler kann liegen in:

  • der Zuordnungstabelle
  • der Transformationslogik
  • den Stammdaten des Zielsystems
  • dem Wiederholungsverfahren

Historische Bestelldaten sollten nicht nur deshalb verändert werden, damit eine Integration sie annimmt – es sei denn, die fachliche Bedeutung dieser Änderung ist geklärt.

Korrigieren Sie die verantwortliche Grenze.

Stellen Sie die Bestellverarbeitung anschließend über diesen korrigierten Pfad wieder her.

Fehlergrenze 5: Das Zielsystem weist die Anfrage ab

Klassifizieren Sie die Antwort, sobald die Integration das externe System aufruft.

Authentifizierungsfehler

Beispiele sind:

  • abgelaufenes Token
  • widerrufener API-Schlüssel
  • ungültige Signatur
  • geänderter Berechtigungsumfang

Das Zielsystem hat den Geschäftsvorgang nicht zwangsläufig angenommen.

Validierungsfehler

Das Zielsystem hat die Anfrage verstanden, aber ihren Inhalt abgewiesen.

Beispiele sind:

  • unbekannte SKU
  • fehlender Kundendatensatz
  • ungültiges Steuerkonto
  • nicht verfügbares Lager
  • fehlerhaftes Feld
  • ungültiger Zustandsübergang

Ratenbegrenzung

Das Zielsystem lehnt vorübergehend zusätzliche Arbeit ab.

Ein Wiederholungsversuch kann sinnvoll sein, wenn der Vorgang wiederholungssicher ist.

Serverfehler

Ein entfernter 5xx-Status weist auf einen serverseitigen Fehler oder eine nicht verfügbare Abhängigkeit hin.

Auch hier ist die Wiederholungsstrategie entscheidend.

Definieren Sie:

  • wiederholbare Fehler
  • Verzögerung bis zur Wiederholung
  • maximale Versuchszahl
  • Höchstalter
  • abschließenden Fehlerzustand
  • Abgleichsverfahren

Machen Sie nicht aus jedem Fehler eine endlose Wiederholungsschleife.

Erfolgreicher Transport bedeutet nicht immer fachliche Annahme

Diese Unterscheidung ist wichtig, wenn Middleware zwischen WooCommerce und dem endgültigen Zielsystem liegt.

Die Integration sendet eine Bestellung an Middleware.

Die Middleware antwortet:

202 Accepted

oder:

200 OK

Das kann bedeuten:

Ich habe Ihre Anfrage zur weiteren Verarbeitung angenommen.

Es bedeutet nicht zwangsläufig:

ERP-Verkaufsauftrag ERP-78291 existiert jetzt.

Auch eine erfolgreiche Transportantwort kann einen aufgeschobenen oder fachlichen Fehlerzustand enthalten.

Unterscheiden Sie bei der Synchronisierung:

Annahme auf Transportebene

von:

fachlicher Annahme am Ziel

Der Betrieb benötigt letztlich Nachweise wie:

  • Bestell-ID des Zielsystems
  • bestätigter Verkaufsbeleg
  • Fulfilment-Datensatz
  • ID der Buchungstransaktion
  • bestätigter Zustand am Ziel

Fehlergrenze 6: Zielvorgang erfolgreich, aber Bestätigung verloren

Hier werden blinde Wiederholungen gefährlich.

Betrachten Sie diese Abfolge:

  1. WooCommerce-Bestellung 18452 wird gesendet.
  2. Das ERP legt ERP-78291 an.
  3. Die Antwort geht verloren oder die Integration stürzt vor dem Speichern ab.
  4. Der lokale Zustand meldet weiterhin eine unsynchronisierte Bestellung.
  5. Jemand wiederholt das Anlegen.
  6. Ein zweiter ERP-Datensatz kann entstehen.

Der sichtbare Vorfall schien zu sein:

Bestellung fehlt im ERP

doch der externe Vorgang war bereits erfolgreich.

Der eigentliche Fehler war:

Der Erfolg ließ sich lokal nicht bestätigen.

Suchen Sie vor einer unklaren Wiederholung anhand stabiler Kennungen im Zielsystem.

Mögliche Nachweise sind:

  • WooCommerce-Bestell-ID
  • externes Referenzfeld
  • Bestellnummer
  • Vorgangsschlüssel der Integration
  • Kunde, Betrag und Zeitstempel als ergänzende Hinweise

Vermeiden Sie unscharfe Vergleiche als primären Identitätsmechanismus, wenn sich eine stabile Kennung entwerfen lässt.

Das ist dasselbe Problem doppelter Nebenwirkungen wie in Doppelte WooCommerce-Webhook-Verarbeitung verhindern.

Jede synchronisierte Bestellung braucht eine stabile systemübergreifende Identität

Mindestens sollte die Integration beantworten können:

Welcher Zieldatensatz gehört zu WooCommerce-Bestellung 18452?

Dafür sollte kein manueller Vergleich von Kundennamen nötig sein.

Speichern Sie eine dauerhafte Zuordnung wie:

WooCommerce order ID → destination record ID

Zum Beispiel:

18452 → ERP-78291

Je nach Systemverantwortung kann die Zuordnung liegen in:

  • WooCommerce-Metadaten
  • einer dedizierten Integrationstabelle
  • Middleware
  • dem Zielsystem
  • bei Bedarf mehreren beobachtbaren Systemen

Zuverlässige Zuordnung, Wiederholungsversuche und Abgleich gehören zum WooCommerce-API- und Integrationsengineering und sind keine beiläufigen Connectordetails.

Bestell-ID und angezeigte Bestellnummer sind unterschiedliche Kennungen

WooCommerce stellt eine interne Ressourcen-ID und eine separate Bestellnummer bereit.

Erweiterungen zur individuellen Nummerierung können die angezeigte Bestellnummer verändern.

Eine Integration sollte nicht stillschweigend annehmen:

displayed order number = immutable WooCommerce resource ID

Definieren Sie die Maschinenkennung für die Quellzuordnung.

Erzeugt das Zielsystem eine eigene unveränderliche ID, speichern Sie auch diese separat.

Lesbare Bezeichnungen helfen dem Betrieb.

Eine stabile Maschinenidentität macht die Wiederherstellung verlässlich.

Fehlergrenze 7: Der Datensatz existiert im Zielsystem, ist für Mitarbeitende aber nicht sichtbar

Manchmal war die Synchronisierung erfolgreich und die betriebliche Ansicht führt in die Irre.

Der nachgelagerte Datensatz kann sein:

  • in einer Ablehnungs- oder Prüfwarteschlange
  • in einem Entwurfs-/Importzustand
  • einem anderen Lager zugeordnet
  • aus der aktuellen Ansicht herausgefiltert
  • unter einem anderen Status geführt
  • einem anderen Kundendatensatz zugeordnet
  • durch Berechtigungen verborgen
  • auf nachgelagerte Stapelverarbeitung wartend

Suchen Sie vor der Einstufung als fehlend anhand stabiler Kennungen breiter im Zielsystem.

"Das Lager-Dashboard zeigt sie nicht" bedeutet nicht dasselbe wie:

Die API oder Datenbank des Zielsystems enthält keinen entsprechenden Datensatz.

Die fehlende Grenze muss weiterhin belegt werden.

Fehlergrenze 8: Die Warteschlange ist verzögert statt defekt

Angenommen, Bestellungen erscheinen üblicherweise innerhalb einer Minute im ERP.

Heute dauert es zwanzig Minuten.

Das bedeutet nicht zwangsläufig, dass Bestellungen verloren sind.

Die Synchronisierungspipeline kann einen Rückstau haben.

Ist Hintergrundverarbeitung beteiligt, prüfen Sie:

  • älteste ausstehende Arbeit
  • Durchsatz
  • Eingangsrate
  • wiederholte Fehler
  • externe Latenz

Wiederholen Sie eine Bestellung nicht manuell, solange ihr ursprünglicher Synchronisierungsauftrag aussteht, sofern kein Duplikatschutz feststeht.

Der ursprüngliche und der manuelle Versuch können später beide ausgeführt werden.

Ein Zustandsmodell für die Vollständigkeit von Bestellungen definieren

Jede Bestellung, die im externen Ablauf erwartet wird, sollte einem ausdrücklichen Zustand zugeordnet sein.

Zum Beispiel:

Nicht geeignet
Geschäftsregeln sehen keinen Export vor.
Geeignet
Die Bestellung erfüllt die Exportregel, wurde aber noch nicht ausgewählt.
Lokal angenommen
Die Integration hat die Verantwortung für die Arbeit dauerhaft übernommen.
In Übertragung
Die Verarbeitung zum externen System läuft.
Abgewiesen
Ein bekanntes Validierungs- oder Abhängigkeitsproblem hat die Annahme verhindert.
Extern angenommen
Das Zielsystem bestätigt, dass der beabsichtigte Geschäftsdatensatz existiert.
Abgeglichen
Quellidentität, Zielidentität und erwarteter fachlicher Zustand stimmen überein.
Endgültiger Fehler
Die automatische Wiederherstellung ist beendet; menschliches Eingreifen ist erforderlich.

Die Bezeichnungen können variieren.

Entscheidend ist, den undefinierten Zustand zu beseitigen:

vielleicht synchronisiert

Abgleich ist etwas anderes als Wiederholung

Ein Wiederholungsversuch besagt:

Den Vorgang erneut versuchen.

Ein Abgleich besagt:

Den tatsächlichen Zustand in beiden Systemen feststellen und dann entscheiden, welcher Vorgang gegebenenfalls noch erforderlich ist.

Angenommen, WooCommerce enthält Bestellung 18452.

Der lokale Integrationszustand lautet fehlgeschlagen.

Das ERP enthält ERP-78291.

Eine weitere ERP-Bestellung anzulegen wäre falsch.

Ein Abgleich besagt:

Der Zieldatensatz existiert bereits. Die Zuordnung wiederherstellen und den Vorgang als abgeschlossen markieren.

Betrachten Sie nun Bestellung 18453.

WooCommerce enthält sie.

Es existiert kein dauerhafter Annahmenachweis der Integration.

Das ERP enthält keinen entsprechenden Datensatz.

Ein Abgleich besagt:

Der erforderliche Zielvorgang fehlt tatsächlich. Das Anlegen sicher in die Warteschlange stellen.

Unterschiedliche Befunde führen zu unterschiedlichen Wiederherstellungsmaßnahmen.

Einen Abgleichsbericht statt nur eines Erneut-senden-Buttons erstellen

Erstellen Sie für betrieblich wichtige Integrationen einen Bericht, der beantwortet:

WooCommerce-Bestellung Extern erwartet? Ziel-ID Zustand Maßnahme
18452 Ja ERP-78291 Abgeglichen Keine
18453 Ja — Fehlt Anlegen
18454 Ja — Abgewiesen: SKU-Zuordnung Korrigieren + wiederholen
18455 Nein — Durch Regel ausgeschlossen Keine
18456 Ja ERP-78295 Zuordnung verloren Zuordnung wiederherstellen
18457 Ja — Warteschlange ausstehend Warten / Warteschlange untersuchen

Damit wird Synchronisierung zu einem nachvollziehbar prüfbaren Geschäftsprozess.

Eine aussagekräftigere Integrationsfrage lautet:

Welche WooCommerce-Bestellungen sollten im Zielsystem existieren, fehlen dort aber derzeit?

Das ist hilfreicher als nur zu fragen, ob der gestrige Cronlauf stattgefunden hat.

Vor dem Abgleich die Zuständigkeit definieren

Definieren Sie vor dem Systemvergleich, welches System in welcher Phase für welche Fakten maßgeblich ist.

Beim ausgehenden Anlegen von Bestellungen kann WooCommerce maßgeblich sein für:

  • Identität der Checkout-Bestellung
  • gekaufte Artikel
  • vom Kunden eingegebene Adressen
  • zahlungsabhängigen Bestellzustand

Später kann das ERP maßgeblich werden für:

  • Lagerzuordnung
  • Fulfilment-Dokument
  • Rechnungsstellung
  • Versandzustand

Die Zuständigkeiten variieren.

Ein Abgleich darf nicht blind ein System mit dem anderen überschreiben, nur weil zwei Werte abweichen.

Fragen Sie zuerst:

Welches System ist in dieser Ablaufphase für dieses Feld oder diesen Zustand maßgeblich?

Bei Lagerbestands-, Versand- und Erstattungssynchronisierung wird das noch wichtiger.

Eine fehlende Bestellung erst nach dem Nachweis ihres Fehlens wiederherstellen

Prüfen Sie vor einer Wiederholung des Anlegens:

  1. Die WooCommerce-Bestellung ist für die Synchronisierung gültig.
  2. Es ist noch keine bestätigte Zielzuordnung gespeichert.
  3. Die Suche am Ziel findet keinen entsprechenden vorhandenen Datensatz.
  4. Die ursprüngliche Verarbeitung steht nicht mehr aus.
  5. Kein anderer Worker ist gerade für den Vorgang zuständig.
  6. Erforderliche Zuordnungen und Konfiguration bestehen jetzt die Validierung.
  7. Der Wiederholungspfad ist idempotent oder anderweitig gegen Duplikate abgesichert.
  8. Der Vorgang ist aus fachlicher Sicht zeitlich weiterhin gültig.

Erst dann sollte ein fehlendes Anlegen versucht werden.

Das ist bewusst sorgfältiger als ein Klick auf "Alle fehlgeschlagenen wiederholen".

Eine öffentliche DevFluxr-Fallstudie dokumentiert bereits Fallstudie zur WooCommerce-API-Integration Muster mit stabilen Kennungen, Warteschlangen, begrenzten Wiederholungsversuchen und Abgleich. Dieselben Kontrollen sind bei der Wiederherstellung wichtig.

In kontrollierten Batches wiederherstellen

Fehlen drei Bestellungen, ist die Wiederherstellung meist überschaubar.

Sind 30.000 unklar, wird die Wiederherstellung zur Produktionslast.

Senden Sie nicht sofort den gesamten Bereich erneut.

Gehen Sie stufenweise vor:

sample → verify destination → small batch → observe → increase carefully

Überwachen Sie:

  • Ratenbegrenzungen des Zielsystems
  • Wachstum der Warteschlange
  • API-Latenz
  • Duplikate
  • lokale Ressourcennutzung
  • nachgelagertes Betriebsvolumen

Eine Wiederherstellung, die das ERP überlastet, ist keine erfolgreiche Wiederherstellung.

Teilweise verarbeitete Batches brauchen Nachweise pro Element

Angenommen, ein Batch sollte 500 Bestellungen senden.

Die ersten 327 sind erfolgreich.

Dann beginnt das Zielsystem zu scheitern.

Wird nur dieser Zustand gespeichert:

Batch fehlgeschlagen

ist die Wiederherstellung unklar.

War keine erfolgreich?

Waren 327 erfolgreich?

Ging die letzte Bestätigung verloren?

Zuverlässige Batchverarbeitung sollte Ergebnisse pro Element speichern oder einen Abgleichspfad bieten, der sie rekonstruieren kann.

Die Wiederherstellung sollte sich richten auf:

die fehlende Teilmenge

statt den gesamten Batch zu wiederholen – es sei denn, der gesamte Vorgang ist nachweislich wiederholungssicher.

Webhooks und Abgleich lösen unterschiedliche Probleme

Webhooks eignen sich für Benachrichtigungen mit geringer Latenz.

Bei umsatzkritischen Integrationen sollten sie nicht die einzige Absicherung der Bestellvollständigkeit sein.

Ein häufiges Zuverlässigkeitsmuster ist:

Webhook → schnelle Ereignisbenachrichtigung

plus:

Regelmäßiger Abgleich → fehlende oder unklare Bestellungen erkennen

Ein Abgleichsauftrag könnte fragen:

Welche WooCommerce-Bestellungen wurden in diesem kontrollierten Zeitfenster geeignet, und welchen fehlt eine bestätigte Zielzuordnung?

Dadurch entsteht ein Wiederherstellungspfad, wenn:

  • die Webhook-Zustellung scheiterte
  • ein Endpunkt vorübergehend nicht erreichbar war
  • die Warteschlangenverarbeitung scheiterte
  • ein Deployment die Verarbeitung unterbrach
  • der Zuordnungszustand verloren ging

Webhooks verbessern die Reaktionsgeschwindigkeit.

Abgleich verbessert die Wiederherstellbarkeit.

Abgleich darf keine weitere Quelle doppelter Last werden

Ein schlecht konzipierter Abgleich kann selbst wiederholte Arbeit erzeugen.

Vermeiden Sie, wiederholt die gesamte Shophistorie abzurufen und alles scheinbar Unvollständige erneut zu senden.

Bevorzugen Sie:

  • begrenzte Zeitfenster
  • stabile Kennungen
  • ausdrückliche Zustände
  • inkrementelle Checkpoints
  • bei Bedarf kontrollierte Überlappung
  • wiederholungssichere Entscheidungen
  • ausreichende Nachweise zur Erklärung jedes Ergebnisses

Logs sollten fachliche Fragen beantworten

HTTP-Statuscodes sind hilfreich.

Für den Betrieb reichen sie nicht aus.

Idealerweise lässt sich für jede Bestellung beantworten:

  • War sie geeignet?
  • Wurde sie erfasst?
  • Wurde sie lokal angenommen?
  • Wurde eine Anfrage an das Zielsystem gesendet?
  • Was hat das Zielsystem zurückgegeben?
  • Welche externe ID wurde zugewiesen?
  • Wie ist der aktuelle Wiederherstellungszustand?

Das ist betriebliche Beobachtbarkeit.

Damit können Support, Fulfilment und Engineering denselben Vorfall anhand einer gemeinsamen Beweiskette besprechen.

Synchronisierung nicht zu früh als abgeschlossen markieren

"Erfolgreich eingereiht" bedeutet nicht, dass das Zielsystem die Bestellung angenommen hat.

"HTTP-Anfrage erfolgreich gesendet" bedeutet nicht, dass das ERP das beabsichtigte Dokument angelegt hat.

Verwenden Sie Zustandsnamen, die das tatsächliche Geschehen beschreiben.

Zum Beispiel:

queued → delivery_attempted → destination_accepted → reconciled

ist aussagekräftiger als ein einzelner boolescher Wert:

synced = 1

Ein boolescher Wert verwirft die Zwischenbefunde, die bei einem auf halbem Weg gescheiterten Ablauf benötigt werden.

Einseitige Zustandsprüfungen vermeiden

Aus WooCommerce-Sicht kann eine Integration gesund wirken, weil:

  • API-Anfragen erfolgreiche Transportantworten erhalten
  • Warteschlangen leer sind
  • keine lokale Exception sichtbar ist

Gleichzeitig kann das Zielsystem einen Teil der Bestellungen in eine Validierungswarteschlange abweisen.

Auch der umgekehrte Fall ist möglich.

Eine aussagekräftige Vollständigkeitsprüfung vergleicht:

erwartete Quelldatensätze

mit:

bestätigten Zieldatensätzen

Deshalb ist Abgleich aussagekräftiger als die Überwachung nur einer Anwendung.

Verifikation nach der Wiederherstellung

Schließen Sie den Vorfall nicht, sobald die fehlende Bestellung im Zielsystem erscheint.

Prüfen Sie für jede wiederhergestellte Bestellung:

  • der Zieldatensatz genau einmal für den beabsichtigten Geschäftsvorgang existiert
  • die systemübergreifende Identitätszuordnung gespeichert ist
  • der richtige Kunde zugeordnet ist
  • Artikel und Mengen übereinstimmen
  • Summen und Währung korrekt sind
  • Versandinformationen korrekt sind
  • der erwartete Zielstatus korrekt ist
  • nachgelagerte Fulfilment- und Buchhaltungsprozesse normal weiterlaufen
  • kein doppelter Auftrag mehr aussteht
  • neue Bestellungen ohne manuellen Eingriff synchronisiert werden

Beobachten Sie anschließend die folgenden Bestellungen.

Gestrige Datensätze lassen sich manuell reparieren, während morgige Bestellungen weiter demselben Fehler ausgesetzt bleiben.

Wiederherstellung und Wiederholungsvermeidung sind getrennte Ergebnisse

Ein vollständig bearbeiteter Vorfall hat zwei Ergebnisse.

Vorfallswiederherstellung

Die konkret fehlenden oder unklaren Geschäftsdatensätze wiederherstellen.

Zuverlässigkeitskorrektur

Den Umstand beseitigen, der ihr unbemerktes Verschwinden ermöglichte.

Beispiel:

Wiederherstellung: Drei ERP-Bestellungen anlegen, deren tatsächliches Fehlen belegt ist.

Korrektur: Die Eignungsregel reparieren und Abgleich ergänzen, damit künftig ausgeschlossene oder unverarbeitete Bestellungen sichtbar werden.

Ein weiteres Beispiel:

Wiederherstellung: Zuordnungen zu bereits vorhandenen ERP-Datensätzen wiederherstellen.

Korrektur: Die Zielidentität sicher speichern, bevor der Abschlusszustand der Integration weitergesetzt wird.

Beides zählt.

Eine praktische Diagnosereihenfolge

  1. Definieren, was "fehlend" bedeutet

    Erfassen Sie:

    • Quellbestellung
    • erwartetes Zielsystem
    • erwarteter Zeitpunkt
    • erwartetes Zieldokument oder erwarteter Zustand
  2. Repräsentative Beispiele auswählen

    Verwenden Sie:

    • eine fehlende Bestellung
    • eine erfolgreiche Bestellung aus demselben Zeitraum
    • einen weiteren Fehlerfall, falls vorhanden

    Ein erfolgreicher Kontrollfall hilft, die erste Abweichung zu finden.

  3. Eignung prüfen

    Vergleichen Sie:

    • Status
    • Zahlungszustand
    • Produkt-/Kundenanforderungen
    • Zuordnungsvoraussetzungen
    • Geschäftsfilter
  4. Erfassung prüfen

    Wurde die Bestellung:

    • in Webhook-Aktivitäten einbezogen?
    • im vorgesehenen Polling-Zeitfenster zurückgegeben?
    • in die erwarteten API-Ergebnisseiten aufgenommen?
    • von der Integration erfasst?
  5. Dauerhafte Annahme prüfen

    Hat die Integration vor dem Weitersetzen ihres Checkpoints die Verantwortung für die Bestellung sicher übernommen?

  6. Warteschlange oder Hintergrundverarbeitung prüfen

    Existierte der erwartete Auftrag?

    Wurde er ausgeführt?

    Ist er fehlgeschlagen?

  7. Übertragung zum Ziel prüfen

    Erfassen Sie:

    • Anfrage
    • Antwort
    • Transportfehler
    • fachliches Validierungsergebnis
  8. Unabhängig im Zielsystem suchen

    Vertrauen Sie nicht nur dem lokalen Synchronisierungszustand.

    Suchen Sie anhand der stabilen systemübergreifenden Identität.

  9. Den Fehler einordnen

    Wählen Sie den am besten belegten Zustand:

    • ausgeschlossen
    • nicht erfasst
    • verzögert
    • abgewiesen
    • angenommen, aber nicht zugeordnet
    • bereits synchronisiert
    • unbekannt
  10. Nur den erforderlichen Vorgang nachholen

    Wiederholen Sie keine Arbeit, die im Zielsystem bereits bestätigt ist.

  11. Das beabsichtigte fachliche Ergebnis prüfen

    Bestätigen Sie, dass eine beabsichtigte Quellbestellung das erwartete Zielergebnis ohne versehentliches Duplikat erzeugt.

  12. Abgleich ergänzen

    Machen Sie künftige unbemerkte Lücken erkennbar.

Das hilfreiche Erfolgskriterium

Eine zuverlässige Integration zeichnet sich nicht dadurch aus, dass:

der Webhook-Endpunkt erreichbar ist.

Auch nicht dadurch, dass:

der Cronlauf stattfand.

Nicht einmal dadurch, dass:

die API 200 zurückgab.

Das hilfreiche Kriterium lautet:

Jede WooCommerce-Bestellung, die in den externen Ablauf gelangen sollte, lässt sich nachvollziehen: Es gibt entweder einen bestätigten Zieldatensatz, einen ausdrücklichen Ausschlussgrund oder einen sichtbaren, behebbaren Fehlerzustand.

Das ist Bestellvollständigkeit.

Alles darunter lässt den Geschäftsbetrieb von ausbleibenden Meldungen abhängen.

Vorfälle mit fehlenden Bestellungen verhindern

Definieren Sie diese Verträge für wichtige WooCommerce-ERP- oder Fulfilment-Integrationen ausdrücklich.

Eignung
Welche Bestellungen gelangen wann in den externen Ablauf?
Stabile Identität
Wie wird eine WooCommerce-Bestellung dem externen Datensatz zugeordnet?
Erfassung
Webhook, Polling oder beides?
Checkpoints
Wann darf der Quellfortschritt sicher weitergesetzt werden?
Paginierung und Zeitfenster
Wie werden vollständige Ergebnismengen ohne Lücken eingesammelt?
Validierung
Wie werden die Anforderungen des Zielsystems geprüft?
Verarbeitungszustand
Kann der Betrieb zwischen eingereiht, versucht, angenommen und abgeglichen unterscheiden?
Wiederholungsversuch
Welche Fehler lassen sich sicher wiederholen?
Idempotenz
Wie werden doppelte externe Datensätze verhindert?
Abgleich
Wie werden fehlende oder unklare Datensätze später erkannt?
Beobachtbarkeit
Lässt sich eine WooCommerce-Bestellung von der Quelle bis zum Ziel verfolgen?

Sie bilden das Wiederherstellungsmodell einer umsatzkritischen Integration.

Wann eine spezialisierte Untersuchung sinnvoll ist

Eine spezialisierte Untersuchung ist sinnvoll, wenn:

  • bezahlte WooCommerce-Bestellungen im ERP oder auf einer Fulfilment-Plattform fehlen
  • nur manche Bestellungen nicht synchronisiert werden
  • Connectorlogs Erfolg melden, der Betrieb den Datensatz aber nicht findet
  • manuelles erneutes Senden Duplikate erzeugen könnte
  • Bestellstatusregeln oder individuelle Statuswerte die Eignung beeinflussen
  • API-Paginierung oder Datumsfenster beteiligt sind
  • die Synchronisierung möglicherweise verzögerte Hintergrundaufträge nutzt
  • Zielvalidierung für bestimmte Produkte oder Kunden scheitert
  • Webhook-Zustellung und Connectorzustand widersprüchlich sind
  • externe IDs nicht konsistent gespeichert werden
  • ein Batch teilweise erfolgreich war
  • Teams Systeme manuell vergleichen, um fehlende Bestellungen zu finden
  • frühere Wiederholungsversuche manche Bestellungen wiederherstellten, aber niemand das Verschwinden der übrigen erklären kann

Ziel ist nicht, Bestellungen erneut zu senden, bis die Anzahlen übereinstimmen.

Es lautet:

Rekonstruieren Sie die Bestellvollständigkeit über beide Systeme, identifizieren Sie die erste unbelegte Grenze, holen Sie nur tatsächlich ausgebliebene Vorgänge nach und machen Sie künftige Lücken sichtbar und abgleichbar.

Technische Referenzen

  1. WooCommerce-Entwicklerdokumentation — REST API v3 OrdersAktuelle Bestellressource, Collection-Paginierung und Filter für Erstellungs- und Änderungsdaten zur Erfassung oder zum Abgleich von Bestellungen.
  2. WooCommerce-Entwicklerdokumentation — REST-API-PaginierungSeitensteuerung und Antwortheader X-WP-Total / X-WP-TotalPages zur Verarbeitung vollständiger Collections.
  3. WooCommerce — BestellstatuswerteAktuelle Bedeutung von „Zahlung ausstehend“, „In Bearbeitung“, „Wartend“, „Abgeschlossen“ und weiteren Core-Statuswerten zur Bewertung der Eignung.
  4. WooCommerce-Entwicklerdokumentation — WebhooksAktuelle Webhook-Einrichtung, Zustellnachweise, Signaturen und Fehlerverhalten. Die Webhook-API-Dokumentation beschreibt außerdem Zustell-IDs, Protokolle und die Aufbewahrung der jüngsten Zustelllogs.
  5. MyWorks — Neue WooCommerce-Bestellungen werden nicht automatisch mit QuickBooks Online synchronisiertAktuelles connectorspezifisches Beispiel mit Einstellungen zur automatischen Synchronisierung, Statuseignung, Zahlungszuordnungen und Logs als Ursachen fehlender Bestellungen im Zielsystem.
  6. WooCommerce — ERPNext-IntegrationAktuelle Connectordokumentation zu Bestellstatus- und Zahlungszuordnungen, geplanter Synchronisierung, Verlauf/Logs und manueller Neusynchronisierung.
  7. DevFluxr Engineering Note #4 — Geplante WooCommerce-Aktionen bleiben ausstehend oder schlagen fehlDiagnose der Hintergrundverarbeitung, wenn Synchronisierungsaufgaben existieren, aber nicht abgeschlossen werden.
  8. DevFluxr Engineering Note #5 — WooCommerce-Webhook wird mehrfach ausgelöstIdempotenz, unklare externe Ergebnisse und Kontrolle doppelter Nebenwirkungen bei Wiederholungsversuchen und Wiederherstellung.