Hallo zusammen,
folgendes Szenario: Ich versuche unsere Artikel in Shopware 5.5.4 per API zu aktualisieren. Dazu lese ich zunächst alle Artikel aus, um zu erfahren welche unserer Artikel derzeit im Shop sind, um dann für alle bestehenden Artikel aktualisierte Informationen wie Preis, Bestand, etc. aus dem WaWi System zu holen. Danach aktualisiere ich alle Artikel mit den entsprechenden Daten. Das läuft soweit auch prima, außer bei Artikeln mit Varianten. Diese werden nicht korrekt aktualisiert.
Laut Dokumentation soll die Rückgabe eines Artikels im Response neben “mainDetail” im Falle eines Artikels mit Varianten auch ein Feld “variants” liefern. Dieses kommt jedoch bei meinem Testartikel nicht zurück. Ich habe keine Ahnung warum das so ist. Vielleicht ist auch etwas an dem Testartikel falsch? Dieser wurde manuell über das Backend angelegt, funktioniert so auch erstmal korrekt. Die Varianten sind im Shop-Frontend auch wählbar.
Was mir noch aufgefallen ist, der Response für den Artikel enthält statt dem erwarteten Feld “variants” ein Feld “details”. Hier scheinen die Varianten aufgelistet. Allerdings weiß ich nicht wie ich dieses Feld aktualisieren kann.
array(2) {
["data"]=>
array(40) {
...
["details"]=>
array(8) {
[0]=>
array(31) {
["id"]=>
int(73)
["articleId"]=>
int(3)
["unitId"]=>
NULL
["number"]=>
string(12) "252050201009"
["supplierNumber"]=>
string(0) ""
["kind"]=>
int(2)
["additionalText"]=>
string(0) ""
["active"]=>
bool(true)
["inStock"]=>
int(10)
["stockMin"]=>
int(1)
["lastStock"]=>
bool(false)
["weight"]=>
string(5) "0.000"
["width"]=>
NULL
["len"]=>
string(7) "168.000"
["height"]=>
NULL
["ean"]=>
...
}
["success"]=>
bool(true)
}
Versuche wie z.B.
$client->put('articles/252050201008?useNumberAsId=true', array(
'details' => array(
0 => array(
'inStock' => 200
)
)
));
quittiert er er zwar mit einem success, aber es hat keinerlei Auswirkungen. Die Artikel-Nummer mit der 8 am Ende ist dabei die HauptId und die ID mit der 9 am Ende aus dem details Array ist die erste Variante…
Vielleicht hat jemand eine Idee was hier schief läuft?
Vielen Dank!