$wsCategories

$wsCategories

Mit dem $wsCategories Modul können Sie Kategoriedaten laden und im Frontend anzeigen. Es stellt Methoden zum Abrufen von Kategorien, Unterkategorien und Produkten bereit.


Inhaltsverzeichnis


Modulübersicht

 

Beispiel / Ausschnitt über $wsCategories

{{= $wsCategories | json }}


JSON-Ausgabe

{ "loadCategory": "ƒ()", "loadCategoryMembershipPaths": "ƒ()", "loadCategoryMemberships": "ƒ()", "loadChildren": "ƒ()", "loadPath": "ƒ()", "loadProducts": "ƒ()" }

Anmerkung: “f()” kennzeichnet eine Funktion.

 

Variablen und Methoden in der Übersicht

$wsCategories ist ein Modul zum Laden von Kategorien. Es stellt keine aktuelle Kategorie in Abfragen wie $wsCategories.id bereit.
Die unten aufgeführten Variablen gehören zu einer Category-Map, auf die wie folgt zugegriffen werden kann:

  • aus dem aktuellen Seitenkontext:

    {{ var $category = $wsViews.current.info.category }}
  • aus Funktionen wie loadChildren():

    {{ foreach $category in $wsCategories.loadChildren(<parentId>) }}

 

Name

Rückgabe- Typ

Beschreibung

Name

Rückgabe- Typ

Beschreibung

id

string

Gibt die eindeutige, vom Shop vergebene ID der Kategorie aus.

name

string

Gibt den Namen der Kategorie aus.

descr

string

Gibt die Kategoriebeschreibung aus.

active

string

Gibt aus, wann die Kategorie sichtbar ist.

Mögliche Werte:

  • always - die Kategorie ist immer sichtbar.

  • test - die Kategorie ist nur im Testmodus sichtbar.

  • never - die Kategorie ist nicht sichtbar.

hidden

bool

Gibt aus, ob die Kategorie versteckt ist (z.B. nicht in der Navigation sichtbar).

productsCount

number

Gibt die Anzahl der Produkte in der Kategorie aus.

custom

map

Gibt Freie Felder der Kategorie aus (z.B. Bilder).

timestampCreatedAt

datetime

Gibt den Erstellungszeitpunkt der Kategorie aus.

timestampUpdatedAt

datetime

Gibt den letzten Änderungszeitpunkt der Kategorie aus.

productAssignmentType

string

Gibt die Art der Produktzuordnung aus.

productRules

string

Gibt die Regeln für automatische Produktzuordnung aus.

loadCategory()

map

Lädt eine einzelne Kategorie anhand ihrer ID.

loadChildren()

array

Lädt alle direkten Unterkategorien der Kategorie.

loadPath()

array

Lädt den Kategoriepfad (Breadcrumbs) von der Wurzel bis zur angegebenen Kategorie.

loadProducts()

array

Lädt die Liste der Produkte, die in einer Kategorie enthalten sind.

loadCategoryMemberships()

array

Lädt alle Kategorien, in denen ein bestimmtes Produkt enthalten ist.

loadCategoryMembershipPaths()

array

Lädt die vollständigen Kategoriepfade (Breadcrumbs) für alle Kategorien, in denen ein bestimmtes Produkt enthalten ist.




Template

Im Standard erfolgt die Anzeige von Kategorien über das Template category.htm. Dieses Template ist im Verzeichnisbaum unter dem Pfad templates/views/category.htm gespeichert. Die Zuweisung dieses Templates erfolgt im Admin Interface unter Shop-Einstellungen > Kategorie-Navigation, Kategorie-Feld und Kategorie-Feldgruppen.

Kategoriedaten können jedoch auch auf allen anderen Templates und somit Seiten des Shops geladen und somit angezeigt werden.


Variablen

 

$category.id

Gibt die Eindeutige, vom Shop vergebene ID der Kategorie aus.

Kategorie-ID: {{= $category.id }}



$category.name

Gibt den Namen der Kategorie aus. Mehr dazu in der Konfiguration.

Kategoriename: {{= $category.name }}



$category.descr

Gibt die Beschreibung einer Kategorie aus. Mehr dazu in der Konfiguration.

