Das Problem: Bildertausch führt zu Duplikaten oder Altlasten

Wer JTL-Wawi in Kombination mit Shopware 6 betreibt, kennt folgendes Szenario: Ein Artikelbild muss in der Wawi ausgetauscht werden. Man löscht oder ersetzt das Bild im Artikelstamm und führt einen Abgleich durch. Doch im Shopware-Mediapool erscheint das neue Bild plötzlich zusätzlich, oder das alte Bild verbleibt als „Geisterbild“ ohne Artikelzuordnung auf dem Server.

Der Grund liegt im Media-Management von Shopware 6: Mediendateien werden über eindeutige UUIDs verwaltet. Wird bei einem Tausch in der Wawi nicht in der richtigen Reihenfolge abgeglichen, verliert der JTL-Connector die Mappings und legt eine neue UUID an, statt die bestehende Datei zu ersetzen.

Wichtig vorab: Sicherung erstellen!

Bevor Sie CLI-Befehle oder SQL-Queries auf Ihrer Live-Datenbank ausführen, erstellen Sie bitte zwingend ein vollständiges Datenbank-Backup sowie eine Sicherung Ihres Medienverzeichnisses (public/media/). So können Sie den Ursprungszustand bei Bedarf jederzeit wiederherstellen.

Schritt 1: Ungenutzte Server-Dateien & Medien-Datenbank bereinigen

Shopware 6 bietet Konsolenbefehle (CLI), um verwaiste Mediendateien und nicht mehr referenzierte Einträge aus der Datenbank sowie aus dem Dateisystem zu entfernen. Der offizielle Befehl lautet media:delete-unused:

# 1. In das Shopware-Hauptverzeichnis wechseln
cd /pfad/zu/ihrem/shopware/root

# 2. Ungenutzte Medien aus Datenbank & Dateisystem löschen (mit 'y' bestätigen)
php bin/console media:delete-unused

# 3. Shopware-Cache leeren
php bin/console cache:clear

Schritt 2: Das Produkt-Mapping zurücksetzen (SQL & Wawi-Neuübertragung)

Möchten Sie den Bildbestand für Ihren gesamten Katalog einmal komplett frisch aufbauen, sollten Sie niemals pauschal die gesamte Datenbank leeren, da sonst Kunden- und Bestellzuordnungen verloren gehen. Zielgerichtet setzen Sie die Produkt-Medien-Verknüpfungen zurück:

-- 1. Hauptbild-Zuordnungen an allen Produkten zurücksetzen
UPDATE product SET product_media_id = NULL;

-- 2. Alle bestehenden Produkt-Medien-Verknüpfungen leeren
DELETE FROM product_media;

Hinweis zu Connector-Tabellen: Sollten Sie ein lokales Connector-Plugin verwenden, das eigene Mapping-Tabellen besitzt, prüfen Sie vorab per SQL-Befehl SHOW TABLES LIKE '%jtl%'; die genauen Tabellennamen (z. B. jtl_connector_link). Bei modernen SaaS-Connectoren entfällt dieser Schritt.

Stoßen Sie direkt im Anschluss in JTL-Wawi bei den gewünschten Artikeln die Option „Bilder neu übertragen“ (oder einen Komplettabgleich) an. Der Connector überträgt die Bilder sauber neu und baut die Verknüpfungen fehlerfrei auf.

Empfohlenes Vorgehen bei künftigen Bildänderungen

Halten Sie beim Ersetzen von Bildern in JTL-Wawi stets diese Reihenfolge ein:

  1. Abgleich durchführen: Der Connector entfernt das Bild kontrolliert aus Shopware.
  2. Neues Bild hochladen und erneut abgleichen.

Ergebnis prüfen

  1. Stichproben in Shopware 6 Admin (Inhalte > Medien sowie Kataloge > Produkte) machen.
  2. Artikel im Shopware-Frontend prüfen: Werden alle Bilder korrekt geladen und treten keine Duplikate mehr auf?