Skip to main content
Das $wsStore-Modul ist ein Key-Value-Store (Schlüssel-Wert-Speicher) für das Frontend. Darüber lassen sich beliebige Daten unter einem frei wählbaren Schlüssel ablegen, später wieder auslesen oder gezielt löschen. Es ist das passende Werkzeug überall dort, wo Informationen benötigt werden, die das Shopsystem im Standard nicht vorhält.

Modulübersicht

Beispiel / Ausschnitt über $wsStore
JSON-Ausgabe
Anmerkung: "ƒ()" kennzeichnet eine Funktion. Methoden in der Übersicht

Methoden

$wsStore.set()

Speichert einen beliebigen Wert unter einem Schlüssel. Der Wert kann später über get() wieder abgerufen werden. Optional kann eine Gültigkeitsdauer (ttl) in Sekunden angegeben werden, nach der der Eintrag automatisch entfernt wird. Ohne ttl gilt ein Standardwert von 365 Tagen. Signatur
$wsStore.set(key, value, ttl)

Rückgabe

Parameter Beispiel - Session-Marker setzen, damit ein Produktaufruf nur einmal pro Besucher gezählt wird Um auf der Produktseite die Anzeige “X mal in den letzten 24 Stunden angesehen” zu realisieren, muss verhindert werden, dass derselbe Besucher den Zähler durch mehrfaches Neuladen der Seite verfälscht. Dafür wird pro Besucher ein Marker gesetzt - solange dieser Marker existiert, wird der Produktaufruf für diesen Besucher nicht erneut gezählt. $wsSession.id ist die eindeutige Session-ID des aktuellen Besuchers. Sie wird automatisch vom Shopsystem bereitgestellt und muss nicht selbst vergeben werden. 14400 Sekunden entsprechen 4 Stunden – so lange gilt der Marker.
Ergebnis
Ab dem Setzen liefert $wsStore.get('productViewSession-<ProduktID><SessionID>') für 4 Stunden den Wert true zurück. Der eigentliche Zähler, der dem Besucher die Anzeige “X mal in den letzten 24 Stunden angesehen” ausgibt, wird über increment() gepflegt. Erst nach Ablauf der 4 Stunden darf der Produktaufruf desselben Besuchers erneut in den Zähler einfließen.

$wsStore.get()

Gibt den Wert zurück, der zuvor mit set() unter dem angegebenen Schlüssel gespeichert wurde. Ist kein Eintrag vorhanden oder ist der Eintrag abgelaufen, wird null zurückgegeben. Signatur
$wsStore.get(key)
Rückgabe
any - Der gespeicherte Wert, oder null , wenn kein Eintrag vorhanden ist oder der Eintrag abgelaufen ist.
Parameter Beispiel - Anzeige “X mal in den letzten 24 Stunden angesehen” auf der Produktseite Um dem Besucher auf einer Produktdetailseite eine Anzeige wie “X mal in den letzten 24 Stunden angesehen” auszugeben, wird der zuvor mit increment() hochgezählte Wert ausgelesen. Existiert noch kein Eintrag (weil das Produkt in den letzten 24 Stunden noch nicht aufgerufen wurde), liefert get() null und die Anzeige wird übersprungen.
Ergebnis, wenn $productViews den Wert 10 enthält

$wsStore.delete()

Löscht den Eintrag für den angegebenen Schlüssel aus dem Store. Nach dem Löschen gibt get() für diesen Schlüssel null zurück. Signatur
$wsStore.delete(key)

Rückgabe\

Parameter

$wsStore.increment()

Erhöht einen Zählerwert unter dem angegebenen Schlüssel um den angegebenen Wert. Existiert der Schlüssel noch nicht, wird er mit dem Wert von amount angelegt. Diese Methode sollte bevorzugt gegenüber einer Kombination aus get() und set() verwendet werden, wenn ein Zähler erhöht werden soll.

Das liegt daran, dass get() und set() das Hochzählen in zwei Schritten durchführen - erst den aktuellen Wert lesen, dann den erhöhten Wert speichern. Rufen zwei Besucher die Seite gleichzeitig auf, lesen beide in Schritt 1 denselben Wert, beispielsweise 5. Beide speichern anschließend 6. Der Zähler steht am Ende auf 6, obwohl er auf 7 stehen müsste.
Mit increment() passiert das Lesen und erhöhen in einem einzigen Schritt, sodass beide Aufrufe korrekt gezählt werden. Signatur
$wsStore.increment(key, amount, ttl)
Parameter Beispiel - Produktaufrufe zählen, einmal pro Session Ziel ist die Anzeige “X mal in den letzten 24 Stunden angesehen” auf der Produktseite. Damit derselbe Besucher den Zähler nicht durch mehrfaches Neuladen verfälscht, wird pro Session zusätzlich ein Marker gesetzt, der verhindert, dass derselbe Besucher das Produkt mehrfach zählt. $wsSession.id ist die eindeutige Session-ID des aktuellen Besuchers. Sie wird automatisch vom Shopsystem bereitgestellt und muss nicht selbst vergeben werden.
Ergebnis
Der Zähler productViews-<ProduktID> wird pro Besucher höchstens einmal alle 4 Stunden erhöht. Die anschließende Anzeige mit get() zeigt dem Besucher z.B.: “7 mal in den letzten 24 Stunden angesehen”. Nach Ablauf von 24 Stunden startet der Zähler automatisch wieder bei null.