Warum bleiben Artikelbilder nach einem API-Images Import mit overwrite true noch im MediaManager?

Ich importiere in gewissen Abständen Artikelbilder per Shopware API.

Dabei gebe ich folgende Zeile zusätzlich an, um die Artikelbilder zu überschreiben:

 '\_\_options\_images' =\> array('replace' =\> true),

 

Das Überschreiben der Artikelbilder funktioniert im Artikel selbst.

Allerdings bleiben nach dem Durchlaufen des Scripts die Artikelbilder im MediaManager, in der Datenbank und am FTP.

In der Datenbank habe ich gesehen, dass die überschrieben Bilder in der Tabelle ArticleId, img und mediaId die Werte NULL aufweisen. 

Wie kann ich bewerkstelligen, dass die Artikelbilder einfach sauber überschrieben werden?

 

 

Ich habe mich damit zwar noch nicht auseinandergesetzt, aber das „__options_images“ kommt mir dabei falsch vor. Wenn ich mir die Dokumentationdazu anschaue würde ich sagen dass das eher so ähnlich aussehen muss:

'options' => array(
    'replace' => true
)

 

Nein, dass müsste so stimmen. Im Artikel selbst sind die Bilder nach mehreren Importen nur einmal.

 

 

Syntax sollte korrekt sein ja.

Das ist leider so das mit der override Option nur der Verweis in der Datenbank aktualisiert und überschrieben wird, das physikalische Bild jedoch am Server bleibt.

Siehe dazu auch dieser Thread bzw. eine Suche nach „__options_images“ liefert viele ähnliche Fragestellungen aber leider keine richtige Antwort dafür außer der Konsolenbefehl sw:media:cleanup (per Cronjob) der je nach Situation eine Lösung sein kann. Bei jedem Album im MediaManager kann man festlegen ob Bilder vom „cleanup“ betroffen sein sollen oder nicht.

Daher könnte also alle Alben außer das Artikelalbum (mit Produktbildern) ausnehmen (da sonst cleanup alles löscht was keinen Verweis in der DB hat wie z.B. Logos, PDF’s, etc.) und den Cronjob laufen lassen.

Find ich persönlich sehr schwach von Shopware das es hier keine vernünftige Möglichkeit gibt Bilder über die API z.B. physikalisch zu löschen.

Hallo Leute,

ich habe mal ein Ähnliches Problem gehabt und habe dann zuerst ausgelesen welche Bilder dem Artikel zugeordnet sind und diese dann über die Media API gelöscht (https://developers.shopware.com/developers-guide/rest-api/api-resource-media/#delete).

Ich hatte in dem konkreten Fall aber auch Glück das sicher feststand das dass Bild nur dort verwendet wurde…

Hallo,

vielleicht hilft der Hinweis dem einen oder anderen noch, siehe https://developers.shopware.com/developers-guide/rest-api/api-resource-media/:

As of Shopware 5.3, you can replace a media file by providing a dataURI or link to fetch a resource from.

PUT http://my-shop-url/api/media/{id}

Replace the id with the specific media id.

Field | Type | Description

file (required) | string | Path / URL / dataURI