Ungewöhnliches Verhalten von SpreadsheetUrlDownload mit Shopware API Call

Hallo,

ich hab ein etwas ungewöhnliches Verhalten im SpreadsheetUrlDownload Step festgestellt, wenn ich einen bestimmten Endpunkt in der Shopware API anspreche. Ich kann dabei nicht ganz feststellen, ob es mit der Shopware API oder Synesty zusammehängt.

Und zwar möchte ich in Shopware den Namen und die Produktnummer einer Bestellposition ändern.
Dabei spreche ich den Endpunkt https:/domain.com/api/order-line-item/${oderLineItemID!} an und übergebe den Requestbody:

{
    "label":"${label!}",
    "payload": {
        "productNumber": "${productNumber!}"
    }
}

Wenn ich den Flow oder die Step-Vorschau ausführe erhalte ich von der API folgenden Fehler zurück und die Bestellpostionen werden nicht angepasst:
„HTTP status: 400 (Bad Request), Response Content: {„errors“:[{„code“:„0“,„status“:„400“,„title“:„Bad Request“,„detail“:„The JSON payload is malformed.“}]}“

Wenn ich den Flow oder die Step-Vorschau direkt danach gleich nochmal ausführe dann funktioniert alles ohne Fehler und die Bestellpositionen werden angepasst.

Wenn ich das Ganze über Postman teste funktioniert es immer beim ersten Mal was mich etwas verwirrt mit was es zusammenhängt.

Viele Grüße,
Patrick

Hallo Patrick,

schwer zu sagen woran es liegt. Vermutlich ist einer der Werte label und/oder productNumber leer. Eventuell werden Daten mit einem vorherigen Request / Step geschrieben und sind dann erst bei der zweiten / nächsten Ausführung vorhanden. Woher bekommst du die Daten label und productNumber?

Wie sieht denn der requestBody des SpreadsheetUrlDownload Step im Fehlerfall aus?

VG Torsten

Hallo @synesty-Torsten,

den requestBody hatte ich überprüft und auch im Postman getestet, was funktionierte.
So sieht der requestBody im Fehlerfall aus:

Und so im Erfolgsfall:

VG Patrick

Hallo Patrick,

der 1. request scheint auch zu funktionieren. Der Fehler passiert erst beim 2. Request:

Kannst du dir mal bitte 10 Zeilen in der Vorschau anzeigen lassen:
image

VG Torsten

Oh stimmt, das hatte ich übersehen:

Der zweite requestBody sollte aber eigentlich auch valide sein.

Hmm, der requestBody sieht auf den 1. Blick gut aus. Zwei Ideen hab ich noch:

  • eventuell liegt es am Umlaut im label → kannst du bitte mal den „bodyContentType“ auf den Wert application/json; charset=UTF-8 stellen (siehe Encoding bei APICall - #3 von spawn)

  • oderLineItemID ist in der Zeile vorhanden? Sonst würde als API Route https:/domain.com/api/order-line-item/ rauskommen

VG Torsten

1 „Gefällt mir“

Durch die Umstellung auf UTF-8 scheint jetzt kein Problem mehr aufzutreten. Ich werde es mal weiter beobachten.

Vielen Dank für deine Hilfe!

VG
Patrick

1 „Gefällt mir“