Zum Inhalt springen
Stone & Water
Doku · 05 Kategorien-Verwaltung

Kategorien-Verwaltung · Baum, SEO, Bilder & KI - alles in einem Modal

Den kompletten Kategoriebaum pflegen, ohne den Shopware-Standard zu verlassen: anlegen, verschieben, übersetzen, SEO-URLs setzen, Bilder zuweisen, Produkte zuordnen, KI-Texte generieren und den ganzen Baum als CSV oder JSON sichern - pro Verkaufskanal und Sprache.

Öffnen & Aufbau

Der Button „Kategorien" (links neben dem Feed-Generator in der Produktliste) öffnet das Modal. Die Verkaufskanal-/Sprach-Auswahl nutzt den Channel-Bar im Stammdaten-Stil (mit Icons und Feld-Rahmen). Pro Kanal wird der Baum ab der Navigations-Wurzel aufgebaut, die Einstiegskategorie steht oben. Geladen wird direkt über das category-Repository - kein separater API-Endpoint, keine eigene Seite. Abgesichert über die eigene Berechtigung „Kategorien verwalten".

Selbstheilung: Beim Öffnen werden kaputte Kategorien (z.B. ungültige Sortier-Referenzen) automatisch repariert, damit das Listing nicht crasht.

Anlegen, bearbeiten, verschieben

  • Neue Kategorie über den Button in der Leiste - schnell eine Wurzelkategorie im gewählten Kanal, oder als Unterkategorie. Neue Kategorien werden in der Systemsprache angelegt.
  • Umbenennen, aktivieren/deaktivieren, löschen direkt im Baum bzw. Detailbereich. Die Lösch-Bestätigung ist ein Dialog im PIM-CI-Stil (kein Browser-Confirm).
  • Drag & Drop: Kategorien unter einen anderen Übergeordneten ziehen.
  • Duplizieren im Detail-Kopf - dupliziert die Kategorie inklusive aller Unterkategorien (Subtree) als Geschwister mit Namenszusatz „(Kopie)".

Felder je Sprache, Typ & Layout

Name, Beschreibung und SEO-Felder werden pro Sprache gepflegt; ein Sprachwechsel lädt Baum und Detail neu, sodass übersetzte Felder erscheinen. Die Sprachauswahl zeigt dabei nur die dem aktiven Verkaufskanal zugewiesenen Sprachen - keine irrelevanten Sprachen, die im Kanal gar nicht ausgespielt werden. Die Beschreibung ist ein WYSIWYG-Editor (sw-text-editor) mit sichtbarer HTML-Formatierung. Dazu:

  • Typ & übergeordnete Kategorie setzen, externer Link bei Link-Kategorien
  • Layout (CMS-Erlebniswelt) zuweisen, inkl. Button „Neue Erlebniswelt anlegen" (öffnet den CMS-Editor in neuem Tab)
  • Schalter „In Hauptnavigation anzeigen", Zusatzfelder-Abschnitt
  • Standard-Sortierung (Shopware product_sorting) - gespeichert über die Kategorie-Slot-Konfiguration; „Standard (vererbt)" entfernt den Override wieder

Kategoriebild & Alt-Text

