Aktuell fehlt mir leider ein vernünftiger Denkansatz zum Abruf neuer Bestellungen in der API.
Zur Zeit filtern wir nur nach dem Bestellstatus “Offen” und ändern den Bestellstatus nach dem Import in die WaWi um alles neue zu kriegen.
Das funktioniert leider zu gut:
Wir importieren so leider auch Bestellungen, die noch nicht “fertig” sind. Sprich: Liefer- oder Rechnungsadresse noch nicht in der DB etc. Also noch nicht ganz finalisiert.
Das ganze tritt dann auf, wenn die Bestellung genau in dem Zeitfenster zwischen Änderung des Orderstate und Schreiben der jeweiligen Felder in die Datenbank abgerufen wird.
Je nach Zahlungsdienstleister und Calls kann das schon mal ein Zeitfenster von 1-2 Sekunden bedeuten.
Ein zusätzliches Filtern nach Bestellzeit möchte ich vermeiden um Problemen mit nicht ganz synchronen Systemzeiten aus dem Weg zu gehen.
Hat jemand einen Denkansatz für mich? Würde mich sehr freuen.
Also alles mit dem Status „Offen“. So dürften die mit -1 ja schon mal nicht mitkommen (kommen sie ja auch nicht).
Das Problem ist, dass beim Finalisieren der Order erst der Status auf 1 gesetzt wird und dann die ganzen Sachen wie Lieferadressen etc. nachkommen…
Das klingt seltsam, halbfertige Bestellungen haben doch normalerweise noch gar keine Ordernumber und sollten so auch nicht in der Api erscheinen…
Sonst könntet Ihr auf “ordernumber != 0” prüfen, um die Bestellungen zu filtern.
Alternative: In der Wawi eine Prüfung auf Komplettheit der Felder, dann wird auch nichts importiert, was evtl. in Shopware vom Kunden falsch/unvollständig eingetragen wurde.
Das klingt seltsam, halbfertige Bestellungen haben doch normalerweise noch gar keine Ordernumber und sollten so auch nicht in der Api erscheinen…
Sonst könntet Ihr auf „ordernumber != 0“ prüfen, um die Bestellungen zu filtern.
Alternative: In der Wawi eine Prüfung auf Komplettheit der Felder, dann wird auch nichts importiert, was evtl. in Shopware vom Kunden falsch/unvollständig eingetragen wurde.
Die „Alternative“ nutzen wir jetzt auch so ähnlich. Wenn wichtige Felder bzw. Adressen komplett fehlen schlafen wir eine Sekunde und fangen bei der Order wieder neu an. Seitdem haben wir das Problem nicht mehr.