Folgendes könnte weiterhelfen:
Das geht nur wenn die Daten vorher in einen Datastore geschrieben werden. Wenn man davon ausgehen kann, dass die Plenty Order Daten 2-stufig im Datastore liegen, dann ist es grob so:
Diese kann man dann mit einem SearchDatastore Step auslesen.
1. Parent-Variant Datastore (d.h. nur ein Datastore, aber mit Parent- und Variantenzeilen:
<#list row.variants() as v>
<ORDER_ITEM>
<ordi_bla>${v.get('variantenspalte')!}</ordi_bla>
</ORDER_ITEM>
</#list>
Hier ist wichtig, dass man den Filter im SearchDatastore Parents/Varianten Filter="Nur Parents" setzt.
2. liegen die die Auftragsdaten getrennt in einem Master- und Child-Datastore
<#list row.children() as c>
<ORDER_ITEM>
<ordi_bla>${c.get('childspalte')!}</ordi_bla>
</ORDER_ITEM>
</#list>
Hier ist wichtig, dass man den Filter im SearchDatastore Children ausgeben="Children nicht ausgeben" setzt.
Man kommt anders nicht vom OrderHeader an die OrderItems ran. Nur wenn man Datastores verwendet hat man diese Möglichkeit. Ja, ${parent['parentSpalte']} funktioniert. Aber die OrderItems hängen ja an der Order und man muss über die Order an die Items ran. Das geht nur mit Datastores. (${parent.variants()} bzw. ${master.children()}). Das ist auch der übliche Weg, sich die Aufträge erstmal im Datastore zu puffern und danach getrennt zu verarbeiten. Vorteil ist auch, dass man die Daten erstmal im Datastore hat, und dann tracken kann, was man schon exportiert hat. Auch sicherer, falls mal irgendwas mi der API ist. Dadurch hat man Datenholen per API sauber getrennt vom Export.
Hier noch 2 Vorlagen, die den hierarchischen Import in Datastores zeigen:
Mit der Vorlage Hierarchischer Export von oben kann man das dann exportieren.
identifierColumn im DatastoreWriter für Child sollte sich aus aus OrderHeadOrderID-OrderItemsVariantID zusammensetzen.
z.B. ${OrderHeadOrderID}-${OrderItemsVariantID}
weil identifier immer eindeutig sein muss.
Hallo Mark,
im Step 7 (SearchDatastore) kannst du den Filter "processingStatus" verwenden, um z.B. nur "UNPROCESSED" Datensätze zu exportieren.
Viele Grüße
Torsten
Hallo Mark,
könnte sein das es noch ein "gecachtes" Ergebnis erhalten hast. Kannst du bitte nochmal schauen welchen Processing Status die Datensätze im Datastore haben (siehe 2. Screenshot) und nach der Ausführung der Vorschau ggf, nochmal auf Cache zurücksetzen anklicken.


Viele Grüße
Torsten
Hallo Mark,
der identifier muss eindeutig sein. Ansonsten wird nur ein Datensatz neu importiert und wenn der identifier ein weiteres mal vorkommt wird der Datensatz aktualisiert. In deinem Beispiel führt die doppelt vorhandene Varianten ID am Auftrag (Order ID 375) zu dem doppelten identifier (375-1149).
Um das Problem zu beheben, würde ich dir empfehlen eine Kombination aus OrderHeadOrderID+ OrderItemsID für den identifier im Child Datastore zu verwenden. Die OrderItemsID (Achtung: nicht verwechseln mit OrderItemsVariantItemID) ist eine eindeutige ID pro Positionszeile der Bestellung. 
Viele Grüße
Torsten