In den Stammdaten (direkt über „In Navigation anzeigen") sitzt das Kategoriebild (Cover) mit Vorschau: aus der Mediathek wählen oder direkt hochladen, entfernen. Gespeichert als category.mediaId, Uploads landen im Kategorie-Medienordner. Ein Alt-Text-Feld (sprachabhängig, am Mediendatensatz gespeichert) verbessert Barrierefreiheit und SEO.

SEO-URL (Slug) pro Kanal & Sprache

Im Bereich „Beschreibung & SEO" lässt sich je Verkaufskanal und Sprache ein SEO-URL-Slug setzen. Beim Öffnen wird die aktuelle Canonical-URL geladen, beim Speichern über einen Backend-Endpoint geschrieben:

  • Die alte URL bleibt als 301-Weiterleitung erhalten (alter Eintrag wird non-canonical), die neue wird Canonical und als manuell markiert - Shopware überschreibt sie beim Reindex nicht.
  • Der Slug wird zusätzlich zuverlässig im Zusatzfeld staw_pim_seo_url der Kategorie gespeichert (über den normalen Speichern-Vorgang).
  • Leeres Feld = Override entfernen, Shopware generiert wieder automatisch.
Hinweis: Headless-Verkaufskanäle haben keine Storefront-URLs. Schlägt das Schreiben der echten Storefront-URL fehl, erscheint eine sichtbare Warnung mit Ursache.

Produktzuordnung - Stream oder Preset

In der Sektion „Produkte" wird gesteuert, welche Produkte in der Kategorie liegen - in zwei klar getrennten Optionen:

  • Dynamische Produktgruppe (Stream): eine Shopware-Produktgruppe (product_stream) auswählen; gespeichert werden productAssignmentType=product_stream und die productStreamId.
  • Preset (StawPim-Filter): ein StawPim-Filter (staw_pim_filter) mit Live-Trefferanzahl. Beim Speichern im Preset-Modus werden die aufgelösten Produkte der Kategorie fest zugewiesen, sodass sie im Frontend erscheinen. Schutz: 0 Treffer leert die Kategorie nicht.

Die Preset-Anzeige zeigt Hauptartikel und Varianten getrennt (wie im Listing). „Kein Preset" entfernt die Zuordnung wieder.

Vollständigkeits-Score

Jede Kategorie im Baum zeigt einen Prozent-Score (grün/gelb/rot) basierend auf gefüllter Beschreibung, Meta-Titel, Meta-Description und Kategoriebild. Im Detailbereich wird der Score live neben dem Titel angezeigt und aktualisiert sich beim Bearbeiten. Ein Filter nach Vollständigkeit neben der Suche zeigt gezielt unvollständige Kategorien.

KI-Texte & Übersetzung

Ein Button „KI-Texte" generiert Beschreibung, Meta-Title, Meta-Description und Keywords - über alle vier KI-Anbieter, mit Tonalitätswahl, Ausgabe in der aktiven Sprache und freiem Feld „Weitere Anweisungen an die KI". Schalter „Unterkategorien einbeziehen" (ganzer Unterbaum) und „Bestehende Texte überschreiben".

  • „Übersetzen" steht zusätzlich einzeln neben „KI-Texte" - Übersetzung der Felder von Quell- in Zielsprache per DeepL oder KI-Anbieter.
  • Bulk: Mit „Alle auswählen" + Bulk-Button werden KI-Texte oder Übersetzungen für alle ausgewählten Kategorien auf einmal erzeugt. KI-Fehler zeigen die echte Ursache (curl-Fehler + Upstream-Status) statt nur „Proxy HTTP 502".

Bulk-Aktionen im Baum

Kategorien lassen sich im Baum per Checkbox mehrfach auswählen. Eine Bulk-Leiste zeigt die Anzahl und bietet „Aktiv/Inaktiv setzen" sowie „In Nav anzeigen/ausblenden". Vor jeder Aktion wird ein benannter Snapshot des vorherigen Zustands erstellt; ein Button „Verlauf" listet Snapshots (wiederherstellbar) samt Audit-Log.

Import / Export

Über den Button „Import/Export" lässt sich der komplette Kategoriebaum des gewählten Verkaufskanals verwalten:

  • CSV-Export inklusive Zusatzfeldern als eigene cf.-Spalten. Mehrsprachig: je übersetzbarem Feld eine Spalte pro Shop-Sprache im Format feld.locale (z.B. name.de-DE, description.en-GB).
  • CSV-Import löst die übergeordnete Kategorie über die Spalte parentPath (Pfad mit „ > ") auf, legt fehlende Kategorien an und aktualisiert bestehende (gleicher Pfad + Name). Mit Vorschau und Validierung (Name/Typ/Parent).
  • Baum als JSON sichern - vollständiges Backup inkl. aller Sprachen, Zusatzfelder und IDs, ideal vor größeren Umbauten. Wiederherstellen = erneut importieren.
Sicherheit beim Import: Vor dem Import lässt sich eine CSV-Sicherung herunterladen. Die Identität (parentPath + name) bleibt beim mehrsprachigen Import unverändert - Pro-Sprache-Spalten schreiben nur die jeweilige Übersetzung.

Aus Standardsprache übernehmen

Legt ein Verkaufskanal eine eigene Sprache an, sind dort zunächst keine eigenen Kategorietexte hinterlegt. Im Shop greifen die geerbten Inhalte, eine gezielte Pflege oder KI-Überarbeitung je Kanal ist ohne Ausgangstext aber nicht möglich. Die Sammelaktion „Aus Standardsprache übernehmen" überträgt Name, Beschreibung, Meta-Titel, Meta-Description und Keywords aus der Standardsprache in die aktuell gewählte Sprache.

  • Eigener Dialog: Vor dem Start nennt er die Anzahl der Kategorien, die Zielsprache und die zu übertragenden Felder und weist darauf hin, dass vorhandene eigene Texte übersprungen werden.
  • Fortschritt sichtbar: Während der Übernahme läuft ein Fortschrittsbalken; danach schließt sich der Dialog und die Ansicht wird aktualisiert.
  • Nichts wird überschrieben: Bereits vorhandene eigene Texte bleiben unangetastet. Die Meldung nennt am Ende, wie viele Kategorien übernommen und wie viele übersprungen wurden.
  • Die Schaltfläche erscheint nur, wenn die gewählte Sprache von der Standardsprache abweicht.

Sprachen im Baum - was der Prozentwert zeigt

  • Nur eigene Texte zählen: Der Vollständigkeits-Score je Kategorie rechnet ausschließlich mit den eigenen Texten der gewählten Sprache - passend zum Bearbeitungsformular daneben, in dem ebenfalls je Sprache gepflegt wird. Geerbte Inhalte fließen nicht ein.
  • Baum folgt der Kanalsprache: Beim Öffnen wird der Baum in der Sprache des zuerst gewählten Verkaufskanals aufgebaut, sodass Namen und Prozentwerte links zur Sprachanzeige oben passen.
  • Sofort sichtbare Änderungen: Nach Sammelaktionen und nach einem Import wird neben dem Baum auch die Bearbeitungsansicht rechts aktualisiert.

Weiter geht's

Weiter zu CSV-Import & Export, um Produktdaten per Datei ein- und auszulesen.