$wsCategories-Modul laden Sie Kategoriedaten und zeigen sie im Frontend an - einzelne Kategorien, ihre Unterkategorien, den Kategoriepfad (Breadcrumb) und die enthaltenen Produkte.
Auf dieser Seite geht es um das Laden und Anzeigen von Kategoriedaten. Produktdetails sind in der Produkt-Referenz beschrieben; die Einrichtung der Kategorie-Navigation erfolgt im Admin-Interface (siehe Template).
Grundkonzept
$wsCategories ist ein Lade-Modul: Es stellt nur Methoden zum Laden von Kategorien bereit und hat selbst keine „aktuelle Kategorie”. Ein Aufruf wie $wsCategories.id existiert daher nicht.
Sie arbeiten stattdessen immer mit einer Category-Map, also einem Objekt mit den Eigenschaften einer Kategorie. Diese Map erhalten Sie auf zwei Wegen:
- Aus dem aktuellen Seitenkontext - auf einer Kategorieseite liegt die aktuelle Kategorie unter
$wsViews.current.info.category: - Aus einer Lade-Methode - z. B. eine bestimmte Kategorie über ihre ID oder die Unterkategorien einer Kategorie:
$category.name). Der Variablenname ist frei wählbar, auf dieser Seite heißt er durchgängig $category.
Modulübersicht
Beispiel / Ausschnitt über$wsCategories
"ƒ()" kennzeichnet eine Funktion.
Methoden in der Übersicht
| Methode | Rückgabe-Typ | Beschreibung |
|---|---|---|
loadCategory() | map | Lädt eine einzelne Kategorie anhand ihrer ID. |
loadChildren() | array | Lädt die direkten Unterkategorien einer Kategorie. |
loadPath() | array | Lädt den Kategoriepfad (Breadcrumb) von der Wurzel bis zur Kategorie. |
loadProducts() | array | Lädt die Produkte einer Kategorie. |
loadCategoryMemberships() | array | Lädt alle Kategorien, in denen ein Produkt enthalten ist. |
loadCategoryMembershipPaths() | array | Lädt die vollständigen Kategoriepfade für alle Kategorien eines Produkts. |
Template
Im Standard erfolgt die Anzeige von Kategorien über das Templatecategory.htm (im Verzeichnisbaum unter templates/views/category.htm).
Kategoriedaten lassen sich aber auch flexibel anderswo nutzen, beispielsweise in Blogbeiträgen oder im Warenkorb. Dafür muss das jeweilige Template bereits im Verzeichnis views angelegt worden sein.
Eigenschaften einer Kategorie
Die folgenden Eigenschaften stehen in jeder Category-Map zur Verfügung, unabhängig davon, ob Sie sie aus dem Seitenkontext oder mithilfe einer Lade-Methode erhalten haben.| Eigenschaft | Rückgabe-Typ | Beschreibung |
|---|---|---|
id | string | Eindeutige, vom Shop vergebene ID der Kategorie. |
name | string | Name der Kategorie. |
descr | string | Beschreibung der Kategorie. |
active | string | Sichtbarkeitsstatus: "always" (immer sichtbar), "test" (nur Testmodus), "never" (nicht sichtbar). |
hidden | bool | Ob die Kategorie versteckt ist (z. B. nicht in der Navigation angezeigt wird). |
productsCount | int | Anzahl der Produkte in der Kategorie. |
custom | map | Benutzerdefinierte (freie) Felder der Kategorie, z. B. Bilder oder SEO-Texte. |
timestampCreatedAt | datetime | Erstellungszeitpunkt der Kategorie. |
timestampUpdatedAt | datetime | Zeitpunkt der letzten Änderung. |
productAssignmentType | string | Art der Produktzuordnung, z. B. "manual" (manuelle Zuordnung). |
productRules | string | Regeln für die automatische Produktzuordnung; leer bei manueller Zuordnung. |
name und descr
Name und Beschreibung sind die häufigsten Anzeigewerte. Mehr zur Konfiguration dieser Felder in der Kategorie-Konfiguration.active
Werten Sieactive aus, um nur sichtbare Kategorien anzuzeigen, beispielsweise in einer Navigation.
hidden
hidden blendet eine Kategorie gezielt aus der Navigation aus, ohne sie zu deaktivieren. Prüfen Sie es, bevor Sie einen Navigationseintrag erzeugen.
custom
custom enthält die freien Felder der Kategorie. Anders als beim Produkt liegt das Kategoriebild unter custom.image.category (mit der WebP-Variante custom.image.categoryWebp); ein separates Navigationsbild liegt unter custom.imageNavigation.category. Prüfen Sie vor der Ausgabe, ob das gewünschte Feld vorhanden ist.
Neben den Bildern enthält
custom unter anderem auch SEO-Felder (metaTitle, metaDescription, seoName) und Steuerungsfelder (robotsNoIndex, robotsNoFollow, alternativeTemplate).timestampCreatedAt und timestampUpdatedAt
Beide liefern einen Zeitstempel als ISO-8601-String (UTC, z. B.2026-05-07T13:09:08.000Z).
Methoden
$wsCategories.loadCategory()
Lädt eine einzelne Kategorie anhand ihrer ID. Verwenden Sie die Methode, um gezielt eine bestimmte Kategorie anzuzeigen - auch außerhalb einer Kategorieseite, beispielsweise auf der Startseite oder in einem Blogbeitrag. Signatur$wsCategories.loadCategory(categoryId)
Rückgabemap – Category-Map mit allen Kategorie-Eigenschaften.
Parameter
| Name | Typ | Pflicht | Beschreibung |
|---|---|---|---|
categoryId | string | ja | ID der zu ladenden Kategorie. |
$wsCategories.loadChildren()
Lädt die direkten Unterkategorien einer Kategorie. Nutzen Sie die Methode, um eine mehrstufige Navigation aufzubauen. Signatur$wsCategories.loadChildren(parentId)
Rückgabearray – Liste von Category-Maps.
Parameter
| Name | Typ | Pflicht | Beschreibung |
|---|---|---|---|
parentId | string | nein | ID der übergeordneten Kategorie. |
Ohne Angabe einer
parentId werden die Kategorien der obersten Ebene zurückgegeben. Das ist nützlich, um die Hauptnavigation aufzubauen, ohne eine Wurzel-ID kennen zu müssen.$wsCategories.loadPath()
Lädt den Kategoriepfad (Breadcrumb) von der Wurzel bis zur angegebenen Kategorie. Verwenden Sie die Methode für eine Breadcrumb-Navigation, die dem Kunden zeigt, wo er sich befindet. Signatur$wsCategories.loadPath(categoryId)
Rückgabearray – Liste von Category-Maps, von oben (Wurzel) nach unten (Zielkategorie).
Parameter
| Name | Typ | Pflicht | Beschreibung |
|---|---|---|---|
categoryId | string | ja | ID der Zielkategorie. |
$wsCategories.loadProducts()
Lädt die Produkte, die in einer Kategorie enthalten sind. Nutzen Sie die Methode, um eine Produktliste außerhalb einer Kategorieseite aufzubauen (auf der Kategorieseite selbst liegen die Produkte bereits unter$wsViews.current.info.products).
Signatur$wsCategories.loadProducts(categoryId)
Rückgabearray – Liste von Produkt-Maps.
Parameter
| Name | Typ | Pflicht | Beschreibung |
|---|---|---|---|
categoryId | string | ja | ID der Kategorie, deren Produkte geladen werden. |
$wsCategories.loadCategoryMemberships()
Lädt alle Kategorien, in denen ein bestimmtes Produkt enthalten ist. Nützlich, um auf einer Produktseite anzuzeigen, welchen Kategorien das Produkt zugeordnet ist. Signatur$wsCategories.loadCategoryMemberships(productId)
Rückgabearray – Liste von Category-Maps.
Parameter
| Name | Typ | Pflicht | Beschreibung |
|---|---|---|---|
productId | string | ja | ID des Produkts, dessen Kategorien gesucht werden. |
$wsCategories.loadCategoryMembershipPaths()
Lädt die vollständigen Kategoriepfade (Breadcrumbs) für alle Kategorien, in denen ein Produkt enthalten ist. Im Unterschied zuloadCategoryMemberships() erhalten Sie nicht nur die Zielkategorien, sondern jeweils den kompletten Pfad. Nützlich, um die vollständige Einordnung eines Produkts darzustellen.
Signatur$wsCategories.loadCategoryMembershipPaths(productId)
Rückgabearray – Liste von Pfaden, jeder Pfad ist selbst eine Liste von Category-Maps.
Parameter
| Name | Typ | Pflicht | Beschreibung |
|---|---|---|---|
productId | string | ja | ID des Produkts, dessen Kategoriepfade gesucht werden. |
Aktionen
Für$wsCategories stehen keine Aktionen zur Verfügung.
Beispiele
Die Beispiele gehen davon aus, dass die anzuzeigende Kategorie zuvor einer Variablen zugewiesen wurde, beispielsweise auf einer Kategorieseite so:Name und Beschreibung anzeigen
Name und Beschreibung der aktuellen Kategorie werden ausgegeben.
Kategoriebild anzeigen
Prüfen Sie zuerst, ob ein Bild vorhanden ist, damit Sie kein leeresimg-Tag erzeugen.
Ist ein Übersichtsbild hinterlegt, wird es mit dem Kategorienamen als Alternativtext angezeigt.
Unterkategorien anzeigen
Alle direkten Unterkategorien der aktuellen Kategorie werden aufgelistet.
Produkte der aktuellen Kategorie anzeigen
Auf einer Kategorieseite liegen die Produkte der Kategorie bereits im Seitenkontext.Die Produkte der aktuellen Kategorie werden ausgegeben.
Breadcrumb der aktuellen Kategorie
Der Pfad von der obersten Kategorie bis zur aktuellen wird als Folge verlinkter Namen ausgegeben.
Eine Kategorie auf einer beliebigen Seite laden
MitloadCategory() greifen Sie auch außerhalb einer Kategorieseite auf Kategoriedaten zu , beispielsweise auf der Startseite, in einem Blogbeitrag oder im Warenkorb.
Die angegebene Kategorie wird geladen und ihre Daten werden ausgegeben.
Die in den Beispielen verwendeten IDs (
100-12345, 101-12345) sind Platzhalter und durch echte Kategorie-IDs Ihres Shops zu ersetzen.Weiterführende Links
- $wsViews – liefert über
current.info.categoryundcurrent.info.productsdie Daten der aktuellen Kategorieseite und miturl('Category', {id})die Kategorie-Links. - Kategorie-Konfiguration – legt die Standard-Kategoriefelder (Name, Beschreibung, freie Felder) fest.
$wsCategories-Modul laden Sie Kategoriedaten und zeigen sie im Frontend an - einzelne Kategorien, ihre Unterkategorien, den Kategoriepfad (Breadcrumb) und die enthaltenen Produkte.
Auf dieser Seite geht es um das Laden und Anzeigen von Kategoriedaten. Produktdetails sind in der Produkt-Referenz beschrieben; die Einrichtung der Kategorie-Navigation erfolgt im Admin-Interface (siehe Template).
Grundkonzept
$wsCategories ist ein Lade-Modul: Es stellt nur Methoden zum Laden von Kategorien bereit und hat selbst keine „aktuelle Kategorie”. Ein Aufruf wie $wsCategories.id existiert daher nicht.
Sie arbeiten stattdessen immer mit einer Category-Map, also einem Objekt mit den Eigenschaften einer Kategorie. Diese Map erhalten Sie auf zwei Wegen:
- Aus dem aktuellen Seitenkontext - auf einer Kategorieseite liegt die aktuelle Kategorie unter
$wsViews.current.info.category: - Aus einer Lade-Methode - z. B. eine bestimmte Kategorie über ihre ID oder die Unterkategorien einer Kategorie:
$category.name). Der Variablenname ist frei wählbar, auf dieser Seite heißt er durchgängig $category.
Anmerkung:
"ƒ()" kennzeichnet eine Funktion.
Methoden in der Übersicht
| Methode | Rückgabe-Typ | Beschreibung |
|---|---|---|
loadCategory() | map | Lädt eine einzelne Kategorie anhand ihrer ID. |
loadChildren() | array | Lädt die direkten Unterkategorien einer Kategorie. |
loadPath() | array | Lädt den Kategoriepfad (Breadcrumb) von der Wurzel bis zur Kategorie. |
loadProducts() | array | Lädt die Produkte einer Kategorie. |
loadCategoryMemberships() | array | Lädt alle Kategorien, in denen ein Produkt enthalten ist. |
loadCategoryMembershipPaths() | array | Lädt die vollständigen Kategoriepfade für alle Kategorien eines Produkts. |
category.htm (im Verzeichnisbaum unter templates/views/category.htm).
Kategoriedaten lassen sich aber auch flexibel anderswo nutzen, beispielsweise in Blogbeiträgen oder im Warenkorb. Dafür muss das jeweilige Template bereits im Verzeichnis views angelegt worden sein.
Eigenschaften einer Kategorie
Die folgenden Eigenschaften stehen in jeder Category-Map zur Verfügung, unabhängig davon, ob Sie sie aus dem Seitenkontext oder mithilfe einer Lade-Methode erhalten haben.| Eigenschaft | Rückgabe-Typ | Beschreibung |
|---|---|---|
id | string | Eindeutige, vom Shop vergebene ID der Kategorie. |
name | string | Name der Kategorie. |
descr | string | Beschreibung der Kategorie. |
active | string | Sichtbarkeitsstatus: "always" (immer sichtbar), "test" (nur Testmodus), "never" (nicht sichtbar). |
hidden | bool | Ob die Kategorie versteckt ist (z. B. nicht in der Navigation angezeigt wird). |
productsCount | int | Anzahl der Produkte in der Kategorie. |
custom | map | Benutzerdefinierte (freie) Felder der Kategorie, z. B. Bilder oder SEO-Texte. |
timestampCreatedAt | datetime | Erstellungszeitpunkt der Kategorie. |
timestampUpdatedAt | datetime | Zeitpunkt der letzten Änderung. |
productAssignmentType | string | Art der Produktzuordnung, z. B. "manual" (manuelle Zuordnung). |
productRules | string | Regeln für die automatische Produktzuordnung; leer bei manueller Zuordnung. |
name und descr
Name und Beschreibung sind die häufigsten Anzeigewerte. Mehr zur Konfiguration dieser Felder in der Kategorie-Konfiguration.active
Werten Sieactive aus, um nur sichtbare Kategorien anzuzeigen, beispielsweise in einer Navigation.
hidden
hidden blendet eine Kategorie gezielt aus der Navigation aus, ohne sie zu deaktivieren. Prüfen Sie es, bevor Sie einen Navigationseintrag erzeugen.
custom
custom enthält die freien Felder der Kategorie. Anders als beim Produkt liegt das Kategoriebild unter custom.image.category (mit der WebP-Variante custom.image.categoryWebp); ein separates Navigationsbild liegt unter custom.imageNavigation.category. Prüfen Sie vor der Ausgabe, ob das gewünschte Feld vorhanden ist.
Neben den Bildern enthält
custom unter anderem auch SEO-Felder (metaTitle, metaDescription, seoName) und Steuerungsfelder (robotsNoIndex, robotsNoFollow, alternativeTemplate).timestampCreatedAt und timestampUpdatedAt
Beide liefern einen Zeitstempel als ISO-8601-String (UTC, z. B.2026-05-07T13:09:08.000Z).
Methoden
$wsCategories.loadCategory()
Lädt eine einzelne Kategorie anhand ihrer ID. Verwenden Sie die Methode, um gezielt eine bestimmte Kategorie anzuzeigen - auch außerhalb einer Kategorieseite, beispielsweise auf der Startseite oder in einem Blogbeitrag. Signatur$wsCategories.loadCategory(categoryId)
Rückgabemap – Category-Map mit allen Kategorie-Eigenschaften.
Parameter
| Name | Typ | Pflicht | Beschreibung |
|---|---|---|---|
categoryId | string | ja | ID der zu ladenden Kategorie. |
$wsCategories.loadChildren()
Lädt die direkten Unterkategorien einer Kategorie. Nutzen Sie die Methode, um eine mehrstufige Navigation aufzubauen. Signatur$wsCategories.loadChildren(parentId)
Rückgabearray – Liste von Category-Maps.
Parameter
| Name | Typ | Pflicht | Beschreibung |
|---|---|---|---|
parentId | string | nein | ID der übergeordneten Kategorie. |
Ohne Angabe einer
parentId werden die Kategorien der obersten Ebene zurückgegeben. Das ist nützlich, um die Hauptnavigation aufzubauen, ohne eine Wurzel-ID kennen zu müssen.$wsCategories.loadPath()
Lädt den Kategoriepfad (Breadcrumb) von der Wurzel bis zur angegebenen Kategorie. Verwenden Sie die Methode für eine Breadcrumb-Navigation, die dem Kunden zeigt, wo er sich befindet. Signatur$wsCategories.loadPath(categoryId)
Rückgabearray – Liste von Category-Maps, von oben (Wurzel) nach unten (Zielkategorie).
Parameter
| Name | Typ | Pflicht | Beschreibung |
|---|---|---|---|
categoryId | string | ja | ID der Zielkategorie. |
$wsCategories.loadProducts()
Lädt die Produkte, die in einer Kategorie enthalten sind. Nutzen Sie die Methode, um eine Produktliste außerhalb einer Kategorieseite aufzubauen (auf der Kategorieseite selbst liegen die Produkte bereits unter$wsViews.current.info.products).
Signatur$wsCategories.loadProducts(categoryId)
Rückgabearray – Liste von Produkt-Maps.
Parameter
| Name | Typ | Pflicht | Beschreibung |
|---|---|---|---|
categoryId | string | ja | ID der Kategorie, deren Produkte geladen werden. |
$wsCategories.loadCategoryMemberships()
Lädt alle Kategorien, in denen ein bestimmtes Produkt enthalten ist. Nützlich, um auf einer Produktseite anzuzeigen, welchen Kategorien das Produkt zugeordnet ist. Signatur$wsCategories.loadCategoryMemberships(productId)
Rückgabearray – Liste von Category-Maps.
Parameter
| Name | Typ | Pflicht | Beschreibung |
|---|---|---|---|
productId | string | ja | ID des Produkts, dessen Kategorien gesucht werden. |
$wsCategories.loadCategoryMembershipPaths()
Lädt die vollständigen Kategoriepfade (Breadcrumbs) für alle Kategorien, in denen ein Produkt enthalten ist. Im Unterschied zuloadCategoryMemberships() erhalten Sie nicht nur die Zielkategorien, sondern jeweils den kompletten Pfad. Nützlich, um die vollständige Einordnung eines Produkts darzustellen.
Signatur$wsCategories.loadCategoryMembershipPaths(productId)
Rückgabearray – Liste von Pfaden, jeder Pfad ist selbst eine Liste von Category-Maps.
Parameter
| Name | Typ | Pflicht | Beschreibung |
|---|---|---|---|
productId | string | ja | ID des Produkts, dessen Kategoriepfade gesucht werden. |
Aktionen
Für$wsCategories stehen keine Aktionen zur Verfügung.
Beispiele
Die Beispiele gehen davon aus, dass die anzuzeigende Kategorie zuvor einer Variablen zugewiesen wurde, beispielsweise auf einer Kategorieseite so:Name und Beschreibung anzeigen
Name und Beschreibung der aktuellen Kategorie werden ausgegeben.
Kategoriebild anzeigen
Prüfen Sie zuerst, ob ein Bild vorhanden ist, damit Sie kein leeresimg-Tag erzeugen.
Ist ein Übersichtsbild hinterlegt, wird es mit dem Kategorienamen als Alternativtext angezeigt.
Unterkategorien anzeigen
Alle direkten Unterkategorien der aktuellen Kategorie werden aufgelistet.
Produkte der aktuellen Kategorie anzeigen
Auf einer Kategorieseite liegen die Produkte der Kategorie bereits im Seitenkontext.Die Produkte der aktuellen Kategorie werden ausgegeben.
Breadcrumb der aktuellen Kategorie
Der Pfad von der obersten Kategorie bis zur aktuellen wird als Folge verlinkter Namen ausgegeben.
Eine Kategorie auf einer beliebigen Seite laden
MitloadCategory() greifen Sie auch außerhalb einer Kategorieseite auf Kategoriedaten zu , beispielsweise auf der Startseite, in einem Blogbeitrag oder im Warenkorb.
Die angegebene Kategorie wird geladen und ihre Daten werden ausgegeben.
Die in den Beispielen verwendeten IDs (
100-12345, 101-12345) sind Platzhalter und durch echte Kategorie-IDs Ihres Shops zu ersetzen.Weiterführende Links
- $wsViews – liefert über
current.info.categoryundcurrent.info.productsdie Daten der aktuellen Kategorieseite und miturl('Category', {id})die Kategorie-Links. - Kategorie-Konfiguration – legt die Standard-Kategoriefelder (Name, Beschreibung, freie Felder) fest.
