Kategorien & Canonical
Der Kategorien-Tab haelt einen lokalen Cache des Shopware-Kategorienbaums. newmeta nutzt den Cache, um:
- Das Kategorie-Dropdown in den Widgets
sw6ProductListingundsw6CategoryTeaserzu befuellen. - Eine Canonical-URL pro Shopware-Produkt zu berechnen — auch wenn das Produkt in mehreren Kategorien liegt.
- Anzuzeigen, welche Kategorien bereits eine dedizierte CMS-Seite haben (Direkt / Geerbt / Keine).
Tab oeffnen
Klicke VOD / Shop → Shopware 6 → Kategorien.

Kategorienbaum synchronisieren
Klicke Jetzt synchronisieren. Die CMS liest den aktuellen Shopware-Navigationsbaum und schreibt ihn nach sw6_category_cache.
- Der Sync laeuft automatisch alle 6 Stunden (Scheduled Task
sw6_sync_categories.php). - Manueller Sync wirkt sofort.
- Der Zeitpunkt des letzten Syncs steht neben dem Button.
Aufklappen / Zuklappen
- Alles aufklappen / Alles zuklappen — ganzer Baum.
- Chevron pro Zeile — einzelner Zweig.
Was jede Zeile zeigt
| Element | Bedeutung |
|---|---|
| Ordner-/Datei-Icon | Kategorie mit / ohne Kinder. |
| Kategoriename | Aus sw6_category_cache.name fuer die aktuelle Sprache. |
(N) | Anzahl direkter Kinder. |
| versteckt / inaktiv Badge | Kategorie ist in der Navigation versteckt oder in Shopware inaktiv. |
| CMS-Status-Icon + Label | Direkt, Geerbt oder Keine (siehe unten). |
| Canonical-Toggle | Macht diese Kategorie zur Canonical-Wurzel fuer ihre Produkte. |
| Kategorie-UUID | Die Shopware-Kategorie-ID. |
CMS-Status — Direkt / Geerbt / Keine
Nicht jede Shopware-Kategorie hat eine passende CMS-Seite. Der CMS-Status beantwortet "auf welche CMS-Seite zeigt diese Kategorie?":
| Status | Bedeutung |
|---|---|
| Direkt | Es gibt eine CMS-Seite mit sw6ProductListing- oder sw6CategoryTeaser-Widget, gefiltert auf diese Kategorie. |
| Geerbt | Keine eigene CMS-Seite, aber die Elternkategorie hat eine — das Kind erbt die URL als Basis. |
| Keine | Keine CMS-Seite, auch nicht beim Elternteil. Produkte dieser Kategorie fallen auf eine generische Detail-URL zurueck. |
Kategorie-Landingpages bauen
Kategorien mit Keine-Status sind im Frontend unsichtbar, solange kein sw6ProductListing oder sw6CategoryTeaser darauf zeigt. Pro Hauptkategorie eine CMS-Seite bauen, damit keine toten Zweige entstehen.
Canonical-Toggle
Shopware-Produkte koennen zu vielen Kategorien gehoeren. Der Canonical-Toggle sagt newmeta, welche Kategorie fuer die Canonical-URL des Produkts verwendet wird.
- Canonical (Indigo-Toggle): Produkte nutzen diese Kategorie als Canonical-Wurzel, wenn sie die tiefste canonical-markierte Kategorie ist, zu der das Produkt gehoert.
- Nicht canonical (graues Toggle): Diese Kategorie zaehlt nicht bei der Canonical-Berechnung.
Ein Klick kippt den Toggle. Die Aenderung:
- Schreibt
sw6_category_cache.canonical_enabled. - Invalidiert den Produkt-Canonical-Cache fuer betroffene Produkte.
- Startet eine asynchrone Neuberechnung (Anzahl betroffener Produkte erscheint als Toast).
Das Badge manuell erscheint, wenn der Wert durch einen Nutzer gesetzt wurde — automatische Defaults zeigen das Badge nicht.
Nur eine Canonical pro Produktfamilie
Zu viele Canonical-Kategorien fuehren zu widerspruechlichen Canonicals. Faustregel: Nur die oberste Navigations-Ebene jeder Produktfamilie markieren. Tiefe Unterkategorien aus lassen.
Baum ist leer
Zeigt der Baum "Keine Kategorien im Cache.", ist eines der folgenden der Fall:
- Verbindung-Tab ist noch nicht gruen.
- Root Kategorie ID ist leer oder falsch — der Sync findet unter dieser Wurzel nichts.
- Der Sync lief noch nie.
Die ersten beiden Punkte fixen, dann Jetzt synchronisieren.
Haeufige Fehler
Dubletten im Baum
Erscheint dieselbe Kategorie zweimal, passt die aktuelle CMS-Admin-Sprache nicht zu einem konfigurierten Sprach-Mapping. Der On-Page-Code filtert den Baum auf eine Sprache (WHERE language_short = 'current'); Admin-UI-Sprache wechseln und Tab neu oeffnen.
Kategoriename in Englisch trotz DE-Admin
Der Baum liest Namen aus sw6_category_cache, gefiltert auf die aktuelle Admin-Sprache. Ist der Name falsch, nach Pruefen des Sprach-Mappings erneut synchronisieren.
Canonical-Toggle zeigt im Frontend keine Wirkung
Die Canonical wird vom Produkt-Canonical-Cache gelesen. Nach dem Umschalten den naechsten Produkt-Cache-Sync abwarten (oder auf Produkt-Cache manuell ausloesen), damit das <link rel="canonical"> im Frontend aktualisiert wird.
Siehe auch
- Produkt-Cache — dort werden Canonical-URLs materialisiert.
- Shopware 6 Setup — die Root-Kategorie-ID steht im Verbindungs-Tab.
- Fehlerbehebung