Bilder (Media Elemente) via API hinzufügen

Hallo,

ich habe mich so langsam durch die API Welt gekämpft.
Bei Shopware 5 war vieles einfacher…

Jedenfalls: Wie füge ich Bilder hinzu?

$parameter["title"] = "Hallo";
$parameter["mediaFolderId"] = "bf98f21ee213479db75583769a3a75fc";
$parameter["url"] = "Jens.jpg";
$response = $service->request("POST", "media", $parameter);

Muss das ganze vielleicht base64 encoden? Via $_files irgendwie? Was weis ich…

Vielen dank!

Hi jungblut,

da die Administration auch immer die API nutzt, kannst du dir solche Sachen immer ganz gut im Admin abschauen, wenn du nicht weiter weist.
Du musst zu erst ein Media-Objekt erstellen:

POST: http://shopware.local/api/v2/media

{
   "mediaFolderId":"2b1e1d56c13f457f9b26467fa2a85ab3",
   "id":"2c06cb9acf8d49828948f6d5c9ed1e6f"
}

Und danach die Datei per Media-Id uploaden:

POST: http://shopware.local/api/v1/_action/media/2c06cb9acf8d49828948f6d5c9ed1e6f/upload?extension=jpg&fileName=exampleFile

{
  "url":"https://as1.ftcdn.net/jpg/03/39/13/60/500_F_339136035_xxYedXqcvjQg1e4mBYgocdkeoCRD4cns.jpg"
}

Hoffe das Hilft dir weiter.

Gruß

Krispin

Das probier ich gleich aus vielen dank!

Machst du das dann ganz normal über die Entwicklertools oder wie genau “schaust du es dir ab”?

Danke!

Hi jungblut,

gern geschehen.

Genau, ich schaue mir solche Calls per Developer-Console über Chrome / Firefox an und kann diese dann per Postman etc. nachspielen.

Gruß

Krispin

Das bild ist da vielen herzlichen dank! Thumb-Up Thumb-Up Thumb-Up

Jetzt die letze und wichtigste Frage: Woher hast du den Parameter “URL”?
Hast du die aus dem Schema?

http://localhost/demoshop/public/api/v1/_action/media/974ce266128c44e08a27c8a5718dead4/upload?extension=png&fileName=Bildschirmfoto+2020-05-14+um+09.18.44

In meiner Entwicklerkonsole sehe ich das Bild als “POST” inhalt oder bei Google Chrome wird es als “Request Payload” bezeichnet.
Das könnte ich ja noch googeln, wie ich das übermittle.

Vielen lieben dank nochmal!

@Krispin‍ ist hier noch ein direktes hochgeben von Bildern geplant? Was man aktuell in der Sync API durch Batch hochgeben von Produkten spart, wird durch das einzelne Bildhochgeben und verlinken auf die Produkte wieder zunichte gemacht.

Hi Krispin,

ist zwar schon ein alter Post aber wie wo siehst du die Developer Console? Ich sehe zwar die Requests im Admin unten
image

ist das die Konsole die du meinst?

Hi @Nico2,

über die Symfony-Toolbar kann man das auch machen, aber meine die Entwickler-Console vom Browser.

Siehe z. B. https://support.monday.com/hc/de/articles/360002197259-So-öffnet-man-die-Entwicklerkonsole#:~:text=Schritt%201%3A%20Um%20die%20Konsole%20in%20Firefox%20zu%20öffnen%2C%20kannst,um%20die%20Entwicklerkonsole%20zu%20öffnen.

Gruß

Krispin