Rest API: Wie bekomme ich die URLs der Artikel Bilder Thumbnails über die API?

Hallo Zusammen,

ich schreibe gerade einen Wordpress Shortcode, um Shopware Artikelbilder und Titel in einem Wordpress Blog einzubinden.
Dabei verwende ich die Shopware Rest Api, um die Artikeldaten und auch die Bilder in Wordpress abzurufen.

Allerdings habe ich keine Möglichkeit gefunden, die URLs der Shopware Artikel Thumbnails über die API abzurufen (also auf verschiedene Auflösungen zuzugreifen).

Hat jemand eine Ahnung, wie ich an die Artikelbilder Thumbnails über das Rest API komme?

Ich gehe bis jetzt folgendermaßen vor:

  1. Rest Api Client implementieren von dieser Seite:
    https://developers.shopware.com/developers-guide/rest-api/
  2.  Artikel Daten über die API abrufen:
    z.B. $client->get(‚articles/3‘);
  3. Media IDs der Produktbilder extrahieren
  4. Media Daten der Media ID abrufen
    z.B. $client->get(‚media/227‘);
  5. URL aus den Mediadaten extrahieren

Die finale URL entspricht allerdings der Original Bildgröße. Ich würde gerne den 200x200 Thumbnail extrahieren.

Oder noch besser: Alle Thumbnail URLs für ein Artikelbild über die Api abrufen und ein srcset img Element bauen für responsive Images.

Kann jemand helfen?

Danke und viele Grüße

Jens

Yay! Ich habe es gelöst.

Falls es irgendjemanden irgendwann interessiert:

Man kann auf zwei Wege auf die URLs der Thumbnails kommen:

1. Einfacher Weg mit 301 Redirects auf das  Bildverzeichnis:

Ungefähr so:

	$article_data=$client->get('articles/1280');

	$article_name = $article_data["data"]["name"];

	$article_image_media_path = reset($article_data["data"]["images"])["path"];
	$article_image_media_extension = reset($article_data["data"]["images"])["extension"];


	$article_image_path_200 = "media/image/thumbnails/" . $article_image_media_path . "_200x200." . $article_image_media_extension;

	$article_image_path_600 = "media/image/thumbnails/" . $article_image_media_path . "_600x600." . $article_image_media_extension;

So erhält man URLs auf die 200x200 und 600x600 Artikel Thumbnails.

2. Weg: Man kopiert die encode Funktion aus engine\Shopware\Bundle\MediaBundle\Strategy\Md5Strategy.php

Mit der Funktion encode($path) kann man dann die tatsächliche Thumbnail URL ohne Redirects erzeugen (Habe ich so gemacht - Ist aber nicht trivial)

Siehe auch hier: https://stackoverflow.com/questions/48864507/how-to-get-images-in-the-product-list-view-with-an-api-call-in-shopware

Viel Spass

Jens