Shopware 6: Produkte fehlen im Shop? Indexer neu aufbauen
Shopware 6 hält für Listing, Suche, Kategorien und Preise eigene Indizes vor. Nach Importen, Plugin-Wechseln oder abgebrochenen Hintergrundjobs stimmen die nicht mehr – dann fehlen Produkte, obwohl sie aktiv sind. Ein Neuaufbau löst das meistens.
Im Admin
Einstellungen → System → Caches & Indizes → „Indizes aktualisieren“. Shopware stellt die Aufgaben in die Message Queue; sie laufen im Hintergrund. Bei großen Katalogen kann das dauern – das Admin zeigt dafür keinen Fortschritt.
Per Konsole
bin/console dal:refresh:index
Baut alle Indizes neu auf und zeigt den Fortschritt. Nur einzelne Bereiche, z. B. Produkte:
bin/console dal:refresh:index --only=product.indexer
Die verfügbaren Namen listet bin/console dal:refresh:index --help beziehungsweise der Befehl selbst beim Start.
Mit Elasticsearch oder OpenSearch
bin/console es:index bin/console es:index:cleanup
Wenn Suche und Listing über Elasticsearch laufen, muss zusätzlich dieser Index neu gebaut werden. Anschließend alte Indizes aufräumen, sonst füllt sich die Platte.
Wenn das Produkt trotzdem fehlt
- Sichtbarkeit: Ist das Produkt dem Verkaufskanal zugewiesen (Reiter „Sichtbarkeit“)?
- Kategorie: Ist die Kategorie aktiv und dem Kanal zugeordnet?
- Lager: „Ausverkauft ausblenden“ aktiv und Bestand 0?
- Regeln: Eine Dynamische Produktgruppe mit falscher Bedingung filtert es raus.
- Queue: Läuft der Message-Consumer überhaupt? Ohne ihn werden Admin-Aufträge nie abgearbeitet.
Hängt der Indexer regelmäßig, liegt es fast immer an der Message Queue oder am Hosting – beides prüfe ich beim Hosting-Check und in der Wartung.