Fehlende Datensätze aus ShopifyGetRefunds

Wir importieren stornierte Bestellungen und Gutschriften via ShopifyGetRefunds. Ich erzeuge aus der Tabelle "Transactions@shopifyGetRefunds_1" einen Master Datensatz und habe für jede Tabelle aus dem Step auch einen Child Datensatz.


Jetzt fehlen mir 4 Datensätze im Master Datastore, zu welchen aber die Child Datensätze angelegt worden sind. Besonders problematisch: es gibt den Transactions Datensatz, nicht aber den Master, aber beide benutzen die gleiche Input Tabelle.

Hallo,


was für eine Spalte verwenden Sie für den master_identifier in den Child Datensätzen?


Viele Grüße,

Der Synesty Support

Hallo,


ich hab mir das noch mal ein bisschen genauer angeschaut und sehe mehrere Problem:


Bei einigen Refunds gibt es keine Transaktionen, es wurden lediglich einzelne Artikel storniert, daher gibt es keinen Datensatz in der Transaktionen-Tabelle und es kann keinen Master Datensatz erstellt werden.Die Referenz von Child zu Master ist immer die refund_id, das ist in allen DatatstoreWriter Steps korrekt eingerichtet.


In Shopify hat ein Refund aber folgende Struktur


Refund

+Basisdaten: id, order_id,datum,user

+ refund_line_items

+ id, line_item_id, anzahl, beträge...

+ order_adjustments

+ id, order_id, refund_id, amounts, type...

+ transactions

+ id, order_id, kind, gateway, status....


Der ShopifyGetRefunds Step bringt aber die Daten nicht in dieser Struktur, sondern lediglich die Child Elemente refund_line_items, order_adjustments und transations. Daraus lässt sich nicht eine saubere Parent-Child Struktur abbilden, wenn die Daten nicht alle gegeben sind, z.B. weil es eben auch mal keine Transaktion geben kann. Zudem ist mir aufgefallen, dass bei etlichen Refunds keine Transaktionen importiert wurden, obwohl diese via API zur Verfügung stehen und aus diesem Grund wurde kein Master angelegt. Ich bin mir hier auch nicht im Klaren, wieso. Ich habe auch schon mal versucht, alle Refunds zu aktualisieren, aber auch danach waren die Child Datensätze ohne Parent.


Hallo,


leider sind wir uns noch nicht 100 prozentig sicher ob wir es richtig verstehen. Die drei Spreadsheets, die ausgegeben werden haben immer die zwei Spalten order_id und refund_id, über diese sollte immer eine Zuordnung zu den anderen Positionen der Spreadsheets möglich sein. Wenn Sie nun noch schreiben, dass es mal manchmal sein kann, dass es zu einem Refund nicht immer eine Transaktion gibt, können Sie theoretisch auch nicht die Transaktion als Master nehmen. Oder haben Sie das gemeint, dass wir manchmal die Transaktion nicht ausgeben, obwohl es eine geben müsste?

Nichtsdestotrotz, um das zu umgehen, dass Childs angelegt werden obwohl es keinen Master gibt, können Sie vorher mit einem Querverweis der refun_id auf den Master Datastore kontrollieren ob es dazu einen Master/Transaktion gibt.


Viele Grüße,

Der Synesty Support

Hallo,


das grundlegende Problem ist: aus welcher Tabelle kann man zuverlässig einen Masterdatensatz ableiten? Sowohl Transaktionen, als auch RefundItems und RefundOrderAdjustments können auch mal nicht befüllt sein.

Hallo,


dann würde es sich hier anbieten mit dem shopifyGetOrders Step sich die Kopfpositionen als Masterdatastore zuschreiben um anschließend für jedes einzelne Spreadsheet aus dem shopifyGetRefunds einen Childdatastore zu den Masterdatastore zu machen. Denn ein Masterdatastore kann auch mehrere Childdatastores haben.

In dem Fall wäre der identifier im Masterdatastore die order_id und in den Childdatastores wäre das der master_identifier.


Viele Grüße,

Der Synesty Support.

Das macht aber keinen Sinn, denn die Refund Line Items, Transaktionen und Order Adjustments stehen in einer Child-Beziehung zum Refund und in einer Grand-Child Beziehung zur Order...

Die Information zu den Refunds stehen an den Line Items. Wir haben diese soeben noch um Information: refund_created_at, refund_processed_at, refund_user_id und refund_restock erweitert. Daraus können Sie sich Ihren Refund Masterdatastore bauen und alle Informationen die in dem "RefundedItems" Spreadsheet nach der Spalte " refund_note " kommen gehören entsprechend einem line_item die dann als Child genutzt werden können.

Hallo Synesty Support,


wir haben uns das Thema Refunds noch mal zusammen mit einer Shopify Partner Agentur angeschaut. Je nach Fall, gibt es keine Refund Line Items oder Transaktionen, sprich eine Ableitung eines Master Datensatzes aus diesen Tabellen ist nicht immer möglich. Ich habe es nun so gemacht, dass ich aus allen drei Tabellen (Line Items, Transactions und Order Adjustments) Daten für einen möglichen Master als Tabellen mappe, diese zusammenfüge und anschließend Duplikate per Gruppieren entferne. So aber fehlen dann wiederum Daten wie "created_at", welche dann per SpreadsheetUrlDownload Step nachträglich heruntergeladen werden müssen, was ja irgendwo suboptimal ist.