bei der Erstellung von Bestellungen via ShopifyCreateOrders werden in dem Header-Datastore ja die Order-Id und einige weiteren Informationen aus Shopify abgespeichert. Könnte ihr dasselbe auch in dem Datastore mit den Bestellpositionen umsetzen? Diese kriegen ja eine Line_Item_Id zugewiesen, die man auch mit unter wieder zurück an Shopify melden muss.
Zum Beispiel bin ich beim OrderFulfillment-Step grade auf diese IDs angewiesen.
Ich lese die jetzt selbst nach Auftragserstellung aus. Sehe aber keinen Grund, warum die nicht schon bei der Erstellung der Bestellung eingetragen werden sollen. Oder fehlen diese in der Antwort von Shopify?
Die Line_Item_Ids verwendet ich beim OrderFulfillment. Dort ist mir aber am Wochenende noch aufgefallen, dass der Step garnicht mehr von euch unterstützt wird. Übersehe ich da eine neue Alternative oder unterstützt ihr das im Moment garnicht?
Hatte das auch schonmal in dem alten Post zur neuen API-Version gefragt.
Das Orderfulfillment ist für mich ganz klar Prio A, die Line_Item_IDs habe ich ja im Grund schon auf Umwegen selbst abgefragt. Die direkt aus dem CreateOrders-Step zu kriegen, ist nur ein Nice-to-have.
Wenn ihr in Richtung OrderFulfillment nichts bietet, muss ich mir relativ schnell selbst was mit APICalls zusammen basteln. Daher wäre es sehr gut zu wissen, ob ihr da kurzfristig was liefern könnt.
es gibt jetzt eine neue Version des ShopifyOrderFulfillment 2023-01.
Diese Version verhält sich etwas anders, und zwar musst du die fulfillment_order_id übergeben statt wie zuvor die order_id. Sind tatsächlich zwei unterschiedliche.
Um an die fulfillment_order_id zu kommen gibt es beim ShopifyGetOrders eine neue Option „fulfillments“ diese musst du auf yes stellen um an die entsprechenden IDs zu kommen.
sehr cool, danke für die schnelle Reaktion. Leider kriege ich aber nur zu einer von 15 Bestellungen die Fulfillment-ID. Gibt es dabei noch was zu beachten?
da sollte es eigentlich nicht weiter zu beachten sein. Ich habe gerade nochmal in den Step geschaut… Der sollte für jede Zeile des Spreadsheets die entsprechenden Daten ausgeben. Wenns die ID nicht im System gibt sollte auch kommen die Zeilen in den „failedItems“ Output. Eventuell geht daraus hervor warum nicht alle IDs raus kommen…
das Problem ist auch nicht der OrderFulfillment-Step selbst. Ich kriege aus dem GetOrders-Step garnicht erst die Fulfillment-IDs genannt. Die einzige Bestellung, für die ich eine Fulfillment-ID kriege, ist eine, bei der Fulfillment bereits manuell abgewickelt wurde.
Wenn ich Lukas richtig verstehe, brauche ich ja die ID aus GetOrders, um den OrderFulfillment-Step zu benutzen.
EDIT: Programm ist gelöst. Der Fulfillment_orders.json-Endpunkt hatte eben immer ein leeres Array zurückgeliefert. In der Doku zu dem Endpoint steht:
An API client will only receive a subset of the fulfillment orders which belong to an order if they don’t have the necessary access scopes to view all of the fulfillment orders. In the case that an API client does not have the access scopes necessary to view any of the fulfillment orders belongs to an order, an empty array will be returned.
Ich habe mir jetzt noch die Rechte für merchant_managed-, third_party- und custom_fulfillmentservices und nun kriege ich auch das Spreadsheet mit Fulfillment-IDs geliefert.
Fulfillments klappen soweit bei meinen Tests. Aber kann es sein, dass die Fulfillment-APICalls sich nicht an das konfigurierte API-Ratelimit aus dem Shopify-Konto halten? Ich kriege in dem GetOrders, wo die Fulfillment-IDs abgefragt werden, häufiger 429-Fehler „Too many requests“.
EDIT: Außerdem läuft der Step anscheinend in Fehler, wenn man durch Filterung o.ä. keine Bestellungen abruft. Das finde ich so auch nicht richtig.
vielen Dank für den Hinweis. Beide Fälle sollten nun nicht mehr auftreten. Ich hatte als Bedingung, dass die fulfillments abgerufen werden, nur gesetzt ob das auf „yes“ gesetzt ist und nicht ob es auch überhaupt Aufträge kommen.
Ratelimit ist jetzt auch das gleich wie beim Aufträge abrufen.
kannst du mir mal bitte die genaue Bezeichnung nennen, was du mit „stornieren“ in Shopify meinst? Vllt. auch mit Screenshot, wie so eine stornierte Bestellposition aussieht.
ich müsste auf Positionsebene einen Refund auslösen. Also eine Bestellung mit mehreren Positionen kommt rein, aber eine Position kann garnicht mehr beliefert werden. Dann sollen ja nur die verfügbaren Positionen beliefert werden und die nicht verfügbare Position storniert werden.
Im Backend gibt es dafür einen Knopf „Refund“. Hier ein Screenshot davon:
Im Endeffekt möchte ich für eine von mir vorgegebene Liste an Positionen so einen Refund auslösen. Am besten ähnlich wie der OrderFulfillment-Step mit eine Zeile pro Bestellung und eine Key-Value-Liste für die Angabe der Refunds und Refundmengen.
denke ich bekommen wir hin. Ich würde das dann so bauen, dass man pro Zeile eine Position angeben kann, damit sollten die individuellen Parameter entsprechend gut übergeben werden.
Ich denke spätestens morgen solltest du es nutzen können. Ich gebe dir dann nochmal bescheid.
kurzes Lebenszeichen von mir. Step ist noch in Arbeit. Es hat erstmal bisschen gedauert, bis ich es im Postman zum laufen gebracht habe.
Der Step kommt aber die nächsten Tage.
ich bin die letzten Tage krankheitsbedingt ausgefallen. Den Go-Live haben wir dadurch auch weiter nach hinten geschoben. Ich gedulde mich, bis der Step fertig ist.
es gibt jetzt den shopifyCreateRefund Step im Beta Add-On. Ein Hinweis dazu, die transaction_id sollte ausgefüllt sein, wenn du das nicht machst, wird die Position im Shopify Backend lediglich removed.
Und wenn die transaction_id gefüllt ist muss mindestens auch payment_gateway gefüllt sein.