Features
Alles was du brauchst, in einem Plugin.
Ungenutzte Medien im Dashboard sehen – kein CLI-Zugriff oder Serverkenntnis nötig
Asynchroner Hintergrund-Scan – kein Timeout auch bei großen Mediatheken
Scan-Cache mit 4-Stunden-Gültigkeit: Paginierung und Sortierung ohne erneuten Scan
Sicher löschen: Neuvalidierung vor dem Löschen schützt aktiv genutzte Dateien
Massenauswahl mit 'Alle auswählen' und Filter nach Typ, Größe und Alter
ACL-Rechte: separate Lese- und Löschberechtigungen für granulares Rollen-Management
Überblick
Die Shopware-Mediathek sammelt mit der Zeit jede Menge Dateien an, die niemand mehr braucht – Produktbilder gelöschter Artikel, Testfotos aus der Einrichtungsphase, verwaiste Dokumente. Wer das bereinigen wollte, musste bisher auf den CLI-Befehl media:delete-unused zurückgreifen oder jede Datei manuell prüfen.
Der Mediathek-Aufräumer bringt diese Funktion direkt ins Shopware-Admin: ein übersichtliches Dashboard, das ungenutzte Medien listet, filtert und mit wenigen Klicks sicher löscht – ohne SSH-Zugriff, ohne Serverkenntnis. Seit Version 1.1 / 2.1 läuft der Scan im Hintergrund und schont dabei auch sehr große Mediatheken vor Timeouts.
So funktioniert’s
Nach der Installation erreichst du das Dashboard unter Inhalte → Medien aufräumen. Ein Klick auf Scan starten löst die Erkennung aus – der Scan läuft sofort im Hintergrund, während das Dashboard den Fortschritt anzeigt. Bei größeren Mediatheken kann das einige Sekunden dauern; die Seite aktualisiert sich automatisch, sobald der Scan abgeschlossen ist.
Die Ergebnisse bleiben 4 Stunden im Cache. Du kannst also blättern, filtern und sortieren, ohne dass jede Navigation einen neuen Scan auslöst. Gelöschte Dateien verschwinden sofort aus der Liste.
Du kannst einzelne Dateien per Checkbox auswählen oder mit Alle auswählen auch seitenübergreifend die gesamte Liste markieren. Bevor irgendetwas gelöscht wird, erscheint ein Bestätigungsdialog. Unmittelbar vor dem Löschen prüft das Plugin außerdem, ob eine Datei inzwischen doch wieder in Verwendung ist – z. B. weil eine Kollegin sie zwischenzeitlich einem Produkt zugeordnet hat. Solche Dateien werden automatisch übersprungen und der Scan-Cache entsprechend aktualisiert.
Highlights
Asynchroner Scan ohne Timeout
Der Scan-Request kehrt sofort zurück. Das eigentliche Sammeln der ungenutzten IDs läuft als Hintergrundjob über den Symfony Messenger und blockiert keinen HTTP-Request. Das verhindert Timeouts auch bei großen Mediatheken. Fällt der Hintergrundjob aus, zeigt das Dashboard einen Fehlerstatus mit Retry-Button. Sollte der Messenger nicht für asynchrone Verarbeitung konfiguriert sein, läuft der Scan synchron wie bisher – ohne stille Fehler.
Filtern und sortieren
Drei Filteroptionen helfen dabei, die Bereinigung gezielt anzugehen:
- Dateityp – Bild, Video, Dokument oder Sonstige
- Mindestgröße – nur Dateien ab einem bestimmten MB-Wert anzeigen
- Upload-Alter – nur Dateien, die älter als eine bestimmte Anzahl Tage sind
Sortiert werden kann nach Dateiname, Dateigröße oder Datum – ideal, um zuerst die größten oder ältesten Dateien zu entfernen.
Feingranulare Benutzerrechte
Das Plugin legt zwei separate ACL-Rechte an: momo_media_cleanup:read für den Lesezugriff auf das Dashboard und momo_media_cleanup:delete für die eigentliche Löschfunktion. Damit lässt sich z. B. eine Rolle einrichten, die Medien einsehen, aber nicht löschen darf.
Voraussetzungen
- Shopware 6.6 oder höher
- PHP 8.2+
Jetzt loslegen
Installiere das Plugin direkt aus dem Shopware Store und starte in wenigen Minuten.