Kategoriebeschreibung: {{= $category.descr }}



$category.active

Gibt den Sichtbarkeitsstatus der Kategorie aus. “always” (immer sichtbar), “test” (nur Testmodus) oder “never” (nicht sichtbar).

{{ if $category.active == "always" }} // Kategorie ist aktiv {{ /if }}



$category.hidden

Gibt aus, ob die Kategorie versteckt ist (z.B. nicht in der Navigation angezeigt wird).

{{ if !$category.hidden }} <li>{{= $category.name }}</li> {{ /if }}



$category.productsCount

Gibt die Anzahl der Produkte in einer Kategorie aus.

{{ if $category.productsCount > 0 }} // Produkte verfügbar {{ /if }}

 

$category.custom

Gibt die benutzerdefinierten Felder der Kategorie aus (z.B. Bilder, SEO-Texte oder eigene Attribute).

{{ if $category.custom }} // Freie Felder verfügbar {{ /if }}



$category.timestampCreatedAt

Gibt den Erstellungszeitpunkt der Kategorie aus.

Erstellt: {{= $category.timestampCreatedAt | date }}



$category.timestampUpdatedAt

Gibt den Zeitpunkt der letzten Änderung an der Kategorie aus.

Aktualisiert: {{= $category.timestampUpdatedAt | date }}

 


Methoden

 

$wsCategories.loadCategory()

Lädt eine einzelne Kategorie anhand ihrer ID.


Signatur
$wsCategories.loadCategory(categoryId)


Rückgabe
map - Category-Map mit allen Kategorie-Daten.


Parameter

Parameter

Typ

Pflicht

Beschreibung

Parameter

Typ

Pflicht

Beschreibung

categoryId

string

ja

ID der zu ladenden Kategorie.


Beispiel, das eine Kategorie lädt und den Namen ausgibt.

{{ var $category = $wsCategories.loadCategory("100-12345") }} {{= $category.name }}

 



$wsCategories.loadChildren()

Lädt alle direkten Unterkategorien der Kategorie.


Signatur
$wsCategories.loadChildren(parentId)


Rückgabe
array- Liste mit der Map Category.

Parameter

Name

Typ

Pflicht

Beschreibung

Name

Typ

Pflicht

Beschreibung

parentId

string

nein

ID der übergeordneten Kategorie.


Beispiel, das alle Unterkategorien als Links ausgibt.

{{ foreach $cat in $wsCategories.loadChildren("100-12345") }} {{= $cat.name }} {{ /foreach }}

Ohne Angabe einer parentId werden alle Kategorien der obersten Ebene ausgegeben.

 

 

 

$wsCategories.loadPath()

Lädt den Kategoriepfad (Breadcrumb) von der Wurzel bis zur angegebenen Kategorie.


Signatur
$wsCategories.loadPath(categoryId)


Rückgabe
array - Liste mit der Map Category (von oben nach unten).


Parameter

Parameter

Typ

Pflicht

Beschreibung

Parameter

Typ

Pflicht

Beschreibung

categoryId

string

ja

ID der Zielkategorie.


Beispiel, das den Kategoriepfad als Breadcrumb ausgibt.

{{ foreach $myCategoryVariable in $wsCategories.loadPath($category.id) }} <a href="{{= $wsViews.url('Category', {id: $myCategoryVariable.id}) }}">{{= myCategoryVariable.name }}</a> / {{ /foreach }}

 

 

$wsCategories.loadProducts()

Lädt die Liste der Produkte, die in der Kategorie mit der ID categoryId enthalten sind.


Signatur
$wsCategories.loadProducts(categoryId)


Rückgabe
array - Liste mit der Map Product.


Parameter

Name

Typ

Pflicht

Beschreibung

Name

Typ

Pflicht

Beschreibung

categoryId

string

ja

ID der Kategorie, deren Produkte geladen werden soll.


Beispiel, das die Produkte einer Kategorie in eine Variable lädt.

{{ var $products = $wsCategories.loadProducts("100-12345") }}

 

 

$wsCategories.loadCategoryMemberships()

Lädt alle Kategorien, in denen ein Produkt enthalten ist.


