API: Bilder über link matchen und nicht doppelt anlegen

Hallo,

folgendes Problem: Ich habe mir ein Tool gebastelt, welches über die Shopware REST-API Artikel anlegen soll. Das ganze klappt auch einwandfrei, außer bei den Artikelbildern.

Die Bilder wurden zuvor schon hinzugefügt und der Link (https://…) der Bilder ist bekannt, die media ID allerdigns nicht. Beim Anlegen des Artikels gebe ich aktuell die Bilder über den Link an, hierbei wird das genannte Bild jedoch dupliziert und im „Artikel“ Ordner der Medienverwaltung nochmals angelegt.

Hier der Codeauszug:

"images":[
{"link":"https://XXXX_LINK_XXX_1.jpg","main":1,"position":1},
{"link":"https://XXXX_LINK_XXX_2.jpg","main":2,"position":2}]

Es gäbe aus meiner Sicht zwei Lösungsansätze, vielleicht kann mir ja jemand weiterhelfen :slight_smile:

  1. Kann ich beim Import (POST) was im Code umbauen, dass beim Import das Bild nicht dupliziert wird?

  2. Kann ich mit dem Link/der URL irgendwie die MediaID abfragen und herausfinden? Dann könnte ich diesen Schritt vorab machen und entsprechend mit der MediaID den POST über die API machen, dabei wird das Bild nich dupliziert angelegt.

LG

Hallo,

als Medien Update geht eigentlich nur über die Media Resource.

https://developers.shopware.com/developers-guide/rest-api/api-resource-media/

Wenn das Bild immer den selben Namen hat, dann könnte man „s_articles_img“ abfragen, ob der Name schon vorhanden ist. Falls nicht, dann wird das Bild hinzugefügt (über articles) und falls schon vorhanden über media das Bild ersetzen.

Ohne Abfrage der Datenbank sehe ich keine saubere Lösung. Kürzlich habe ich eine größere Schnittstelle für einen Kunden mittels der REST API umgesetzt. Der Vorteil, alle Bilder haben die Artikelnummer im Namen. So kann ich wesentlich eindeutiger die entsprechende Media ID abfragen.