Artikelupload über API erzeugt Bildmüll

Hallo,

wir spielen täglich unsere Artikeldaten via API-Resource ein. Da sich auch immer mal die Bilder der Artikel ändern können, schicken wir folgendes Kennzeichen mit. Außerdem vermeiden wir so, dass die Bilder sich verdoppeln:

 "\_\_options\_images" =\> ["replace" =\> true],

so hat jeder Artikel immer nur die aktuell importierten Bilder.

blöderweise bleiben die Alten natürlich im MediaManager liegen… gibt es eine Möglichkeit, diese löschen zu lassen? Evtl. ein Cronjob der nicht gebrauchte Bilder löscht?

 

viele Grüße

Da sich auch immer mal die Bilder der Artikel ändern können

Nur so eine Idee: Die Bilder zum jeweiligen Artikel vorher löschen und dann neu einspielen. Eventuell eine zusätzlich Funktion zur API schreiben. 

Das kann doch aber nicht sein, dass sowas im Standard nicht funktioniert. Was machen denn die Leute, die ihre Warenwirtschaft mit mehreren tausend Artikeln täglich importieren? Die erzeugen auf Dauer ja gigabyteweise Müll…

ich glaube kaum, dass wir die ersten und einzigen sind, die dieses Problem haben.

Nicht wirklich, die haben entweder eine ordentliche Schnittstelle die das macht oder über ein Tool welches XLS,XLSX,CSV,TXT,MDB,… Dateien zu einem Shopware Shop abgleichen kann, wenn die WaWi das nicht kann.

Ich stimme FloC3 da aber absolut zu, wenn Shopware schon einen Fleck „replace“ anbietet, dann sollte man auch erwarten dürfen, dass vorher die Bilder aus dem System gecleard werden.

 

Zum eigentlichen Problem: Würde auch zum cronjob tendieren, pass aber bloß auf, dass du dir nicht Bilder mit löschst, welche von Navi, Themenwelten oder Kategorien genutzt werden…

Gibt es hierzu andere Meinungen?

ich muss wohl einen eigenen Job schreiben, der das aufräumt… Kann ich über den MediaService oder ähnliches Bilder zu bestimmten Artikeln herausfinden und löschen? Wenn ja, wie denn?

push

Du kannst mit php bin/console sw:media:cleanup Bilder die nirgendswo referenziert sind in den Papierkorb verschieben und oder direkt mit „php bin/console sw:media:cleanup --delete“ diese Löschen.

Hierbei muss drauf geachtet werden, dass Plugins die Bilder referenzieren auch „ordentlich“ programmiert sind und dieses Feature supporten. Sonst laden deren Bilder auch im Papierkorb.

was meinst du denn mit „referenziert“ @Shyim‍ ?

unser Plugin nimmt URL-Bilder und erzeugt via 

 Manager::getResource("article") und updateByNumber

Artikel mit Bilder.

Wenn ein Plugin ein eigene Tabelle hat wo er auf Bilder mappt weil es irgendwo in seinen Einstellungen so auswählbar ist. Denkt Shopware ist nirgendswo refernziert kann gelöscht werden. Plugins können solche Orte in Shopware registrieren, dann würde der Fall nicht mehr auftreten.

@Shyim schrieb:

Wenn ein Plugin ein eigene Tabelle hat wo er auf Bilder mappt weil es irgendwo in seinen Einstellungen so auswählbar ist. Denkt Shopware ist nirgendswo refernziert kann gelöscht werden. Plugins können solche Orte in Shopware registrieren, dann würde der Fall nicht mehr auftreten.

Wie würde das gehen? 

@BestShopPossible‍ Shopware 5 upgrade guide

2 Likes

@Shyim‍ unser Importmodul hat keine eigenen Tabellen oder Speicherorte. Es läuft alles in den Standard hinein.

Gibts denn eine Möglichkeit, diese ungenutzten Bilder rauszufinden und loszuwerden?