Neues Thema starten
Beantwortet

Aufträge aus Plentymarkets System 1 in Plentymarkets System 2 übermitteln

Hallo zusammen,


wir würden gern folgendes abbilden:


1. Aufträge werden aus Plenty Quellsystem geholt

2. Aufträge werden in Plenty Zielsystem eingelesen

3. Paketnummern werden aus Plenty Zielsystem exportiert und im Quellsystem eingelesen


Hat jemand schon einmal soetwas abgebildet? Da wir gerade erst mit Synesty anfangen, sind wir da noch nicht 100% fit. Problematisch wird's bei uns mit den Datastores.


Vielen Dank und Gruß,

Mark



Beste Antwort

Hallo Mark,


Ja, das ist möglich.


Die Doku der Steps bietet hier bereits einiges an Dokumentation für das Abholen der Order:

https://apps.synesty.com/registration/PlentySearchOrders/de-de?action=showStep&id=bcc0240c-0cd7-11e7-aa69-448a5bd88a72


Anlegen von Auftragsdaten wird hier beschrieben:

http://docs.synesty.com/display/SSUD/Step%3A+PlentyAddOrders+-+REST+API


und hier gibt es eine Vorlage für das Anlegen der Trackingdaten:

https://apps.synesty.com/studio/tasks?action=showTaskDefinition&id=RESTSetTrackingID&projectId=



Viele Grüße,

der Synesty Support



Hi Mark,
schau dir mal den Step "StopFlowIf" an. ich denke, das ist genau was du suchst.
Du kannst hier die Bedingung setzen und den Flow an der Stelle dann einfach ohne Fehler stoppen.

Viele Grüße und einen schönen Tag
Enrico

 


1 Person gefällt dies

Hallo zusammen,


bis heute lief unser Datenaustausch reibungslos, jetzt kommt es zu Problemen bei Aufträgen mit Bundles.


Wir bekommen folgende Fehlermeldungen:



WARNING
WARNING:Error processing order with identifier 15428
Error during creation of order in plentymarkets Shop: POST https://www.plenty-es24.de/rest/orders HTTP/1.1
{"error":{"message":"validation error found"},"validation_errors":{"itemVariationId":["item variation id muss ausgef\u00fcllt sein wenn type id 1 ist."]}}


Das Mapping machen wir über die Externe Varianten-ID. Diese ist im Quellsystem eingetragen und sucht im Zielsystem die VariantenID.


Bei Bundles haben wir es so konfiguriert, dass die Bundle-Köpfe keine externe VariantenID haben, damit die Artikel nicht ggf. doppelt hinzugefügt werden (falls das Zielsystem die gleichen Bundles verwendet).


Bis vor Kurzem hat das auch super funktioniert - seit heute leider nicht mehr. 


Hat jemand eine Ahnung wo der Haken sein kann?


Vielen Dank und Gruß,

Mark


Hallo Mark, 


kannst du dir bitte mal die Bestell-Positionen des Datensatzes mit identifiers 15428 ansehen ? Laut Fehlermeldung sieht es so aus, als wäre die Varianten ID (variantId) leer oder nicht korrekt gefüllt. Möglicherweise ist es ein Bundle ? Evtl. musst du den "Bundle Kopf" noch raus filtern, damit nur die Bundle Items übertragen werden.


Viele Grüße

Torsten 

Hi Torsten,


genau, es gibt ein Bundle Artikel. Dieser hat keine VariantenID Zuordnung, damit nur die Bundle Childs übertragen werden. Das hat ja bis vor Kurzem auch genau so funktioniert.


Sorry für die Anfängerfrage, aber wie kriege ich den Bundle Kopf rausgefiltert?


Tausend Dank im Voraus.


Mark

Hallo Mark, 


du kannst vor dem DatastoreWriter der die Positionen importiert noch einen zusätzlichen SpreadsheetFilter Step einbauen. Bei den"Bundle-Köpfen" steht in der Spalte OrderItemsTypeID eine 2.


 Diese Zeilen kannst du über die Filterbedingung OrderItemsTypeID != "2" entfernen. Das Ergebnis des SpreadsheetFilter Steps sollte dann in etwa wie folgt aussehen:


Den Output des Filters musst du dann als input im DatastoreWriter für die Bestell-Positionen verwenden. Der Flow sollte dann in etwa so aussehen:



Viele Grüße

Torsten 




Moin Torsten,


vielen Dank für die Hilfe - funktioniert super.


Das Problem tritt allerdings bei Aufträgen die ins Ausland (aktuell Österreich) gehen, immernoch auf.


Fehlermeldung: item variation id muss ausgef\u00fcllt sein wenn type id 1 ist."]}}


Verhält es sich hier nochmal anders? Wir können die Fehlerursache nicht finden.


Viele Grüße

Mark

Hallo Mark,


das sollte eigentlich nicht mit den Auslandsaufträgen zusammenhängen. Kannst du bitte mal im Child Datastore (Bestellpositionen) prüfen, ob es eine Position ohne gefüllte variantId oder einen nicht numerischen Wert gibt (rot markiert) ?   



Viele Grüße

Torsten

Hi Torsten,


so wie es aussieht hängt es mit doch mit den Auslandsaufträgen zusammen. Da wir im Quellsystem bei diesen Aufträgen Versandkosten haben, wird entsprechend ein Datensatz hinterlegt.


So sieht es im Datastore aus:


image


Kann ich die Shipping Costs einfach mit rausfiltern? Sind für das Zielsystem ja irrelevant.


Dann ist mir noch aufgefallen, dass in dem Auftragsdatastore ein rot markiertes Feld auftaucht:


image


Das scheint die Auftragsübermittlung aber nicht zu beeinflussen. Sollte man hier etwas anpassen?


Vielen Dank schon mal!


Liebe Grüße,

Mark

Hallo Mark, 


wenn die Versandkosten nicht relevant sind, kannst diese auch rausfiltern.


Der OrderType wird beim Import automatisch auf 1 (entspricht "SalesOrder") gesetzt, wenn am Datensatz kein valider Wert gesetzt ist. Falls du die Warnung beheben möchtest, kannst du den Wert beim Import in den Datastore fest auf 1 setzen.


VG Torsten  

Hi Torsten,


kann ich in einem Spreadsheetfilter auch mehrere Bedingungen setzen?


Die ID für Versandkosten scheint ja immer 6 zu sein. Ich würde also gern folgende zwei Bedingungen einfügen:


OrderItemsTypeID != "2" und OrderItemsTypeID != "6"


Oder muss ich hierfür einen zweiten SpreadSheetFilter Step einfügen?


Viele Grüße,

Mark

Ich habe es jetzt so gelöst:


OrderItemsTypeID != "2" && OrderItemsTypeID != "6"


Der Output Preview sieht auch soweit gut aus. 


Das sollte so funktionieren, oder?

Hallo Mark, 


das sieht korrekt aus.


VG Torsten

Anmelden um einen Kommentar zu veröffentlichen