Anbindung Shopware6 an MAM

Hallo liebe Freunde,

ich möchte meinen Shopware Shop an ein MAM (MediaAssetManagement) System anschließen um so zu den Produkten hochauflösende Bilder und Videos nachzuladen.

Das soll so funktionieren:

Ich spiele in den Shop die Produktstammdaten ein. Lege also alle Produkte mit Kategorien und Preisen, Beschreibung und einem Bild an.

Auf der Produktdetailseite lädt dann die Storefront aus dem Kern die Produktdaten.

Dann soll eine zweite Abfrage an das MAM stattfinden. Dazu wird ein Link: www.mam.de/api/?sku=2124421421 aufgerufen. Dieser Link gibt mir dann ein JSON mit Produktdaten zurück.
Dieses JSON will ich dann auflösen und daraus TWIG Variablen erzeugen die ich im Template an der ensprechenden Stelle plazieren kann.

Hat jemand von euch ne Idee, wie ich das realisiert bekomme?

Vielen Dank schon einmal für eure Mühen.

 

 

 

 

 

Mach bitte den Aufruf nicht Synchron beim Laden der Produktseite oder sorge zumindest dafür, dass die Daten im cache landen (z.B. Customfields).

Du brauchst einen Subscriber, ich glaube das Event lautet: ProductPageLoadedEvent::class. Dort kannst du eine Page Extension erstellen und im Twig Template nutzen.

Alternativ kannst du bestimmt auch eine ProductEntityLoadedEvent ansteuern und packst die Infos in die Customfields des Produktes.

Gibt da viele Lösungsansätze :slight_smile:

1 „Gefällt mir“

Schau dir mal das Plugin https://github.com/FriendsOfShopware/FroshPlatformThumbnailProcessor, Das geht in eine ähnliche Richtung

Erstmal vielen Dank Moorleiche.

Das mit dem Subcriber auf ProductPageLoaded habe ich hin bekommen. Der Cache läuft auch und cacht meine Daten.

Auch laufen die Pluginconfigurationen und die Anbindung ans MAM.

Ich habe jetzt also in meinem Subscriber meine Thumb und Original URLs.

Nun muss ich diese nur in twig Variablen packen und:

{% set mediaItems = page.product.media.media %}

hier ein neuen Array übergeben.

Habt ihr ne Idee wie dieser Array aussehen muss?

Der Weg ist glaube ich, dass ich dort eine Objektstruktur aus

MediaCollection, MediaEntity… etc. übergebe.

Da ich die Objekte aber über den Konstruktor erstelle muss ich die fehlenden Felder selber füllen.

Ich habe das jetzt soweit, dass die Bildplatzhalter angezeigt werden. Die Inhalte aber nicht.

 

Woher finde ich raus, welche Felder ich dort im MediaEntity füllen muss?