$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.totalodertotalQuantity. - 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).
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.
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
| Variable | Rückgabe-Typ | Beschreibung |
|---|---|---|
totalQuantity | float | Gesamtmenge aller Produkte im Warenkorb. |
total | float | Gesamtbetrag des Warenkorbs. |
totalNet | float | Nettobetrag des Warenkorbs. |
totalGross | float | Bruttobetrag des Warenkorbs. |
totalTax | float | Mehrwertsteuer des Warenkorbs. |
totalCommission | float | Gesamt-Provision. |
totalWeight | float | Gesamtgewicht aller Produkte im Warenkorb. |
lastBasketAction | string | Letzte Aktion am Warenkorb (z. B. "add", "remove", "update"). |
lastUpdatedItem | map | Zuletzt geänderter Artikel (Struktur siehe unten). |
items | array | Liste aller Warenkorb-Einträge (Struktur siehe unten). |
isTaxExempt | bool | Ob der aktuelle Warenkorb steuerbefreit ist. |
totalTaxDeduction | float | Betrag der abgezogenen Steuer; nur > 0 bei aktiver Steuerbefreiung. |
totalPreDeduction | float | Gesamtbetrag vor dem Steuerabzug. |
billingCountry | string | Länderkennung der Rechnungsadresse (z. B. "DE"). |
shippingCountry | string | Länderkennung der Lieferadresse (z. B. "DE"). |
usedExemptionRule | string | Aktive Steuerprüfregel ("shippingOnly" oder "shippingAndBilling"). |
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 mitlastBasketAction, 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
| Eigenschaft | Rückgabe-Typ | Beschreibung |
|---|---|---|
id | string | Produkt-ID des Artikels. |
productNumber | string | Artikelnummer des Artikels. |
price | float | Preis des Artikels. |
quantity | float | Menge des Artikels. |
taxId | string | Steuersatz-ID des Artikels. |
categories | array | Kategorie-IDs, in denen sich der Artikel befindet. |
parentCategories | array | Übergeordnete Kategorie-IDs des Artikels. |
freeFields | map | Freie Felder des Artikels. |
voucherIds | array | Angewendete Gutschein-IDs für den Artikel. |
$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
| Eigenschaft | Rückgabe-Typ | Beschreibung |
|---|---|---|
id | string | Warenkorb-ID des Eintrags. |
product | map | Das zugehörige Produkt des Eintrags (Stammdaten wie Name, Bild, ID). |
quantity | float | Menge des Eintrags. |
price | float | Einzelpreis des Eintrags. |
orgPrice | float | Ursprünglicher Preis vor Rabatten. |
discountPrice | float | Rabattierter Preis (falls ein Rabatt aktiv ist). |
oneTimeFee | float | Einmalige Gebühr (z. B. Einrichtungskosten). |
total | float | Gesamtbetrag des Eintrags (Positionssumme). |
totalNet | float | Nettobetrag des Eintrags. |
totalGross | float | Bruttobetrag des Eintrags. |
totalTax | float | Mehrwertsteuer des Eintrags. |
freeFields | map | Freie Felder (z. B. Beschriftungen, Kommentare). |
voucherIds | array | Angewendete Gutschein-IDs für diesen Eintrag. |
$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 mittotalTaxDeduction 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.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 überitems 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.
Jede Position wird mit Bild, Name, Menge und Preisen aufgelistet. Darunter erscheinen Versandkosten und Gesamtsumme einmalig.
Link zur Warenkorbseite
Erzeugt einen Link auf die Warenkorbseite, die über das View-Templatebasket.htm umgesetzt ist.
Der Link führt zur Warenkorbseite des Shops.
Weiterführende Links
- Aktionen → Basket – den Warenkorb verändern (hinzufügen, ändern, entfernen), weil
$wsBasketselbst 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.
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.
Jede Position wird mit Bild, Name, Menge und Preisen aufgelistet. Darunter erscheinen Versandkosten und Gesamtsumme einmalig.
Link zur Warenkorbseite
Erzeugt einen Link auf die Warenkorbseite, die über das View-Templatebasket.htm umgesetzt ist.
Der Link führt zur Warenkorbseite des Shops.
Weiterführende Links
- Aktionen → Basket – den Warenkorb verändern (hinzufügen, ändern, entfernen), weil
$wsBasketselbst 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.
