ich habe bei einem Kunden das Problem, das gelegentlich die Aufträge ohne Positionen angelegt werden. Wir holen die Auftäge in einem MagentoSystem, huddeln die dann durch entsprechende Datenbanken und Mappings und spielen die mit PlentyAddOrders ein.
Hin und wieder fehlen dann die Artikel, in der Datenbank sind sie aber vorhanden.
Es kommt auch kein Fehler. Laut Log ist der Auftrag erfolgreich angelegt.
Ich habe schon versucht die Artikel dann nochmal hinterherzu schicken, aber die Schnittstelle meint dann der Auftrag wäre schon da und weigert sich. Stelle ich die Prüfung der external OrderID ab, legt er den Auftrag nochmal komplett an .
Hab ich da einen Knoten im Hirn oder was übersehen ?
Bzw. habt ihr eine Idee, woran es liegen könnte und wie ich das lösen kann ohne jedesmal den Auftrag zu stornieren und einen neuen anzulegen ?
kannst du uns bitte einen Screenshot von deinem Flow bzw. dem Eventlog zeigen?
Für uns wäre es interessant zu sehen, was genau vor dem Step PlentyAddOrders passiert.
ich denke ich habe den „Fehler“ schon gefunden. Wir holen die Artikel aus der Magentoschnittstelle. Packen die dann in die MagentoDatenbank, holen sie da wieder raus und stecken sie in die Plentykompatible Datenbank. Scheinbar sind die nachfolgenden Flows schneller als das Schreiben in die Datenbank, so dass der Header schon da ist, aber die Child-Datensätze, also Artikelpositionen noch nicht.
Es wäre toll, wenn man für solche Flows Delays oder „Warte auf Vorgänger bis Fertig“- optionen einbauen könnte.
Ich stelle das jetzt um, so dass die Nachfolgesteps direkt die geänderten Einträge aus der Datenbank konsumieren und nicht aus einem dem Schreiben folgenden Auslesestep.
Bei der Gelegenheit mal eine Frage:
Gibt es denn die Möglichkeit Positionen nachträglich hinzuzufügen ?
Ich habe zwar einen Step gefunden, mit denen man Artikelpositionen in Plentymarkets schreiben kann, aber da werden zwingend Positionsids erwartet, die ich ja n och nicht habe, wenn es den Artikel nicht gibt.
Gruß
Heinke
Das wird vermutlich die Ursache sein. Die Indexe der Datenbank werden asynchron aktualisiert. D.h. wenn ein SearchDatastore Step direkt nach dem DatastoreWriter Step ausgeführt wird (gleicher Datastore), kann es unter Umständen passieren, dass neu geschriebene Datensätze im Ergebnis nicht mitkommen. Wir empfehlen aus diesem Grund immer direkt einen der Outputs des DatastoreWriter Steps (z.B. newRecords oder newAndUpdatedRecords) zu verwenden. Nach deinem Umbau sollte das Problem also nicht mehr auftreten.
Hinzufügen von Artikelpositionen ist über den PlentySetOrderItems Step ist leider nicht möglich. Es können nur vorhandene Positionen aktualisiert werden. Eventuell könntest du im Plenty Backend manuell die fehlende Anzahl Positionen an der Bestellung hinzufügen und dann die Daten mithilfe des PlentySetOrderItems überschreiben.