Skip to main content
Mit dem $wsBasket-Modul lesen Sie die Daten des aktuellen Warenkorbs im Frontend. Die enthaltenen Produkte (Positionen), deren Mengen und Preise sowie die berechneten Gesamtwerte und Steuerinformationen. Auf dieser Seite geht es um das Lesen der Warenkorb-Daten. Alles, was den Warenkorb verändert (Produkt hinzufügen, Menge ändern, entfernen), ist unter Aktionen → Basket beschrieben, weil dort die auslösenden Aktionen und ihre Parameter dokumentiert sind.

Grundkonzept

Der Warenkorb speichert die vom Kunden ausgewählten Produkte und berechnet automatisch die Mengen, Preise und Steuern. Über dieses Modul können Sie diese Werte auslesen und anzeigen.

Aufbau

Die Warenkorb-Daten sind in drei Ebenen verschachtelt:
  • Warenkorb ($wsBasket) - die Gesamtwerte über alle Positionen hinweg, z. B. total oder totalQuantity.
  • Positionen ($wsBasket.items) - eine Liste der Warenkorb-Einträge. Jeder Eintrag steht für ein Produkt im Warenkorb und hat eigene Werte wie Menge und Positionssumme.
  • Produkt (item.product) - innerhalb jeder Position befindet sich auch das zugehörige Produkt mit seinen Stammdaten (Name, Bild, ID).
Sie lesen also Summen vom Warenkorb, positionsbezogene Werte von der jeweiligen Position und Produktdetails vom Produkt der Position.

Steuerbefreiung

Mehrere Variablen bilden zusammen die Steuerbefreiung ab und gehören inhaltlich zusammen: isTaxExempt ist der primäre Schalter, totalTaxDeduction und totalPreDeduction liefern die Beträge für eine „abzgl. MwSt.”-Zeile, und usedExemptionRule zusammen mit billingCountry/shippingCountry zeigt, welche Adressen für die Prüfung herangezogen werden. Prüfen Sie für Steuerhinweise immer zuerst isTaxExempt.

Werbemittelkennzeichen

Ist die Werbemittelkennzeichnung im Shop aktiviert, trägt jede Position zusätzlich das erfasste Werbemittelkennzeichen. Dafür gibt es zwei Felder: insert liefert den reinen Code, itemNumberWithInsert die fertig zusammengesetzte Anzeige aus Produktnummer und Code in der konfigurierten Reihenfolge und mit dem konfigurierten Trennzeichen. Ist kein Code gesetzt, enthält itemNumberWithInsert einfach die reine Produktnummer. In der Regel reicht es, itemNumberWithInsert als Artikelnummer auszugeben - Position und Trennzeichen sind darin bereits berücksichtigt. Zusätzliche Ausgaben rund um das Werbemittelkennzeichen (beispielsweise ein separates Code-Label) gehören in {{ if $wsConfig.inserts.enabled }} … {{ /if }}, damit bei ausgeschalteter Funktion nichts erscheint. Die Einstellungen liefert $wsConfig.inserts.

Zeitpunkt und zuletzt geänderter Artikel

Der Template-Code läuft beim Seitenaufbau. $wsBasket enthält daher den Warenkorb-Zustand nach der zuletzt ausgeführten Aktion. lastBasketAction und lastUpdatedItem beschreiben diese letzte Änderung. Nützlich, um beispielsweise direkt nach dem Hinzufügen eine Rückmeldung wie „Produkt X wurde hinzugefügt” anzuzeigen.

Modulübersicht

Beispiel / Ausschnitt über $wsBasket
JSON-Ausgabe
Variablen des Warenkorbs (oberste Ebene)

Templates

Die Warenkorb-Daten lassen sich auf jeder Seite des Shops anzeigen. Übliche Darstellungen sind:
  • Offcanvas-Warenkorb: in einer Sidebar, als Flyout oder als OffCanvas-Element, für einen schnellen Überblick.
  • Warenkorb-Seite: eine detaillierte Übersicht mit Anpassungsmöglichkeiten.
  • Checkout und Bestellbestätigung: Darstellung während des Kaufprozesses und in Bestätigungs-E-Mails.

Variablen

$wsBasket.totalQuantity

Gibt die Gesamtmenge aller Produkte im Warenkorb aus.

$wsBasket.total

Gibt den Gesamtbetrag des Warenkorbs aus. Verwenden Sie ihn für die Endsumme in Warenkorb und Checkout.

$wsBasket.totalNet

Gibt den Nettobetrag des Warenkorbs aus.

$wsBasket.totalGross

Gibt den Bruttobetrag des Warenkorbs aus.

$wsBasket.totalTax

Gibt die Mehrwertsteuer des Warenkorbs aus. Nutzen Sie sie für eine separate Steuerzeile in der Summenübersicht.

$wsBasket.totalCommission

Gibt die Gesamt-Provision des Warenkorbs aus.

$wsBasket.totalWeight

