shopifyUpdatePriceAndBarcode - Bricht ab

Hallo Zusammen,


ich habe einen Flow erstellt, der in meinem Shopify Shop den "Price" und den "Compare_Price" updaten soll.

Der Flow zieht sich aus meinem Datastore die jeweiligen Daten. Wenn der "shopifyUpdatePriceAndBarcode" Step so konfiguriert ist, dass er beide Werte, also "Price" und den "Compare_Price" updaten soll, bricht der Flow nach 190 API Calls ab, siehe hier:

17:07:53 - Execute Flow-Step: shopifyUpdatePriceAndBarcode.

17:07:53 - Step: APIrateLimitPerSecond: 2 (1 characters total)

17:07:53 - Step: APIcallLimit:  (0 characters total)

17:07:53 - Step: input validation: Filtering spreadsheet with filter: row.isValid()

17:07:53 - Step: invalidItems: Start processing of Spreadsheet: Stammdaten_filtered

17:07:54 - Step: no valid rows to be proceeded warning: Condition does not apply. Flow will continue normally. Condition: !(output@SpreadsheetFilter_4?? && output@SpreadsheetFilter_4.hasRows())

17:07:56 - Step: invalid items warning: Condition does not apply. Flow will continue normally. Condition: negativeOutput@SpreadsheetFilter_4?? && negativeOutput@SpreadsheetFilter_4.hasRows() 

17:07:56 - Step: product update processing: Start requests with batchSize: 1

17:08:46 - Step: product update processing: Executed 100 requests already.

17:09:31 - WARNINGStep: product update processing: WARNING:Error during request 186: HTTP status: 422 (Unprocessable Entity), Response Content: {"errors":{"price":["must be greater than or equal to 0"]}}

17:09:31 - WARNINGStep: product update processing: WARNING:Error during request 188: HTTP status: 422 (Unprocessable Entity), Response Content: {"errors":{"price":["must be greater than or equal to 0"]}}

17:09:32 - WARNINGStep: product update processing: WARNING:Error during request 190: HTTP status: 422 (Unprocessable Entity), Response Content: {"errors":{"price":["must be greater than or equal to 0"]}}

17:09:32 - Step: invalidItems: # processed rows: 0

Wenn ich es aber auf zwei Steps aufteile, also ein Step updated den "Price" der zweite den "Compare_Price" dann laufen die Steps sauber durch.


Ich verstehe allerdings nicht so ganz, wieso der original Step mit dem Update beider Daten abbricht.


Hat jemand eine Idee?


Viele Grüße

Ramin

Hallo Ramin,


es scheint einige Zeilen (Artikel) in deinem Datastore zu geben, bei denen der Preis nicht gesetzt oder kleiner als 0 ist. Du könntest dir im Datastore alle Zeilen die keinen Preis gesetzt haben über den Freemarker Filter anzeigen lassen und ggf. löschen oder bearbeiten. Vielleicht hilft dir das bei der Fehlersuche weiter.


Filter:


price?trim == "" || (isNumber(price) &&  price?number < 0 )



Den Spaltennamen im Filter (price) musst du noch auf den Preis Spaltennamen in deinem Datastore anpassen.



VG Torsten

Hallo Torsten,


hab ich schon geprüft, auch mit einem Export des Datastores in CSV. Was mich stutzig macht ist, dass wenn ich zwei Steps draus mache statt einem, es sauber durchläuft.


Viele Grüße
Ramin

Hallo Ramin,


das hat mich auch etwas gewundert und sollte nicht so sein. Bist du dir sicher das der 2. Step dann auch komplett ausgeführt (evtl. limit gesetzt) und auch die gleiche Quelle (input) wie beim 1. Step verwendet wird ?

Kannst du im Eventlog bitte nachschauen ob es bei beiden Steps einen Eintrag "Step: product update processing: Finished xxx requests." gibt und ob die Anzahl der requests identisch ist.




Viele Grüße

Torsten