Globale Template-Funktionen stehen in allen Templates zur Verfügung. Sie werden verwendet, um Werte zu verarbeiten, zu formatieren oder zu prüfen (z. B. Strings anpassen, Zahlen runden, Listen zusammenführen oder Datumswerte vergleichen). Diese Seite beschreibt ausschließlich globale Funktionen. Funktionen, die an ein Modul gebunden sind (z. B. Methoden vonDocumentation Index
Fetch the complete documentation index at: https://dokumentation.websale.de/llms.txt
Use this file to discover all available pages before exploring further.
$wsAccount oder $wsExternalData), werden in der jeweiligen Modul-Referenz dokumentiert.
Viele Funktionen können alternativ auch als Modifier (Filter) verwendet werden.
Grundlagen
Funktionen werden mit runden Klammern aufgerufen. Werte, die an eine Funktion übergeben werden (sogenannte Parameter), werden durch Kommas getrennt. Funktionsnamen sind case-sensitive (Groß - und Kleinschreibung muss also genau beachtet werden).Schreibweise
Damit das Ergebnis einer Funktion im Template ausgegeben wird, wird die Ausgabe-Schreibweise verwendet:Parameterübergabe und Reihenfolge
Standardmäßig werden Parameter positionsbasiert übergeben (in der Reihenfolge der Signatur). Wenn die Reihenfolge der Parameter geändert werden soll, müssen benannte Parameter verwendet werden (Name laut Signatur +=). Entscheidend sind dann die Parameternamen – nicht die Position.
Beispiel
Ein Gutschein soll über die Funktion replace umbenannt werden. Aus GUTSCHEIN_buy10 soll GUTSCHEIN_sale10 werden.
Die Signatur lautet: replace(content, search, replace). Bei positionsbasierter Übergabe ist die Reihenfolge daher:
name="..."), ist die Reihenfolge frei:
Funktionen kombinieren (verkettete Verarbeitung)
Mehrere Funktionen können auch nacheinander angewendet werden, indem die erste Funktion als Argument der zweiten Funktion verwendet wird. Beispiel Die VersandkostenID „versand_kostenfrei“ soll sprechend in „VERSAND KOSTENFREI“ umbenannt und die Schreibweise in Versalien (Großschreibung) geändert werden. Es werden die Funtkionenupper und replace verwendet:
Texte und Listen zusammenfügen
Mit dem+-Operator könne zwei Texte (Strings) direkt zu einem neuen String zusammengefügt werden. Für Listen kann + alternativ zu merge() verwendet werden, um zwei Auflistungen zu vereinen.
Es können nur Werte desselben Typs mit + verbunden werden. Zahlen oder andere Typen müssen vorher mit der Funktion str() in einen Text umgewandelt werden.
BeispieleArtikelnummer aus Präfix und ID zusammensetzen:
str() in einen Text umgewandelt werden.
Liste der Funktionen
abs
Die Funktionabs gibt den Absolutwert einer Zahl zurück – also den Wert ohne Vorzeichen. Eine negative Zahl wird dadurch positiv, eine positive Zahl bleibt unverändert.
AnwendungsbeispielNützlich, um z. B. Rabattbeträge oder Preisdifferenzen im Shop immer als positive Zahl darzustellen – unabhängig davon, ob der Wert in den Daten ein Minus-Vorzeichen hat. Signatur
abs(value)
Parameter
value- Die Zahl, deren Absolutwert ermittelt werden soll.
ja Beispiel mit negativem Wert
Der aktuelle Preis eines Produkts wird im Feld
price gespeichert (hier: 79.95), der ursprüngliche Preis im Feld setOrgPrice (hier: 99.95). Die Differenz zwischen beiden kann je nach Rechenrichtung negativ ausfallen. Mit abs wird sichergestellt, dass der angezeigte Betrag immer positiv ist.
ceil
Die Funktionceil rundet eine Zahl immer auf die nächste ganze Zahl auf – egal, wie klein der Nachkommaanteil ist. ceil(1.1) ergibt also 2, genauso wie ceil(1.9).
AnwendungsbeispielHilfreich, wenn Werte im Shop immer „zugunsten” einer ganzen Einheit aufgerundet werden sollen – z. B. Stückzahlen, Verpackungseinheiten oder berechnete Mengen. Signatur
ceil(value)
Parameter
value– Die Zahl, die aufgerundet werden soll.
ja Beispiel mit Dezimalzahl resp. Dezimalbruch
Um die Darstellung der Nachkommastellen anzupassen benutzen Sie
ceil(2) | preparedFormat(“name“)Beispiel - Berechnetes Produktgewicht aufrunden
Das Versandgewicht eines Produkts (in diesem Fall 2,3 kg) wird auf volle Kilogramm aufgerundet.
floor
currency
Die Funktioncurrency formatiert einen numerischen Wert als Preisangabe gemäß den Shop-Einstellungen zur Währung. Dazu gehören insbesondere:
- Dezimaltrennzeichen (z. B.
,statt.) - Anzahl der Nachkommastellen (z. B. 2 bei vielen Währungen)
- kaufmännisches Runden auf die konfigurierte Nachkommastellen-Anzahl
Eignet sich für die Ausgabe von Beträgen wie Einzelpreisen, Rabatten, Zwischensummen und Gesamtsummen. Signatur
currency(price)
Parameter
price- Die Zahl, die als Preis formatiert werden soll.
ja Beispiel mit Nachkommastellen
Soll ein Zahlenwert unabhängig von der Währung in einem bestimmten Format ausgegeben werden (z.B. mit einer anderen Anzahl an Nachkommastellen), ist preparedFormat() die passende Funktion.
Der Preis eines Produkts wird als Dezimalzahl gespeichert (hier:
89.95). Mit currency wird er gemäß den Shop-Einstellungen formatiert.
Ausgabe
dateFmt
Die FunktiondateFmt bringt ein Datum oder einen Zeitpunkt in ein gewünschtes Anzeigeformat. Der Eingabewert muss im ISO-8601-Format vorliegen (z. B. 2018-03-11T11:20:11.000Z) – dieses Format wird von den meisten Systemen automatisch verwendet.
AnwendungsbeispielDamit lassen sich z. B. Bestelldaten, Liefertermine oder Aktionszeiträume im Shop leserlich darstellen (z. B. als „11.03.2018” oder „11:20:11”). Signatur
dateFmt(isoDate, fmt)
Parameter
isoDate– Datum/Zeit im ISO-8601-Format (z. B.2018-03-11T11:20:11.000Z)fmt– Formatangabe, die festlegt, wie die Ausgabe aussehen soll- Die wichtigsten Platzhalter im Überblick
%d= Tag (01–31)%m= Monat (01–12)%Y= Jahr (4-stellig)%H= Stunde (00–23)%M= Minute (00–59)%S= Sekunde (00–60)
- Damit können Sie die folgenden Formate einfach „zusammenbauen“, z. B.:
"%d.%m.%Y"→11.03.2018"%H:%M:%S"→11:20:11
- Die wichtigsten Platzhalter im Überblick
ja Beispiel zur Ausgabe des Bestelldatums aus der “Bestellzeit”
Das Bestelldatum ist in diesem Beispiel in folgendem Format gespeichert -
2024-06-15T14:32:05.000Z. Mit dateFmt wird es für eine Bestellbestätigung in ein lesbares Datum und eine separate Uhrzeit umgewandelt.
dateGreaterThan
Die FunktiondateGreaterThan vergleicht zwei Datumswerte (als Strings) miteinander und liefert true, wenn das erste Datum nach dem zweiten Datum liegt.
AnwendungsbeispielDamit lässt sich im Template z. B. prüfen, ob ein Liefertermin in der Zukunft liegt oder ob ein Zeitraum bereits überschritten ist. Signatur
dateGreaterThan(firstDate, secondDate)
Parameter:
firstDate– Erstes Datum (zu prüfender Wert)secondDate– Zweites Datum (Vergleichswert)
ja Beispiel eines Datumsvergleichs
Mit
dateGreaterThan lässt sich prüfen, ob die Bestellung nach einem festen Stichtag liegt - z.B. um nur Bestellungen ab dem 01.01.2025 für eine Rückgabeaktion zu berücksichtigen.
dateLessThan
dateLessThan
Die FunktiondateLessThan vergleicht zwei Datumswerte (als Strings) miteinander und liefert true, wenn das erste Datum vor dem zweiten Datum liegt.
AnwendungsbeispielDamit lassen sich im Template z. B. Fristen oder Zeiträume prüfen - etwa ob ein Datum bereits überschritten ist oder ob ein Ereignis noch bevorsteht. Signatur
dateLessThan(firstDate, secondDate)
Parameter
firstDate– Erstes Datum (zu prüfender Wert)secondDate– Zweites Datum (Vergleichswert)
ja Beispiel eines Datumsvergleichs
Mit
dateLessThan lässt sich prüfen, ob die Bestellung vor einem festen Stichtag liegt - z.B. um drauf hinzuweisen, dass die Rückgabefrist bereits abgelaufen ist.
dateGreaterThan
decode
Die Funktiondecode wandelt einen kodierten String zurück in seinen ursprünglichen Klartext. Unterstützte Formate sind base64 und hex. Wenn der übergebene Wert kein gültiger kodierter String im angegebenen Format ist, gibt die Funktion null zurück.
AnwendungsbeispielNutzbar, um z.B. extern kodiert übermittelte Produktdaten, Gutscheincodes oder Konfigurationswerte vor der Weiterverarbeitung im Template zu dekodieren. Signatur
decode(content, format)
Parameter
content- Der kodierte String, der dekodiert werden soll.format- Das Kodierungsformat, das beim Dekodieren verwendet werden soll. Gültige Werte:“base64”,“hex”.
ja Beispiel - Dekodierung eines Base64-Strings
encode
distinct
Die Funktiondistinct entfernt doppelte Einträge aus einer Auflistung und gibt eine neue Auflistung zurück, in der jeder Wert nur einmal vorkommt. Bei Auflistungen von Datenobjekten (Maps) kann optional ein Schlüssel angegeben werden, anhand dessen verglichen wird. Die Angabe des Schlüssels wird nur auf der obersten Ebene einer Map berücksichtigt.
AnwendungsbeispielNutzbar, um z.B. Duplikate aus einer Liste von Produktkategorien, Variantenmerkmalen oder Filterwerten zu entfernen, bevor sie im Template angezeigt werden. Signatur
distinct(list[, key]
Parameter
list- Die Auflistung, aus der Duplikate entfernt werden sollen.key (optional)- Schlüssel eines Datenobjekts, der für den Vergleich verwendet wird.
ja Beispiel - Doppelte Größenangaben aus einer Variantenliste entfernen
encode
Die Funktionencode kodiert einen String ein ein angegebenes Format. Unterstützte Formate sind base64 und hex. Der Rückgabewert ist immer vom Typ String.
AnwendungsbeispielNutzbar, um z.B. Gutscheincodes, Produkt-Kennungen oder andere Werte für die Weitergabe an externe Dienste oder in URLs sicher zu kodieren. Signatur
encode(content, format)
Parameter
content- Der String, der kodiert werden soll.format- Das Zielformat der Kodierung. Gültige Werte:“base64”,“hex”.
ja Beispiel - Kodierung als Base64
decode
floor
Die Funktionfloor rundet eine Zahl immer auf die nächste ganze Zahl ab – egal, wie groß der Nachkommaanteil ist. floor(4.9) ergibt also 4, genauso wie floor(4.1).
AnwendungsbeispielHilfreich, wenn Werte im Shop grundsätzlich abgerundet werden sollen – z. B. bei berechneten Mengen oder Zwischenergebnissen, die nur als ganze Zahl weiterverarbeitet werden dürfen. Signatur
floor(value)
Parameter
value– Numerischer Wert, der abgerundet werden soll.
ja Beispiel mit Dezimalzahl resp. Dezimalbruch
Um die Darstellung der Nachkommastellen anzupassen benutzen Sie
floor(4.9) | preparedFormat(“name”)Das Versandgewicht eines Produkts (in diesem Fall 2,7 kg) wird auf volle Kilogramm abgerundet.
ceil
ifnull
Die Funktionifnull prüft, ob ein Wert vorhanden ist oder nicht (null bedeutet: „kein Wert vorhanden”). Ist der Wert null, wird stattdessen ein Ersatzwert ausgegeben. Ist ein Wert vorhanden, wird dieser selbst verwendet.
AnwendungsbeispielEignet sich z.B. für Fallback-Logiken im Shop - etwa um ein Ersatzbild anzuzeigen, wenn kein Produktbild vorhanden ist, oder um fehlende Produktdaten durch Standardwerte zu ersetzen. Signatur
ifnull(object, value)
Parameter
object- Der zu prüfende Wert.value- Der Alternativwert, der ausgegeben wird, wennobjectden Wertnullhat.
ja Beispiel mit
null-Wert
“web” ist nicht null, daher wird er selbst ausgegeben).
In der Variable
$myProduct werden alle Informationen und Daten zu einem Produkt gespeichert. Wenn kein Produktbild gefunden wird ($myProduct.custom.image.normal ist null), dann wird das Ersatzbild noImageNormal.png angezeigt.
int
Die Funktionint wandelt einen Wert in eine ganze Zahl (Integer) um. Das ist vor allem dann nötig, wenn ein Zahlenwert als Text vorliegt (z.B. “10”) und als echte Zahl weiterverarbeitet werden soll - etwa für Berechnungen oder Vergleiche. Ist die Umwandlung nicht möglich (z.B. bei einem Wort), wird null zurückgegeben. Dezimalzahlen werden auf die ganze Zahl vor dem Komma gekürzt (nicht gerundet).
AnwendungsbeispielNutzbar, um z. B. Mengenangaben oder Artikel-IDs, die als Text vorliegen (z.B. “1043”), in eine Zahl umzuwandeln, bevor sie weiterverarbeitet werden. Signatur
int(value)
Parameter
value- Der Wert, der in eine Ganzzahl konvertiert werden soll.
ja Beispiel mit einem String, der eine Zahl enthält Der Text “10” wird in die Zahl 10 umgewandelt. Mit der Ausgabe wurde der Text in eine Zahl konvertiert, mit der nun gerechnet werden kann.
null.
join
Die Funktionjoin fügt alle Einträge einer Auflistung zu einem String zusammen. Optional kann ein Separator (Trennzeichen) angegeben werden, der die Elemente voneinander trennt.
AnwendungsbeispielEignet sich z. B. um Produkteigenschaften, Variantenmerkmale oder Kategorien als zusammenhängenden Text auszugeben – etwa kommasepariert in einer Zeile. Signatur
join(list[, "separator"])
Parameter
list- Die Auflistung, deren Einträge zusammengefügt werden sollen.separator(optional) - Trennzeichen zwischen den Einträgen. Standard: kein Trennzeichen.
ja Beispiel ohne Separator
Die Varianten-Daten eines Produkts werden über
$wsProducts.variantInfo() geladen. Das Attribut “Farbe” enthält eine Auflistung von Optionen (hier: “Rot”, “Blau”, “Grün”). Die Farbnamen werden in einer Schleife gesammelt, mit push in einer Auflistung gesammelt und mit join zu einem lesbaren Text zusammengefügt.
split
json
Die Funktionjson gibt ein Datenobjekt in der technischen JSON-Schreibweise aus – einem standardisierten Textformat, das sich leicht maschinell verarbeiten lässt.
AnwendungsbeispielNützlich zum Fehlersuchen (Debugging) im Template oder bei der Weitergabe von Daten an externe Dienste (z. B. Tracking, Analytics). Signatur
json(object)
Parameter
object- Das Objekt, das als JSON-String ausgegeben werden soll.
ja Beispiel - Ausgabe von Produktdaten zur Fehlersuche
Es werden nicht mehr als fünf Ebenen ausgegeben. Tiefere Ebenen werden als
“…” dargestellt.keys
Die Funktionkeys gibt alle Bezeichner (Schlüssel) eines Datenobjekts (Map) als Auflistung zurück. Eine Map besteht aus Paaren von Bezeichnern und Werten – z. B. {name: "Topseller", price: 12.99}. Mit keys lassen sich gezielt die Bezeichner auslesen.
AnwendungsbeispielNutzbar, um z. B. über alle Einträge eines Datenobjekts zu gehen und sowohl die Bezeichner als auch die zugehörigen Werte im Template anzuzeigen – etwa bei dynamisch aufgebauten Produktdaten oder Konfigurationseinstellungen. Signatur
keys(object)
Parameter
object- Das Datenobjekt, dessen Bezeichner (Schlüssel) zurückgegeben werden sollen.
ja Beispiel
last
Die Funktionlast gibt den letzten Eintrag einer Auflistung (List) zurück.
AnwendungsbeispielNutzbar, um z.B. die letzte Bestellposition, den letzten Breadcrumb-Eintrag oder das letzte Element einer Variantenliste gezielt anzuzeigen. Signatur
last(list)
Parameter
list- die Auflistung, deren letzter Eintrag zurückgegeben werden soll.
ja Beispiel
Der Kategoriepfad (Breadcrumb) wird über
$wsCategories.loadPath() als Auflistung geladen. Mit last wird der letzte Eintrag gezielt ausgelesen, da dieser der aktuellen Kategorie entspricht.
len
Die Funktionlen ermittelt die Länge, also die Anzahl der Zeichen bei einem Text, die Anzahl der Einträge bei einer Auflistung oder die Anzahl der Schlüssel-Wert-Paare bei einem Datenobjekt.
AnwendungsbeispielNutzbar, um z.B. die Anzahl von Produkten in einer Liste zu zählen, die Zeichenlänge einer Eingabe zu prüfen oder um festzustellen, wie viele Einträge ein Datenobjekt enthält. Signatur
len(sequence) Parameter
sequence- Text, Auflistung oder Datenobjekt, dessen Länge ermittelt werden soll.
ja Beispiel mit Text
Die Produkte einer Kategorie werden über $wsCategories.loadProducts() geladen (hier: 24 Produkte in der Kategorie). Mit
len wird die Anzahl ermittelt.
lower
Die Funktionlower wandelt alle Buchstaben eines Textes in Kleinbuchstaben um.
AnwendungsbeispielNutzbar, um z.B. Benutzereingaben, Gutscheincodes oder Produktkennungen einheitlich in Kleinschreibung darzustellen oder zu vergleichen. Signatur
lower(content)
Parameter
content- der Text, der in Kleinbuchstaben umgewandelt werden soll.
ja Beispiel
upper
max
Die Funktionmax gibt den höchsten Wert aus einer Auflistung von Zahlen zurück.
AnwendungsbeispielNutzbar, um z.B. den teuersten Preis innerhalb einer Variantenliste oder die höchste verfügbare Menge zu ermitteln. Signatur
max(list)
Parameter
list- die Auflistung mit Zahlenwerten.
ja Beispiel
Die letzten Bestellungen eines Kunden werden über
$wsOrderHistory.loadList() geladen. Jede Bestellung enthält u. a. das Feld order.total (Gesamtpreis). Die geladenen Bestellwerte werden mit push in einer eigenen Auflistung gesammelt und anschließend mit max der höchste Wert ermittelt.
49.90, 129.00, 89.95):
min
merge
Die Funktionmerge führt zwei Datenobjekte (Maps) zusammen. Die Einträge aus dem zweiten Objekt (source) werden in das erste Objekt (target) übernommen. Bei Listen werden die Einträge der zweiten Liste an die erste angehängt. Es wird kein neues Objekt erzeugt, das erste Objekt wird direkt verändert.
Für Maps steht optional der Parameter deep zur Verfügung. Bei deep=true werden verschachtelte Maps ebenfalls zusammengeführt, anstatt überschrieben zu werden.
AnwendungsbeispielNutzbar, um z.B. Standardwerte für die Produktanzeige mit produktspezifischen Werten zusammenzuführen. So können z.B. Standardtext oder Fallback-Bilder definiert werden, die nur dann zum Einsatz kommen, wenn ein Produkt keinen eigenen Wert hat. Signatur
merge(target, source[, deep=false])
Parameter
target- das Ziel-Objekt, in das die Einträge eingefügt werden.source- das Quell-Objekt, dessen Einträge übernommen werden.deep(optional) - nur für Maps. Beitruewerden verschachtelte Maps ebenfalls zusammengeführt.
ja Beispiel - Standardwerte mit produktspezifischen Daten zusammenführen
Wenn beide Objekte denselben Bezeichner (Schlüssel) enthalten, wird der Wert aus dem ersten Objekt durch den Wert aus dem zweiten Objekt überschrieben.
deep merge)
Standardwerte für ein Produkt enthalten auch verschachtelte Bilddaten (image). Mit deep=true werden diese beim Zusammenführen nicht vollständig überschrieben, sondern ebenfalls zusammengeführt - sodass nur die tatsächlich vom Produkt gelieferten Bildpfade übernommen werden, fehlende aber durch den Standardwert erhalten bleiben.
min
Die Funktionmin gibt den niedrigsten Wert aus einer Auflistung von Zahlen zurück.
AnwendungsbeispielNutzbar, um z.B. den günstigsten Preis innerhalb einer Variantenliste oder den kleinsten Bestand zu ermitteln. Signatur
min(list)
Parameter
list- die Auflistung mit Zahlenwerten.
ja Beispiel
Die letzten Bestellungen eines Kunden werden über $wsOrderHistory.loadList() geladen. Jede Bestellung enthält u. a. das Feld
order.total (Gesamtpreis). Die Bestellwerte werden mit push in einer eigenen Auflistung gesammelt, anschließend wird mit min der niedrigste Wert ermittelt.
49.90, 129.00, 89.95):
max
preparedFormat
Die FunktionpreparedFormat formatiert eine Zahl hinsichtlich Dezimaltrennzeichen und Nachkommastellen, basierend auf einem im Shop hinterlegten Format.
Anwendungsbeispiel
Nutzbar, um z.B. Mengenangaben, Gewichte oder andere Zahlenwerte shopgerecht darzustellen.
SignaturpreparedFormat(number, formatName)
Parameter
number- Die Zahl, die formatiert werden soll.name- Name des im Shop konfigurierten Formats (z.B.“amount”).
ja Beispiel
amount formatiert hier auf ganze Zahlen)
Das Gewicht eines Produkts ist im Feld
$myProduct.custom.weight als Dezimalzahl gespeichert (hier: 2.300000). Mit preparedFormat wird es gemäß dem im Shop hinterlegten Format "weight" ausgegeben.
2.300000 und Format "weight" mit einer Nachkommastelle):
push
Die Funktionpush fügt ein neues Element am Ende einer bestehenden Liste hinzu und gibt die neue Anzahl der Einträge in der Auflistung zurück. Die Liste wird dabei direkt verändert, es wird keine neue Liste erzeugt.
AnwendungsbeispielNutzbar, um z.B. in einer Schleife gezielt Einträge zu sammeln, etwa gefilterte Produkte, Fehlermeldungen oder dynamisch zusammengestellte Ausgabelisten. Signatur
push(list, element)
Parameter
list- Die Auflistung, an die das neue Element angehängt werden soll.element- Der Wert, der hinzugefügt werden soll.
ja Beispiel - Element hinzufügen
Die Produkte einer Kategorie werden über
$wsCategories.loadProducts() als Auflistung geladen. Mit push können Produkte aus einer zweiten Kategorie an die Liste angehängt werden - z.B. um Cross-Selling-Artikel in die Ausgabe aufzunehmen.
$myProducts enthält nun alle Produkte der ersten Kategorie plus die Produkte aus der Cross-Selling-Kategorie.
random
Die Funktionrandom erzeugt einen Zufallswert.
AnwendungsbeispielNutzbar, um z.B. zufällige Gutscheincodes zu Erzeugen. Hinweis
Die Funktion ist geplant, wird aber momentan noch nicht unterstützt.
range
Die Funktionrange erzeugt eine Auflistung von aufeinanderfolgenden ganzen Zahlen - vom Startwert bis zum Endwert. Standardmäßig wird in Einserschritten gezählt. Bei absteigenden Reihen muss eine negative Schrittweite angegeben werden.
AnwendungsbeispielNutzbar, um z.B. Seitenumbrüche (Pagination), Mengenwähler oder nummerierte Ausgaben im Template zu erzeugen. Signatur
range(start, stop[, step=1])
Parameter
start- Startwert der Zahlenreihe.stop- Endwert der Zahlenreihe.step(optional) - Schrittweite (Standard: 1). Für absteigend zählende Reihen einen negativen Wert verwenden.
nein Beispiel für eine aufsteigende Reihe
raw
Die Funktionraw gibt einen Wert ohne automatische Bereinigung von HTML-Zeichen aus, sodass enthaltener HTML-Code vom Browser als Formatierung interpretiert wird, statt als reiner Text an gezeigt zu werden.
AnwendungsbeispielNutzbar, um z.B. formatierte Produktbeschreibungen oder CMS-Inhalte mit HTML-Markup unverändert im Shop darzustellen. Hinweis
Die Funktion ist geplant, wird aber momentan noch nicht unterstützt.
replace
Die Funktionreplace ersetzt in einem Text alle Vorkommen eines Suchbegriffs durch einen anderen Text.
AnwendungsbeispielNutzbar, um z.B. interne Bezeichnung für die Anzeige im Shop leserlicher zu machen. Signatur
replace(string, search, replace)
Parameter
content- Der Ausgangstext.search- Der Text, der gesucht und ersetzt werden soll.replace- Der Text, der stattdessen eingesetzt werden soll.
ja Beispiel
reverse
Die Funktionreverse kehrt die Reihenfolge der Zeichen in einem Text oder der Einträge in einer Auflistung um.
AnwendungsbeispielNutzbar, um z.B. eine bestehende Sortierung umzukehren oder Einträge in umgekehrter Reihenfolge auszugeben (z.B. neueste Einträge zuerst). Hinweis
Die Funktion ist geplant, wird aber momentan noch nicht unterstützt.
round
Die Funktionround rundet eine Zahl kaufmännisch auf oder ab. Optional kann die gewünschte Anzahl an Nachkommastellen angegeben werden. Ohne Angabe wird auf eine ganze Zahl gerundet.
AnwendungsbeispielNutzbar, um z.B. berechnete Zwischenwerte, Gewichte oder Mengen kaufmännisch gerundet im Template anzuzeigen. Signatur
round(number[, precision=0])
Parameter
number- Die Zahl, die gerundet werden soll.precision(optional) - Gewünschte Anzahl an Nachkommastellen (Standard: 0).
ja Beispiel ohne Nachkommastellen
precision steuert die mathematische Rundung (auf wie viele Nachkommastellen der Wert gerundet wird). Die Ausgabe zeigt jedoch systembedingt immer bis zu sechs Nachkommastellen an (z.B: 1.230000 statt 1.23). Um die Darstellung anzupassen (z.B. nur 2 sichtbare Nachkommastellen), wird round in Kombination mit preparedFormat verwendet:
sort
Die Funktionsort sortiert die Einträge einer Auflistung (List). Standardmäßig wird aufsteigend sortiert. Mit dem optionalen Parameter reverse kann die Sortierung aber auch umgekehrt werden.
AnwendungsbeispielNutzbar, um z.B. Produktlisten, Varianten oder Filteroptionen alphabetisch oder nach Zahlenwert zu sortieren. Signatur
sort(list[, reverse=false])
Parameter
list- Die Auflistung, deren Einträge sortiert werden sollen.reverse(optional) - Beitruewird absteigend sortiert.
ja Beispiel mit Zahlen
float haben.
Die varianten-Daten eines Produkts werden über
$wsProducts.variantInfo() geladen. Das Attribut “Farbe” enthält eine Auflistung von Optionen (hier: Rot, Blau, Grün, Beige). Da die Optionen als Objekte vorliegen (z.B. {name: “Rot”}), werden die Namen zunächst mit push in einer eigenen Auflistung gesammelt. Anschließend werden sie mit sort alphabetisch sortiert und in einer Schleife ausgegeben.
split
Die Funktionsplit teilt einen Text anhand eines Trennzeichens in eine Auflistung (List) einzelner Einträge auf.
AnwendungsbeispielNutzbar, um z.B. kommaseparierte Werte aus Produktdaten, Konfigurationen oder externen Quellen in einzelne Einträge zu zerlegen und getrennt zu verarbeiten. Signatur
split(content, separator)
Parameter
content- Der Text, der aufgeteilt werden soll.separator- Das Trennzeichen, an dem der Text aufgeteilt wird.
ja Beispiel
join
startswith
Die Funktionstartswith prüft, ob ein Text mit einer bestimmten Zeichenfolge beginnt und gibt true oder false zurück.
AnwendungsbeispielNutzbar, um z.B. Artikelnummern anhand ihrer Anfangszeichen zu unterscheiden und im Template darauf zu reagieren, etwa um Produkte bestimmter Produktgruppen unterschiedlich darzustellen (z.B. alle Artikelnummern, die mit
“TKK” beginnen, als Tiefkühlprodukte zu kennzeichnen).
Signaturstartswith(str, prefix)
Parameter
str- Der Text, der geprüft werden soll.prefix- Die Zeichenfolge, auf die am Textanfang geprüft wird.
ja Beispiel mit einem Treffer
itemNumber (hier: “TKK-40210”). Artikelnummern, die mit “TKK” beginnen, gehören zur Produktgruppe Tiefkühlware. Mit startswith wird dies geprüft und ein entsprechendes Badge angezeigt.
“TKK-40210”)
static
Die Funktionstatic erzeugt den vollständigen Pfad zu einer statischen Datei (z.B. JavaScript, CSS, Bilder). Standardmäßig liegen solche Dateien unter media/themes/default auf dem Server des Shops.
AnwendungsbeispielNutzbar, um z.B. Pfade zu statischen Dateien im Template korrekt einzubinden - auch, wenn sich der Speicherort später ändert. Signatur
static(path)
Parameter
path- Pfad zur Datei, relativ zum Static-Verzeichnis des Shops.
nein Beispiel
Statt eines fest eingetragenen Pfads:
static zu verwenden:
Durch die konsequente Nutzung von
static kann der Speicherort der statischen Dateien jederzeit angepasst werden (z.B. auf einen Media-Server oder ein CDN), ohne dass die Templates geändert werden müssen. Bei Kategorie- oder Produktbildern wird static nicht benötigt - deren Pfade werden automatisch korrekt erzeugt.str
Die Funktionstr wandelt einen Wert in einen Text (String) um. Das Ergebnis sieht bei Zahlen zwar identisch aus, ist intern aber ein String - also kein Zahlenwert mehr, mit dem gerechnet werden könnte. Stattdessen kann der Wert danach mit textbasierten Funktionen wie replace, startswith oder split weiterverarbeitet werden.
AnwendungsbeispielNutzbar, um z.B. eine Artikelnummer, die als Zahl vorliegt, in einen Text umzuwandeln, damit anschließend mit
startswith geprüft werden kann, ob sie mit einer bestimmten Zeichenfolge beginnt.
Signaturstr(value)
Parameter
value- Der Wert, der in Text umgewandelt werden soll.
ja Beispiel mit ganzer Zahl
striphtml
Die Funktionstriphtml entfernt alle HTML-Formatierungen (Tags) aus einem Text und gibt nur den reinen Textinhalt zurück.
AnwendungsbeispielNutzbar, um z.B. HTML-formatierte Produktbeschreibungen als reinen Text auszugeben. Signatur
striphtml(content)
Parameter
content- Der Text, aus dem die HTML-Formatierungen entfernt werden sollen.
ja Beispiel
take
Die Funktiontake gibt die ersten Zeichen eines Textes oder die ersten Einträge einer Auflistung zurück.
AnwendungsbeispielNutzbar, um z.B. nur die ersten Zeichen eines Produktnamens oder die ersten Einträge einer Produktliste anzuzeigen. Signatur
take(content, count)
Parameter
content- Der Text oder die Auflistung, aus der die ersten Elemente entnommen werden sollen.count- die Anzahl der Zeichen bzw. Einträge, die vom Anfang genommen werden.
ja Beispiel mit Text
Die Produkte einer Kategorie werden über $wsCategories.loadProducts() als Auflistung geladen (hier:
24 Produkte). Mit take werden in diesem Beispiel nur die ersten 3 Einträge entnommen und in einer Schleife als Teaser ausgegeben.
"Sneaker Classic", "Laufschuh Pro", "Sandale Sport", "Wanderstiefel", …)
takelast
takelast
Die Funktiontakelast gibt die letzten Zeichen eines Textes oder die letzten Einträge einer Auflistung zurück.
AnwendungsbeispielNutzbar, um z.B. die letzten Zeichen einer Bestellnummer oder die letzten Einträge einer Liste gezielt anzuzeigen. Signatur
takeLast(content, count)
Parameter
content- Der Text oder die Auflistung, aus der die letzten Elemente entnommen werden sollen.count- Die Anzahl der Zeichen bzw. Einträge, die vom Ende genommen werden.
ja Beispiel mit Text
Der Kategoriepfad (
Breadcrumb) wird über $wsCategories.loadPath() als Auflistung geladen (hier: 4 Ebenen). Mit takeLast werden nur die letzten 2 Einträge entnommen - z.B. um in einer Unternavigation nur die aktuelle und die übergeordnete Kategorie anzuzeigen.
take
trim
Die Funktiontrim entfernt überflüssige Leerzeichen am Anfang und Ende eines Textes.
AnwendungsbeispielNutzbar, um z.B. Benutzereingaben, importierte Produktdaten oder externe Werte vor der Weiterverarbeitung von ungewollten Leerzeichen zu bereinigen. Hinweis
Die Funktion ist geplant, wird aber momentan noch nicht unterstützt.
type
Die Funktiontype Gibt den Datentyp eines Wertes als Text zurück - also z. B. ob es sich um einen Text (string), eine ganze Zahl (int), eine Dezimalzahl (float), eine Auflistung (list) oder ein Datenobjekt (map) handelt.
AnwendungsbeispielNutzbar, um z.B. auf Fehlersuche zu gehen (Debugging) oder um im Template zu prüfen, ob ein Wert den erwarteten Typ hat, bevor er weiterverarbeitet wird. Signatur
type(object)
Parameter
object- Der Wert, dessen Datentyp ermittelt werden soll.
ja Beispiel anhand eines Textes
upper
Die Funktionupper wandelt alle Buchstaben eines Textes in Großbuchstaben um.
AnwendungsbeispielNutzbar, um z.B. Gutscheincodes, Versandarten oder Überschriften einheitlich und in Großschreibung darzustellen. Signatur
upper(content)
Parameter
content- Der Text, der in Großbuchstaben umgewandelt werden soll.
ja Beispiel
lower
Modifier
Viele Funktionen können alternativ auch als Modifier (Filter) in der Filterschreibweise verwendet werden. Dabei steht der erste Parameter links vom Pipe-Operator|, weitere Parameter werden in Klammern angegeben.
Alternativ kann eine Funktion auch mit dem Filter-Operator | (pipe) notiert werden (= Filterschreibweise). Dabei steht der erste Parameter links vom Operator.
Beispiel