Gibt das Gesamtgewicht aller Produkte im Warenkorb aus. Nützlich, um z. B. einen Versandkosten- oder Gewichtshinweis anzuzeigen.

$wsBasket.lastBasketAction

Gibt die zuletzt am Warenkorb durchgeführte Aktion aus (z. B. "add", "remove", "update"). Werten Sie sie aus, um nach einer Änderung eine passende Rückmeldung anzuzeigen.

$wsBasket.lastUpdatedItem

Gibt den zuletzt hinzugefügten oder geänderten Artikel aus. Verwenden Sie ihn zusammen mit lastBasketAction, um z. B. direkt nach dem Hinzufügen „Produkt X wurde hinzugefügt” anzuzeigen, ohne den ganzen Warenkorb durchsuchen zu müssen.

Eigenschaften von $wsBasket.lastUpdatedItem

$wsBasket.items

Gibt die Liste aller Warenkorb-Einträge (Positionen) aus. Über diese Liste iterieren Sie, um jede Position einzeln anzuzeigen.

Eigenschaften eines Eintrags in $wsBasket.items

$wsBasket.isTaxExempt

Gibt aus, ob der aktuelle Warenkorb steuerbefreit ist. Dies ist der primäre Indikator für eine Steuerbefreiung – nutzen Sie ihn, um z. B. einen Hinweis „Steuerbefreite Lieferung” einzublenden.

$wsBasket.totalTaxDeduction

Gibt den Betrag der abgezogenen Steuer aus. Der Wert ist nur größer als 0, wenn eine Steuerbefreiung aktiv ist. In Brutto-Shops stellen Sie damit z. B. eine Zeile „abzgl. MwSt.” dar.

$wsBasket.totalPreDeduction

Gibt den Gesamtbetrag vor dem Steuerabzug aus. Zusammen mit totalTaxDeduction zeigen Sie so den Betrag vor und nach dem Abzug.

$wsBasket.billingCountry

Gibt die Länderkennung der Rechnungsadresse aus (z. B. "DE" für Deutschland).

$wsBasket.shippingCountry

Gibt die Länderkennung der Lieferadresse aus (z. B. "DE" für Deutschland).

$wsBasket.usedExemptionRule

Gibt die aktive Steuerprüfregel aus. Mögliche Werte: "shippingOnly" (nur die Lieferadresse wird geprüft) oder "shippingAndBilling" (Liefer- und Rechnungsadresse werden geprüft). So erkennen Sie, welche Adressen über die Steuerbefreiung entscheiden.

Methoden

Für $wsBasket stehen keine Methoden zur Verfügung.

Aktionen

Aktionen, die den Warenkorb verändern (Produkt hinzufügen, Menge ändern, entfernen), sind separat dokumentiert: Aktionen → Basket.

Beispiele für den Datenzugriff

Prüfen, ob Produkte im Warenkorb liegen

Prüfen Sie zuerst, ob überhaupt Positionen vorhanden sind, bevor Sie den Warenkorb anzeigen, sonst zeigen Sie eine leere Liste.
Ergebnis
Bei gefülltem Warenkorb erscheint die Anzahl der Positionen, sonst ein Hinweis auf den leeren Warenkorb.

Produkte im Warenkorb anzeigen

Sind Positionen vorhanden, iterieren Sie über items und zeigen je Position Produktname, Menge und Preise. Die Gesamtsummen stehen außerhalb der Schleife weil sie sonst für jede Position erneut ausgegeben werden würden.
Ergebnis
Jede Position wird mit Bild, Name, Artikelnummer (inklusive Werbemittelkennzeichen, sofern erfasst), Menge und Preisen aufgelistet. Darunter erscheinen Versandkosten und Gesamtsumme einmalig.

Werbemittelkennzeichen separat ausgeben

Soll der reine Code zusätzlich zur Artikelnummer als eigenes Feld erscheinen, prüfen Sie zuerst über $wsConfig.inserts.enabled, ob die Funktion aktiv ist, damit bei ausgeschalteter Funktion nichts erscheint.
Ergebnis
Der Werbemittelcode erscheint nur bei aktiver Funktion und nur für Positionen, die einen Code tragen.
Erzeugt einen Link auf die Warenkorbseite, die über das View-Template basket.htm umgesetzt ist.
Ergebnis
Der Link führt zur Warenkorbseite des Shops.

  • Werbemittelkennzeichen – fachliche Übersicht der Werbemittelkennzeichnung: Erfassungswege, Auflösungslogik und Einrichtung.
  • Aktionen → Basket – den Warenkorb verändern (hinzufügen, ändern, entfernen), weil $wsBasket selbst nur liest.
  • $wsCheckout – liefert ergänzende Werte wie die Versandkosten (sum.shippingCost) für die Summenanzeige.
  • $wsViews – erzeugt die in den Beispielen genutzten Produkt- und View-URLs.
  • Praxisbeispiele Warenkorb – durchgängige Praxisbeispiele für Warenkorb-Funktionen.