RcSubcategoryCmsBlock: Unterkategorien als CMS-Block
Auf der Startseite sollen die wichtigsten Produktkategorien visuell dargestellt werden — mit Bild und Titel, als Einstiegspunkte für den Kunden. In Shopware heißt das: Bild-Text-Blöcke manuell in die Erlebniswelt einbauen. Das funktioniert, bis du eine Kategorie umbenennst, eine neue anlegst oder eine alte löschst. Dann musst du die Erlebniswelt von Hand aktualisieren. RcSubcategoryCmsBlock automatisiert das mit einem CMS-Block, der Unterkategorien dynamisch auflistet.
Warum manuelle Pflege nicht skaliert
Shopware zeigt Unterkategorien standardmäßig nur in der Navigation. Wenn du auf einer Kategorieseite oder der Startseite visuell darstellen willst, welche Unterbereiche es gibt, baust du das in den Erlebniswelten manuell zusammen. Ein Bildblock pro Kategorie, Link setzen, Titel eintragen. Bei fünf Kategorien ist das machbar. Bei einem wachsenden Sortiment mit regelmäßig neuen Kategorien wird es zur Pflegehölle.
Jede neue Kategorie fehlt auf der Übersichtsseite, bis jemand daran denkt, sie in der Erlebniswelt nachzutragen. Umbenannte Kategorien zeigen den alten Namen. Deaktivierte Kategorien bleiben als toter Link stehen. Das sind keine theoretischen Probleme — das passiert in jedem Shop, der mehr als ein Dutzend Kategorien hat.
So funktioniert das Plugin
RcSubcategoryCmsBlock stellt ein neues Block-Element für die Erlebniswelten bereit. Du platzierst es auf einer beliebigen CMS-Seite, wählst eine Elternkategorie — und das Element zeigt automatisch alle aktiven Unterkategorien mit ihrem Kategoriebild an. Neue Kategorien erscheinen von selbst, deaktivierte verschwinden, umbenannte zeigen den aktuellen Namen.
Du musst die Erlebniswelt nie wieder anfassen, nur weil sich am Kategoriebaum etwas ändert. Die Unterkategorien werden bei jedem Seitenaufruf dynamisch aus der Datenbank geladen — immer aktuell, ohne Cache-Invalidierung. Auch die Reihenfolge und die Kategoriebilder werden live gezogen, sodass Änderungen in der Kategorieverwaltung sofort sichtbar sind.
Die Sortierung folgt zwei Kriterien: Zuerst werden Kategorien nach ihrer Position in der Kategorieverwaltung sortiert, dann alphabetisch. So pinnst du die wichtigsten Kategorien nach oben, der Rest ordnet sich automatisch ein. Wenn du gar keine Positionen vergibst, bekommst du eine saubere alphabetische Auflistung.
Installation
Installation per Composer in der DDEV-Umgebung:
ddev composer require ruhrcoder/rc-subcategory-cms-block
ddev exec bin/console plugin:refresh
ddev exec bin/console plugin:install --activate RcSubcategoryCmsBlock
ddev exec bin/console cache:clear
Verwendung im CMS-Editor
Nach der Installation findest du im CMS-Editor unter Erlebniswelten ein neues Block-Element: Unterkategorien. Öffne die gewünschte Erlebniswelt, füge den Block hinzu, wähle die Elternkategorie und speichere. Das Element zeigt sofort alle aktiven Unterkategorien an.
Damit die Darstellung visuell funktioniert, sollte jede Unterkategorie ein Kategoriebild haben. Das hinterlegst du in der Kategorieverwaltung unter Allgemein > Medien. Kategorien ohne Bild werden trotzdem aufgelistet — nur eben ohne visuelles Element. Das sieht nicht optimal aus, führt aber zu keinem Fehler.
Der Block lässt sich auf beliebig vielen CMS-Seiten platzieren. Du kannst auf der Startseite die Top-Level-Kategorien zeigen und auf jeder Hauptkategorie-Seite deren Unterbereiche — jeweils mit einem eigenen Block-Element und einer anderen Elternkategorie.
Praxisbeispiel: Startseite mit Kategorieübersicht
Ein Shop hat eine Hauptkategorie „Werkzeug“ mit den Unterkategorien Handwerkzeug, Elektrowerkzeug, Messtechnik und Arbeitsschutz. Auf der Startseite soll eine visuelle Übersicht zeigen, was der Shop zu bieten hat. Mit RcSubcategoryCmsBlock platzierst du ein Element in der Startseitengestaltung und wählst „Werkzeug“ als Elternkategorie.
Drei Monate später kommt die Kategorie „Gartenwerkzeug“ dazu. Ohne das Plugin müsste jemand die Startseite manuell aktualisieren — und meistens vergisst es jemand. Mit RcSubcategoryCmsBlock erscheint die neue Kategorie automatisch in der Übersicht, sobald sie in der Kategorieverwaltung angelegt und aktiviert ist.
Der gleiche Ansatz funktioniert für Hauptkategorie-Seiten, die ihre Unterbereiche darstellen sollen, oder für Landingpages mit einer automatisch aktuellen Kategorienavigation. Überall dort, wo Kategorien visuell präsentiert werden sollen und sich das Sortiment regelmäßig ändert, spart das Plugin manuelle Pflegearbeit.
Besonders bei Shops mit saisonalen Sortimenten zahlt sich das aus. Wenn im Frühjahr neue Gartenkategorien dazukommen und im Herbst Winterzubehör ergänzt wird, bleibt die Startseite immer aktuell — ohne dass jemand daran denken muss, die Erlebniswelt zu pflegen.
Auch bei Shops mit vielen Filialmitarbeitern, die Kategorien anlegen und pflegen, reduziert das Plugin Abstimmungsaufwand. Die Frage „Ist die neue Kategorie schon auf der Startseite?“ stellt sich nicht mehr — sie ist es automatisch, sobald sie in der Kategorieverwaltung aktiv ist.
Das Plugin hat bewusst keine eigene Konfigurationsseite. Die einzige Einstellung — welche Elternkategorie angezeigt wird — triffst du direkt beim Platzieren des Block-Elements. Weniger Konfiguration bedeutet weniger, was schiefgehen kann.
Update
Updates laufen über Composer:
ddev composer update ruhrcoder/rc-subcategory-cms-block
ddev exec bin/console plugin:update RcSubcategoryCmsBlock
ddev exec bin/console cache:clear
Die gezeigten Code-Beispiele dienen zur Veranschaulichung. Nutzung auf eigene Verantwortung. Mehr dazu