$wsCookie-Moduls lesen, setzen, aktualisieren und löschen Sie Browser-Cookies direkt im Template.
Cookies speichern pro Besucher Informationen über mehrere Seitenaufrufe hinweg, zum Beispiel eine gewählte Darstellungsvariante, eine persönliche Begrüßung oder ein gemerktes Einverständnis. Auf dieser Seite geht es nur um das Lesen und Schreiben der Cookies selbst. Wie Sie die Einwilligung des Nutzers prüfen, ist in $wsConsent beschrieben.
Hinweis: Das Setzen von Cookies kann je nach Art (technisch notwendig vs. Marketing/Tracking) eine Einwilligung des Nutzers erfordern. Prüfen Sie mit $wsConsent.checkAllowed() die Zustimmung, bevor Sie nicht-notwendige Cookies setzen.
Grundkonzept
Cookies folgen immer demselben Ablauf: Setzen → Lesen → Reagieren.Bevor Sie einen Cookie lesen können, muss er zuerst gesetzt werden. Gesetzt wird ein Cookie immer durch ein Ereignis. Typische Auslöser sind:
- eine Benutzeraktion (Klick auf einen Toggle oder Link),
- ein Zustand (der Kunde loggt sich ein),
- eine Abhängigkeit (ein bestimmtes Kundendatenfeld ist vorhanden),
- der Einstiegsweg (Aufruf über einen Kampagnen-Link oder Referrer).
Der Template-Code wird beim Seitenaufbau ausgeführt, nicht beim Klick. Ein Cookie wird also nicht im Moment des Klicks gesetzt, sondern erst dann, wenn der Klick eine neue Anfrage auslöst und das Template dabei erneut ausgeführt wird. Planen Sie das Setzen deshalb immer entlang eines Seitenaufrufs ein.
Namensschema (gilt für alle Methoden)
Der Shop benennt eigene Cookies automatisch um, und zwar nach dem Schemawsvx_<shopId>_cookie<name>. Aus setCookie("test", …) im Shop example wird im Browser das Cookie wsvx_example_cookietest. In den Methoden arbeiten Sie immer nur mit dem kurzen Namen (test), das Präfix ergänzt der Shop selbst. So vermeiden Sie Konflikte mit anderen Cookies.
Setzen und Lesen verwenden dasselbe Schema. Ein mit setCookie("test", …) gesetztes Cookie können Sie also direkt mit getCookie("test") wieder auslesen, ohne sich um den langen Namen kümmern zu müssen.
Ausnahme: Extern gesetzte CookiesCookies, die nicht vom Shop gesetzt wurden (z.B. über eigenes JavaScript, ein Drittanbieter-Tool oder ein Cookie-Banner), behalten ihren Original-Namen. Das automatische Schema würde hier ins Leere greifen. Wenn Sie ein solches Cookie auslesen möchten, übergeben Sie bei getCookie die Option
keepNameAsIs: true, damit der Name unverändert verwendet wird. Zum Setzen, Aktualisieren oder Löschen ist diese Option nicht vorgesehen, da externe Cookies in der Regel von dem Tool verwaltet werden, das sie gesetzt hat.
Modulübersicht
Beispiel / Ausschnitt über$wsCookie
"ƒ()" kennzeichnet eine Funktion.
Methoden in der Übersicht
| Methode | Rückgabe-Typ | Beschreibung |
|---|---|---|
getCookie() | string | Liest den Wert eines Cookies anhand seines Namens. |
setCookie() | – | Setzt ein neues Cookie. |
updateCookie() | string | Aktualisiert den Wert eines bestehenden Cookies. |
deleteCookie() | – | Löscht ein Cookie anhand seines Namens. |
Templates
Alle vier Methoden sind Template-Funktionen und stehen in jedem.htm-Template zur Verfügung. Den typischen Ablauf (Setzen → Lesen → Reagieren) beschreibt der Abschnitt Grundkonzept.
Variablen
Für$wsCookie stehen keine Variablen zur Verfügung.
Methoden
$wsCookie.getCookie()
Liest den Wert eines Cookies anhand seines Namens. Signatur$wsCookie.getCookie(name, [options])
Rückgabestring – Wert des Cookies. Der Wert ist leer, wenn kein Cookie mit diesem Namen existiert.
Parameter
| Name | Typ | Pflicht | Standard | Beschreibung |
|---|---|---|---|---|
name | string | ja | – | Kurzer Name des Cookies, ohne Präfix. |
options | map | nein | – | keepNameAsIs (bool) – verwendet den Namen unverändert, ohne das automatische Schema. Nötig für extern gesetzte Cookies (siehe Grundkonzept). |
$wsCookie.setCookie()
Setzt ein neues Cookie. Signatur$wsCookie.setCookie(name, value, [age])
Rückgabe– (kein Rückgabewert) Parameter
| Name | Typ | Pflicht | Standard | Beschreibung |
|---|---|---|---|---|
name | string | ja | – | Kurzer Name des Cookies, ohne Präfix. |
value | string, int, float, list, map, bool | ja | – | Wert des Cookies. Komplexe Werte (list, map) werden intern automatisch als JSON gespeichert. |
age | int | nein | Session | Gültigkeitsdauer in Sekunden. Ohne Angabe wird ein Session-Cookie gesetzt, das am Ende der Browser-Sitzung verfällt. Maximal 10 Jahre. Beispiel: 31536000 = 365 Tage. |
$wsCookie.updateCookie()
Aktualisiert den Wert eines bestehenden Cookies. Signatur$wsCookie.updateCookie(name, value)
Rückgabestring – neuer Wert des Cookies.
Parameter
| Name | Typ | Pflicht | Standard | Beschreibung |
|---|---|---|---|---|
name | string | ja | – | Kurzer Name des Cookies, ohne Präfix. |
value | string, int, float, list, map, bool | ja | – | Neuer Wert des Cookies. |
$wsCookie.deleteCookie()
Löscht ein Cookie anhand seines Namens. Intern wird die Lebensdauer dabei auf-1 gesetzt, wodurch der Browser das Cookie sofort verwirft.
Signatur$wsCookie.deleteCookie(name)
Rückgabe– (kein Rückgabewert) Parameter
| Name | Typ | Pflicht | Standard | Beschreibung |
|---|---|---|---|---|
name | string | ja | – | Kurzer Name des Cookies, ohne Präfix. |
Aktionen
Für$wsCookie stehen keine Aktionen zur Verfügung.
Beispiele
Die folgenden Beispiele sind von einfachen zu komplexeren Fällen geordnet: vom Zustand über die Benutzeraktion und den Einstiegsweg bis hin zum extern gesetzten Cookie.Persönliche Begrüßung (WelcomeBack-Cookie)
Auslöser ist hier der Zustand “Login”. Der Kunde wird beim Aufruf des Shops persönlich begrüßt, auch wenn er nicht eingeloggt ist, sofern er sich zuvor einmal eingeloggt hat. So bleibt eine persönliche Note erhalten, ohne dass der Kunde dauerhaft angemeldet sein muss. Schritt 1: Cookie beim Login setzen Sobald sich der Kunde eingeloggt hat, wird sein Anzeigename im Cookie gespeichert. Fehlt der Anzeigename oder ist er leer, wird die E-Mail-Adresse verwendet. Der dritte Parameter gibt die Gültigkeitsdauer in Sekunden an (hier 365 Tage), damit die Begrüßung über einen längeren Zeitraum erhalten bleibt.Wiederkehrende Kunden sehen ihre persönliche Begrüßung, bis das Cookie abläuft oder gelöscht wird.
Darstellungsvariante (z. B. Darkmode) speichern
Auslöser ist hier eine Benutzeraktion, nämlich ein Klick. Da WEBSALE nicht mit einem Theme-System arbeitet, müssen Sie eine Darstellungsvariante selbst erstellen. Dazu legen Sie die Wahl des Nutzers in einem Cookie ab und laden beim Seitenaufbau das passende Stylesheet. Schritt 1: Auslöser bereitstellen Der Nutzer wählt die Variante über einen Link. Der Klick löst einen Seitenaufruf aus, erst dabei kann der Wert gesetzt werden (siehe Zeitpunkt der Ausführung).Die gewählte Variante bleibt über alle Seitenaufrufe hinweg erhalten, bis der Nutzer sie wechselt.
Onsite-Personalisierung: zielgruppenspezifische Inhalte
Auslöser ist hier der Einstiegsweg, also ein Kampagnen-Link, über den der Besucher in den Shop kommt. Anders als die persönliche Begrüßung ist dies echte Onsite-Personalisierung: Sie spielen abhängig von einem Merkmal des Besuchers unterschiedliche Inhalte auf den Shop-Seiten aus. Das Szenario: Ein Tierbedarfs-Shop verschickt getrennte Newsletter an Katzen- und Hundehalter. Über den Link im Newsletter merkt sich der Shop die Zielgruppe und zeigt fortan passende Inhalte. Schritt 1: Kampagnen-Link im Newsletter Die Links im Newsletter tragen die Zielgruppe als Parameter:Besucher aus dem Katzen-Newsletter sehen bei jedem Aufruf die Katzen-Inhalte, Besucher aus dem Hunde-Newsletter die Hunde-Inhalte. Alle anderen sehen den Standardinhalt.
Hinweis: Der Cookie-Wert ist im Browser lesbar und kann vom Nutzer verändert werden. Verwenden Sie die Zielgruppe daher nur zur Anzeige von Inhalten, nicht für sicherheitsrelevante Entscheidungen wie Preise oder Zugriffsrechte. Da es sich nicht um ein technisch notwendiges Cookie handelt, prüfen Sie zuvor die Einwilligung des Nutzers.
Extern gesetztes Cookie lesen
Auslöser ist hier ein Cookie, das außerhalb des Shops gesetzt wurde, beispielsweise per eigenem JavaScript oder durch ein Tool eines Drittanbieters. Solche Cookies behalten ihren ursprünglichen Namen und werden nicht automatisch umbenannt. Um sie auszulesen, übergeben SiekeepNameAsIs: true. Andernfalls sucht der Shop nach dem umbenannten Namen und findet das Cookie nicht.
Im Beispiel hat ein per JavaScript gesetztes Flag vermerkt, dass ein Info-Popup bereits gesehen wurde:
Das Popup erscheint nur, solange das extern gesetzte Flag fehlt.
Weiterführende Links
- $wsConsent – Einwilligung des Nutzers prüfen, bevor Sie nicht-notwendige Cookies setzen.
