ich versuche, Shopware mit Artikeln direkt aus unserem WWS zu befüllen.
Ich umgehe die PHP-Bibliothek und schicke direkt einen JSON-String an die API. Bisher funktioniert alles ganz gut, nur stoße ich bei den Artikeleigenschaften an meine Grenzen. Ich möchte den Artikel mit einem eigenen Feld „USK“ befüllen.
Ich versuche via PUT den Artikel zu aktualisieren:
Ich weiß zwar nicht, ob propertyValues das richtige Objekt dafür ist, aber laut Dokumentation ist propertyValues nicht in den mainDetails definiert. Vielleicht liegt da der Fehler?
Haben Sie zuerst im Menu Artikel -> Eigenschaften, die Eigenschaft “USK” hinzugefügt ?
Haben Sie schon mal im Backend ein Artikel angelegt mit solche Eigenschaft und dann über die API mit GET abgefragt ? Dann sehen Sie die genaue Struktur die mann braucht zum POSTen.
Immerhin hat das Setzen der ‚filterGroupId‘ schon mal bewirkt, dass das richtige Eigenschafts-Set im Backend angezeigt wird.
Leider werden die Eigenschaften an sich jedoch auch mit verschiedenen Tests des ‚propertyValues‘-Objekt nicht gesetzt…
Die Klammer ist dort nicht korrekt, weil sie zu einem ungültigen JSON-String führt. In JavaScript (und damit auch im JSON-Format) bedeuten geschwungene Klammern {} ein Objekt. Hier muss man immer ein Key-Value-Paar schreiben, also zB.:
Eckige Klammern hingegen zeigen ein Array an und dieses kann in JSON nur Werte beinhalten, also zB.:
["value1","value2","value3"]
In PHP arbeitet man hingegen mit „Arrays“ (vergleichbar dem Array in JSON) und „Associative Arrays“ (vergleichbar dem Objekt in JSON). Da steht aber so etwas wie
So weit korrekt. Die eckige Klammer muss sich durch einen Fehler in der Programmierung unserer WWS-Schnittstelle eingeschlichen haben. Letztendlich fehlte doch die ‘filterGroupId’, damit der Call auf die API funktioniert. Dieser Hinweis kam erst durch WillemMeert’s Anwort.
BTW werden Assoziative Arrays in PHP folgendermaßen deklariert