Über die RestApi Bilder einer Variante tauschen oder updaten

Wenn ich über die RestApi mit  PUT eine Produktvariante updaten möchte klappt das mit Artikeldaten sehr gut.

Die Bilder werden allerdings hinzugefügt statt geupdatet. Gibt es da einen Trick?

Dann ist mir aufgefallen, dass die Beschreibung nicht gespeichert wird. Ist das ein Fehler von Shopware oder mache ich etwas falsch?

Hier der Code, wie ich das mache

$minimalTestArticle[“data”][“images”][“0”][“link”] = $bild1;
$minimalTestArticle[“data”][“images”][“0”][“description”] = $bildname1;

$minimalTestArticle[“data”][“images”][“1”][“link”] = $bild2;
$minimalTestArticle[“data”][“images”][“1”][“description”] = $bildname2;

$lasts = $client->put(‘variants/ID123?useNumberAsId=true’, $minimalTestArticle);

Zu deinem ersten Problem mit dem hinzufügen/ersetzen sollte der Merge Mode helfen. Bedenke allerdings das nur die Image Verknüpfungen aktualisiert werden aber die „alten“ ersetzten Bilder noch im Media Manager/Server bleiben. Ist leider so in Shopware und müllt dir mit dir Zeit deinen Server zu. Dazu gibt es den Media Cleanup Cronjob und man kann bei jedem Album einstellen ob das Album vom Cleanup betroffen sein soll. So könnte man es lösen wobei ich das selber noch nicht produktiv im Einsatz habe. Lösche als Übergangslösung alle paar Wochen mal sehr alte Artikelbilder via Media Manager.

Zu der Beschreibung seh ich jetzt auf den ersten Blick keinen Fehler. Versuch dich vielleicht mal an diesem Beispiel zu orientieren und vergleiche mal deinen JSON Payload mit diesem.

Die API merge Mode funktioniert nur bei dem PUT von /api/articles/XXX

Ich habe es mit dem PUT von /api/variants/XXX getestet und es funktioniert nicht, ist daher keine Lösung.

Meine Idee war die Bildlinks in der Image Description zu speichern vor dem Update abzufragen. Leider werden bei dem anlegen von Varianten sowie beim updaten die zwar die Bilder gespeichertt aber die Bilddescription nicht.