$wsInventory-Modul lesen Sie Lagerbestände und Verfügbarkeiten von Produkten sowie die Reservierungszeit eines Warenkorb-Eintrags. Typische Anwendungsfälle sind Ampel-Anzeigen (grün/gelb/rot), Verfügbarkeitshinweise auf Produktseiten und der ablaufende Reservierungs-Timer im Warenkorb.
Auf dieser Seite geht es um das Lesen und Anzeigen von Bestandsdaten. Eine Reservierung kann über die Aktion InventoryReserve ($wsActions) verlängert werden. Die Storefront-API Lagerbestand behandelt serverseitige Bestandsdaten.
Grundkonzept
$wsInventory liefert zwei verschiedene Datenpunkte:
load(productId)– die Bestandsdaten eines Produkts (Verfügbarkeit, Stückzahl, Ampelstatus).loadReservation(basketItemId)– die verbleibende Reservierungszeit eines Warenkorb-Eintrags.
Zuerst auf aktive Lagerverwaltung prüfen
Die Bestandsdaten sind nur aussagekräftig, wenn für das Produkt die Lagerverwaltung aktiv ist. Prüfen Sie deshalb immer zuerstactive, bevor Sie Stückzahl, Ampel oder Lieferstatus anzeigen, ansonsten zeigen Sie Werte an, die für dieses Produkt gar nicht gepflegt werden.
Ampel-Logik
state fasst die Verfügbarkeit als Ampel zusammen: green (ausreichend vorrätig), yellow (wenige Stück) und red (ausverkauft oder sehr knapp). Damit zeigen Sie dem Kunden auf einen Blick, wie es um die Lieferbarkeit steht, ohne selbst Schwellen zu berechnen.
Reservierungs-Lebenszyklus
Wird ein Produkt in den Warenkorb gelegt, ist es für eine bestimmte Zeit reserviert.loadReservation() liefert die verbleibende Zeit in Sekunden (duration). Läuft sie ab (duration <= 0), kann der Kunde über die Aktion InventoryReserve erneut reservieren.
Modulübersicht
Beispiel / Ausschnitt über$wsInventory
"ƒ()" kennzeichnet eine Funktion.
Methoden in der Übersicht
| Methode | Rückgabe-Typ | Beschreibung |
|---|---|---|
load() | map | Lädt die Lagerbestandsdaten eines Produkts. |
loadReservation() | map | Lädt die Reservierungsdaten eines Warenkorb-Eintrags. |
Templates
Bestands- und Verfügbarkeitsinformationen werden typischerweise dort geladen, wo Produkte erscheinen: Startseite, Kategorieliste, Suchergebnisse, Produktdetailseite und Warenkorb.Variablen
Für$wsInventory stehen keine eigenen Variablen zur Verfügung. Die Daten werden über die Methoden geladen.
Methoden
$wsInventory.load()
Lädt die Lagerbestandsdaten eines Produkts. Signatur$wsInventory.load(productId)
Rückgabemap – Lagerbestandsdaten (siehe Tabelle).
Parameter
| Name | Typ | Pflicht | Beschreibung |
|---|---|---|---|
productId | string | ja | ID des Produkts. |
| Eigenschaft | Typ | Beschreibung |
|---|---|---|
active | bool | true, wenn die Lagerverwaltung für dieses Produkt aktiv ist. |
amount | int | Verfügbare Stückzahl (kann null sein, wenn der Bestand nicht gezählt wird). |
amountInStock | int | Am Lager befindliche Menge (häufig null; im Test nur bei ausverkauften Produkten als 0 beobachtet). |
amountNotInStock | int | Nicht am Lager befindliche Menge (häufig null). |
state | string | Ampelstatus: green, yellow oder red. |
soldOut | bool | true, wenn das Produkt ausverkauft ist. |
deliveryText | string | Lieferstatus-Text (z. B. „Nur noch wenige Stück auf Lager”). |
messageLimit | int | Stückzahl, ab der deliveryText angezeigt wird. |
splitDelivery | bool | true, wenn auch bei Teillieferung bestellt werden kann. |
$wsInventory.loadReservation()
Lädt die Reservierungsdaten eines Warenkorb-Eintrags. Signatur$wsInventory.loadReservation(basketItemId)
Rückgabemap – Reservierungsdaten.
Parameter
| Name | Typ | Pflicht | Beschreibung |
|---|---|---|---|
basketItemId | string | ja | ID des Warenkorb-Eintrags (Eintrags-Hash, siehe $wsBasket). |
| Eigenschaft | Typ | Beschreibung |
|---|---|---|
duration | int | Verbleibende Reservierungszeit in Sekunden (<= 0 bedeutet abgelaufen). |
reservedUntil | string | Zeitpunkt des Ablaufs (ISO 8601, UTC; einen date-Filter gibt es nicht). |
Aktionen
$wsInventory selbst stellt keine Aktionen bereit. Eine abgelaufene Reservierung wird über die $wsActions-Aktion InventoryReserve erneuert (siehe Beispiel).
Beispiele
Verfügbarkeit als Ampel anzeigen
Prüft zuerstactive und zeigt dann den Ampelstatus farbig an.
Bei aktiver Lagerverwaltung erscheint je nach
state ein grüner, gelber oder roter Hinweis.
Reservierungszeit als Countdown anzeigen
Rechnet die Sekunden ausduration in Minuten und Sekunden um.
Solange die Reservierung läuft, sieht der Kunde die verbleibende Zeit. Danach den Ablauf-Hinweis.
Reservierung verlängern
Ist die Reservierung abgelaufen, bietet dieses Beispiel über die AktionInventoryReserve eine Neureservierung an.
Bei abgelaufener Reservierung erscheint ein „Neu reservieren”-Button. Nach erfolgreicher Aktion die Bestätigung.
Weiterführende Links
- $wsActions – stellt die Aktion
InventoryReservezum Verlängern einer Reservierung bereit. - $wsBasket – liefert die Warenkorb-Einträge, deren ID
loadReservation()erwartet. - $wsStores – Filialfinder, relevant für die StorageID bei Click & Collect.
- Storefront-API Lagerbestand – serverseitiger Zugriff auf Bestandsdaten.