Signatur
$wsCategories.loadCategoryMemberships(productId)


Rückgabe
array - Liste mit der Map Category.


Parameter

Parameter

Typ

Pflicht

Beschreibung

Parameter

Typ

Pflicht

Beschreibung

productId

string

ja

ID des Produkts, nach dem die Kategorien durchsucht werden sollen.


Beispiel, das alle Kategorien eines Produkts ausgibt:

{{ foreach $myProductCategorie in $wsCategories.loadCategoryMemberships($product.id) }} <span>{{= $myProductCategorie.name }}</span> {{ /foreach }}

 

 

$wsCategories.loadCategoryMembershipPaths()

Lädt die vollständigen Kategoriepfade für alle Kategorien, in denen ein Produkt enthalten ist.


Signatur
$wsCategories.loadCategoryMembershipPaths(productId)


Rückgabe
array - Liste von Pfad-Arrays.


Parameter

Parameter

Typ

Pflicht

Beschreibung

Parameter

Typ

Pflicht

Beschreibung

productId

string

ja

ID des Produkts, nach dem die Kategorien durchsucht werden sollen.

 

Beispiel, das alle Kategoriepfade eines Produkts ausgibt.

{{ foreach $myCategoriepPath in $wsCategories.loadCategoryMembershipPaths($product.id) }} {{ foreach $myCategory in $myCategoriepPath }} {{= $myCategory.name }} > {{ /foreach }} {{ /foreach }}

 


Aktionen

Für $wsCategories stehen keine Aktionen zur Verfügung.


Beispiele für die Anzeige von Kategorie-Informationen

Nachdem die Daten einer Kategorie geladen und einer Variable zugewiesen wurden, können Sie diese flexibel ausgeben. Die Zuweisung kann wie folgt erfolgen:

{{ var $myCategory = $wsView.current.info.category }}

 

Name und Beschreibung der Kategorie

In diesem Beispiel werden die Kategorienamen und die Kategoriebeschreibung angezeigt.

Kategoriename: {{= $myCategory.name}} Kategoriebeschreibbung: {{= $myCategory.description }}

 

Bilder der Kategorie

In diesem Beispiel wird geprüft, ob ein Übersichtsbild vorhanden ist. Im positiven Fall wird das Bild angezeigt.

{{ if $myCategory.custom.image.normal }} <img src="{{= $myCategory.custom.image.normal}}" alt="{{= $myCategory.name }}"> {{ /if }}

 

Unterkategorien einer Kategorie

In diesem Beispiel werden innerhalb einer foreach Schleife die Unterkategorien einer beliebigen Kategorie mit der Funktion $wsCategories.loadChildren() geladen. Als Argument wird die jeweilige Kategorienummer übergeben.

{{ foreach $myCategory in $wsCategories.loadChildren("100-12345") }} Unterkategorie-Nummer: {{= $myCategory.id }} Unterkategorie-Name: {{= $myCategory.name }} Unterkategorie-Beschreibung: {{= $myCategory.desc }} {{ /foreach }}

 

Produkte einer Kategorie

In diesem Beispiel werden innerhalb einer foreach Schleife die Produkte einer Kategorie geladen und auf die Produktdaten zugegriffen.

{{ foreach $myProduct in $view.info.products }} Produktname: {{= $myProduct.name }} {{ /foreach }}

 


Kategorien auf beliebigen Seiten verwenden

Die Daten einer Kategorie können mittels der $wsCategories.load() Funktion auch auf anderen Seiten des Shops geladen werden, wie zum Beispiel Blogbeiträge, im Warenkorb oder auf der Startseite.

Dazu muss der Index der gewünschten Kategorie angegeben werden:

{{ var $myCategory = $wsCategories.load("101-12345") }}

Dann können Sie ebenfalls auf alle Daten der geladenen Kategorie zugreifen, z. B. Kategoriename und Kategoriebeschreibung:

Kategoriename: {{= $myCategory.name}} Kategoriebeschreibung: {{= $myCategory.description }}

 

Praxisbeispiele zu Umsetzungen von Kategorien und Kategorien-Funktionen finden Sie hier: Praxisbeispiele Kategorien


Weiterführende Links