REST Api: Kategorie für Artikel setzen

Hallo, wenn ich einen Artikel über die REST API anlege oder aktualisiere, wird die Kategorie ignoriert. Ich verwende diesen Code: { "name": "Ghostbusters Poster)", "descriptionLong": "Poster gerollt", "mainDetail": { "number": "1435", "inStock": "0" }, "active": "1", "tax": "19", "categories": { "id": "1258" }, } Woran kann das liegen? Die Kategorie existiert im Shop (es ist eine Unterkategorie) Gruß, Anton

Hallo, gibt es eine Lösung dafür? Gruß, Anton

Hallo, hab zwar noch keine Artikel über die RestAPI angelegt - erst demnächst. Aber probier doch mal folgendes: ... "categories":[1258], ... Du kannst ja einen Artikel mehreren Kategorien zuweisen und shopware erwartet da so wie ich das sehe ein Array mit einer oder mehrere Kategorien.

1 „Gefällt mir“

Dein Code sieht mir nach einem JSON-String aus. Kann man den auch direkt übergeben? Categories muss ein verschachteltes Array sein, jede ID kriegt ein Array: $client-\>call('articles', ApiClient::METHODE\_POST, array( 'name' =\> 'Ghostbusters Poster', 'taxId' =\> 1, 'categories' =\> array( array('id' =\> 1258) ), 'mainDetail' =\> array( 'number' =\> '1435' ) ));

1 „Gefällt mir“

Danke, genau das war’s. Die eckigen Klammern, die ein Array definieren, fehlten. { "name": "Speed 7 Jacke Kansas - grau", "descriptionLong": "Winddichte Windjacke", "mainDetail": { "number": "VAR1000", "inStock": "9", "prices": [{ "customerGroupKey": "EK", "price": "149", "from": "1" }] }, "active": "1", "tax": "19", "supplier": "Speed 7", "categories": [{ "id": "206" }], ... Ja, wir übergeben den JSON String direkt von .NET / C# aus. Gruß, Anton

Hallo roecki, ich habe gerade genau die gleiche Anforderung. Ich will einen Artikel aus .Net über die REST-API anlegen. Jedoch kriege ich es nicht hin den JSON String so zu übergeben, dass die REST-API diesen annimmt. Wie hast du das denn gemacht?:frowning: Kannst du mir hier eventuell einen Tipp geben? Vielen Dank vorab.

Hallo, mit der .NET HttpWebRequest Klasse kann das Json übertragen werden. Die Method-Eigenschaft muss entsprechend gesetzt werden (POST, PUT, DELETE). In der Credentials Eigenschaft müssen die Zugangsdaten übergeben werden. Evtl. muss auch ContentType gesetzt werden (application/json). Gruß, Anton

1 „Gefällt mir“

Hallo roecki (oder wer auch immer eine Antwort liefern kann) ich versuche genau das selbe und bekomme es einfach nicht hin. Also Artikel per HttpWebRequest (vb.net) an shopware übertragen. Ich bin mir jedoch nicht sicher wo es klemmt. Folgendes gibt mein Response zurück: Hallo roecki (oder wer auch immer eine Antwort liefern kann) ich versuche genau das selbe und bekomme es einfach nicht hin. Also Artikel per HttpWebRequest (vb.net) an shopware übertragen. Ich bin mir jedoch nicht sicher wo es klemmt. Folgendes gibt mein Response zurück: sServerResponse = "
Fatal error : Call to a member function getNumber() on a non-object in /bd1f98e8198c1c609e34ab73a16373d4/www/engine/Shopware/Components/Api/Resource/Article.php on line 618
" Bin leider überfragt, mach ich was falsch? ist irgendwas falsch eingerichtet. Benutze für meinen Test einen Demoshop