Skip to main content

Documentation Index

Fetch the complete documentation index at: https://dokumentation.websale.de/llms.txt

Use this file to discover all available pages before exploring further.

Mit dem $wsInventory Modul können Sie auf Lagerbestände und Verfügbarkeiten von Produkten zugreifen. Typische Anwendungsfälle sind Ampel-Anzeigen (grün/gelb/rot), Verfügbarkeitsprüfungen auf Produktseiten oder Reservierungszeiten im Warenkorb. In diesem Abschnitt erfahren Sie, wie Sie Lagerbestandsdaten laden und anzeigen können.

Modulübersicht

Beispiel / Ausschnitt über $wsInventory
{{= $wsInventory | json }}
JSON-Ausgabe
{
  "load": "ƒ()",
  "loadReservation": "ƒ()"
}
Anmerkung: "ƒ()" kennzeichnet eine Funktion. Methoden in der Übersicht
MethodeRückgabe-TypBeschreibung
load()mapLädt die Lagerbestandsdaten eines Produkts.
loadReservation()mapLädt die Reservierungsdaten eines Warenkorb-Eintrags.

Templates

Typischerweise werden Informationen zum Lagerbestand und zur Verfügbarkeit gemeinsam mit den Produkten geladen – wie zum Beispiel auf der Startseite, der Kategorieliste, den Suchergebnissen oder im Warenkorb.

Variablen

Für $wsInventory stehen keine direkten Variablen zur Verfügung. Die Daten werden über Methoden geladen.

Methoden

$wsInventory.load()

Lädt die Lagerbestandsdaten eines Produkts. Signatur
$wsInventory.load(productId)
Rückgabe
map - Map mit Lagerbestandsdaten.
Parameter
NameTypPflichtBeschreibung
productIdstringjaID des Produkts
Beispiel, das Lagerbestandsdaten lädt und ausgibt.
{{ var $myInventoryInfo = $wsInventory.load($product.id) }} 

{{ if $myInventoryInfo.active }} 
  {{= $myInventoryInfo.deliveryText }} 
  Verfügbar: {{= $myInventoryInfo.amount }} Stück
{{ /if }}
Mit Verwendung der Funktion $wsInventory.load() stehen verschiedene Variablen zur Verfügung, um Daten zum Lagerbestand abzurufen und auszugeben. Nachfolgend eine Übersicht, welche Variablen verfügbar sind.Lagerbestandsdaten (Rückgabe von $wsInventory.load() )Zunächst ist es notwendig, die Map mit den Lagerbestandsdaten, wie im obigen Beispiel dargestellt, einer lokalen Variable zuzuweisen. Diese kann anschließend an verschiedenen Stellen im Template verwendet werden.Lagerbestandsdaten in der Übersicht
VariableTypBeschreibung
activebooltrue wenn Lagerverwaltung für dieses Produkt aktiv ist.
amountintVerfügbare Stückzahl.
deliveryTextstringLieferstatus-Text (z.B. “Nur noch wenige Stück auf Lager”).
messageLimitintStückzahl, ab der der Hinweistext (deliveryText) angezeigt wird.
soldOutbooltrue wenn das Produkt ausverkauft ist.
splitDeliverybooltrue wenn das Produkt auch bei Teillieferungen bestellt werden kann (z.B. bei nicht vollständig verfügbarer Menge).
statestringAmpelstatus der Verfügbarkeit: green (ausreichend vorrätig), yellow (wenige Stück), red (ausverkauft oder sehr knapp).
storagestringOptionaler Parameter
Wird im Zusammenhang mit dem Filialfinder und/oder Click & Collect eingesetzt, um den Lagerbestand eines konkreten Ladengeschäfts gezielt in die Verfügbarkeitsprüfung einzubeziehen.
StorageID (Lagerbestands-ID) zur Berücksichtigung von Filialbeständen im Filialfinder bzw. für Click & Collect.
Wird der Parameter angegeben, werden die Stückzahlen des angegebenen Ladengeschäfts zusätzlich zum regulären Lagerbestand in der Verfügbarkeits-/Bestandsprüfung berücksichtigt (z. B. „in Filiale verfügbar“).
Wird der Parameter nicht angegeben, wird – wie bisher – ausschließlich der Lagerbestand des aktuellen Subshops geladen (gleiches Verhalten wie zuvor, keine Template-Anpassungen erforderlich).

$wsInventory.loadReservation()

