Shopify OrderHeader und OrderItemData in eine Zeile

Hallo lieber Support,


könntet ihr mir bitte zeigen wie es möglich ist die OrderHeader und OrderItemData in eine Zeile eines Spreadsheets schreiben zu können.

Wir importieren mit Hilfe des Shopify Addons die Orderdaten in Synesty jedoch erhalten wir diese in einem uns nicht verwendbaren Format. Wir benötigen für unseren Export alle Daten in einer Zeile, d.h. Kundendaten und Artikeldaten für jeden einzelnen Artikel der bestellt wurde, auch wenn einer Bestellung mehrere Produkte zugehörig sind.


Liebe Grüße,

Dennis

Hallo Dennis,


schau dir mal diese Doku an, das könnte dir weiterhelfen. https://docs.synesty.com/display/SSUD/Spreadsheets#Spreadsheets-ErgebnisseausParent-Zeileeinf%C3%BCgen

Du kannst von den Artikeln aus, auf die Headerdaten zugreifen in dem du in das Wert-Feld folgenden Freemarker Ausdrück einfügst:

${parent['Vorname']}


Edit: Zuvor müssen die Artikel in den Datastore geschrieben werden und dann per SearchDatastore geholt werden. Damit eine solche Parent-Variant Relation entsteht.


Viele Grüße,

Lukas

Hallo Zusammen,


ich würde das Thema gerne wieder hochbringen, da ich vor der exakt gleichen Herausforderung stehe. Ich benötige am Ende des Flows eine CSV Datei die aus den ShopifyOrderHeader Daten und den ShopifyOrderItem Daten zusammengestellt ist.

So ganz komme ich allerdings nicht dahinter, wie der Flow aufgebaut werden muss.


Im ersten Step habe ich den ShopifyGetOrders um am die Daten von Shopify zu kommen.

Im zweiten Step hab ich den DatastoreWriter genommen, frage mich jetzt allerdings wenn ich nur die Artikeldaten über "OrderItemData" und in den Datastore schreibe, fehlen mir ja die Header Daten? Die ich ja eigentlich benötige. Beides kann ich ja nicht in den gleichen Datastore schreiben, da das Schema nicht passt.

Muss ich die Header Daten dann in einem gesonderten Step abrufen?


Gibt es eventuell ein fertiges Cookbook dazu? Habe leider nichts gefunden.


Viele Grüße

Ramin

Hallo Ramin,


du könntest dir mit dem SearchDatastore Step alle Item Daten ausgeben lassen und im Mapper auf die Master (Head) Daten mit:


${master['columnname']!}


oder


${parent['columnname']!}


auf alle Informationen der Kopfdaten zugreifen, je nachdem ob die Datastore Relation Master-Child oder Parent-Variant ist.

Die extra Spalten müssen dann natürlich manuell hinzugefügt werden.

So kannst du dir alle Informationen in einer Zeile zusammenbauen.


Mehr Infos sind hier zu finden.



Viele Grüße,


Rocco


Perfekt!! Danke für den Denkanstoß, hab jetzt das gewünschte Ergebnis!


Eine Frage hätte ich noch. Der erstellte Flow wird bei jedem Lauf, auch immer wieder Bestellungen inkl. Bestellpositionen exportieren, die ich bereits im Drittsystem verarbeitet habe, da diese ja im Datastore sind.


So wie ich das sehe, kann man den Datastore automatisch leeren lassen, z.B. über Nacht und hätte am darauffolgenden Tag einen neuen Export nur von neu importieren Daten. Diese Funktion ist allerdings nur im Pro-Paket erhältlich, was sich für mich aber nicht rechnet.


Ich hatte mir überlegt, dass ich beim Import in den Datastore der Processing Status auf "UNRPOCESSED" lasse. Beim SearchDatastore dann auf diese unprocessed Einträge filtere und nach meinen CSV Export den Status der Einträge im Datastore auf "PROCESSED" umstellen lasse.


Nur finde ich keine Möglichkeit, den Status automatisiert nachträglich umstellen zu lassen.


Viele Grüße

Ramin

Man könnte am Ende des Flows wieder einen DatastoreWriter setzen und alle exportierten Datensätze auf PROCESSED stellen (Option updateProcessingStatus). Damit werden diese Datensätze dann beim nächste Durchlauf nicht mehr mit erfasst, wenn der SearchDatastore nur UNPROCESSED abruft.