Lädt die Reservierungsdaten eines Warenkorb-Eintrags. Signatur
$wsInventory.loadReservation(basketItemId)
Rückgabe
map - Reservierungsdaten mit folgenden Attributen:
AttributTypBeschreibung
durationintVerbleibende Reservierungszeit in Sekunden.
Parameter
NameTypPflichtBeschreibung
basketItemIdstringjaID des Warenkorb-Eintrags.
Beispiel, das Reservierungsdaten lädt.
{{ var $reservation = $wsInventory.loadReservation($basketItem.id) }}

{{ if $reservation }}
  {{ if $reservation.duration > 0 }}
    <p>Reserviert für {{= $reservation.duration }} Sekunden</p>
  {{ else }}
    <p>Reservierung abgelaufen</p>
  {{ /if }}
{{ /if }}

Aktionen

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

Beispiele für die Anzeige vom Lagerbestand

Auf Lagerbestandsverwaltung prüfen

In diesem Beispiel wird geprüft, ob für dieses Produkt die Lagerbestandsverwaltung aktiv ist.
{{ var $inventoryInfo = $wsInventory.load($product.id) }}
{{ if $inventoryInfo.active }}
  <p>Für dieses Produkt ist die Lagerverwaltung aktiv</p>
{{ /if }}

Lagerbestandsdaten

In diesem Beispiel werden die produktspezifischen Daten angezeigt.
<p>Lieferstatus-Text: {{= $inventoryInfo.deliveryText }}</p>
<p>Stückzahl: {{= $inventoryInfo.amount }}</p>
<p>Bestellbar: {{ if $inventoryInfo.soldOut }} Nein {{ else }} Ja {{ /if }}</p>

Ampelstatus Anzeigen

In diesem Beispiel wird die Verfügbarkeit des Produkts geprüft, sodass der Kunde direkt erkennen kann, ob es verfügbar, fast ausverkauft oder nicht lieferbar ist.
{{ var $inventoryInfo = $wsInventory.load($product.id) }}
{{ if $inventoryInfo.active }}
   Ampel: {{= $inventoryInfo.state }}
   {{ switch $inventoryInfo.state }}
      {{ case "red"}}
         <span style="background-color: red;">ROT</span>
      {{ case "yellow"}}
         <span style="background-color: yellow;">GELB</span>
      {{ case "green"}}
         <span style="background-color: green;">GRÜN</span>
   {{ /switch }}
{{ /if }}

Anzeige für die Reservierungszeit

Nachdem einem Produkt in den Warenkorb gelegt wurde, kann das Produkt für eine bestimmte Zeit reserviert sein. In diesem Beispiel wird im Warenkorb die Reservierungszeit angezeigt.
{{ if $reservation }}
   {{ if $reservation.duration > 0 }}
      {{ var $sec = $reservation.duration % 60 }}
      {{ var $min= ( $reservation.duration - $sec ) / 60 }}
      Das Produkt ist für Sie noch
      {{ if $min > 0 }}
         <strong>{{= $min }} Minuten</strong> und
      {{ /if }}
      <strong>{{= $sec }} Sekunden</strong> lang reserviert
   {{ else }}
      Leider ist Ihre Reservierung abgelaufen.
   {{ /if}}
{{ /if }}

Reservierungszeit verlängern

Damit der Kunde noch etwas mehr Zeit zum entscheiden hat, kann die Reservierungszeit im Warenkorb verlängert werden.
{{var $reservation = $wsInventory.loadReservation($basketItem.id)}}
{{ if $reservation }}
   {{ var $inventoryReserveAction = $wsActions.create("InventoryReserve", tag=$basketItem.id) }}
   {{ if $reservation.duration > 0 }}
      Das Produkt ist für Sie reserviert
   {{ else }}
      Leider ist Ihre Reservierung abgelaufen.
      <form method="post" action="{{ $wsViews.viewUrl('basket.htm') }}">
         <input type="hidden" name="wscsrf" value="{{= $inventoryReserveAction.csrf }}">
         <input type="hidden" name="wsact" value="{{= $inventoryReserveAction.id }}">
         <input type="hidden" name="wstarget" value="{{= $wsViews.viewUrl('basket.htm') }}">
         <input type="hidden" name="basketItemId" value="{{= $basketItem.id }}">
         <button>Neu reservieren</button>
      </form>
   {{ /if}}
   {{ if $inventoryReserveAction.success }}
      <p>Menge wurde erfolgreich neu reserviert.</p>
   {{ /if }}
   {{ if $inventoryReserveAction.error }}
      <p>Die Reservierung konnte nicht verlängert werden</p>
   {{ /if }}
{{ /if }}
Weitere Praxisbeispiele finden Sie hier: Lagerbestand