Zum Hauptinhalt springen
Mit dem $wsCheckout-Modul lesen Sie alle Daten des Bestellvorgangs im Frontend aus. Darunter die gewählte Zahlungs- und Versandart, Rechnungs- und Lieferadresse, die Bestellsummen sowie den Validierungs- und Fehlerstatus. Auf dieser Seite geht es um das Lesen der Checkout-Daten. Alles, was den Checkout verändert (Adresse wählen, Zahlungsart setzen, Bestellung auslösen), ist unter Aktionen → Checkout beschrieben.

Grundkonzept

Der Checkout sammelt die Auswahl des Kunden (Zahlung, Versand, Adressen, Freifelder) und prüft fortlaufend, ob die Bestellung ausführbar ist. Über $wsCheckout lesen Sie diese Auswahl und den Prüfstatus, um den Bestellablauf zu gestalten und dem Kunden gezielt Rückmeldung zu geben.

Validierung

Für das Prüf-Feedback gibt es drei Ebenen, die unterschiedlich genau sind. Wählen Sie die Ebene nach dem, was Sie anzeigen wollen:
  • Gesamtstatus - isValid gibt an, ob die Bestellung insgesamt ausführbar ist. Nutzen Sie es beispielsweise, um den „Kaufen”-Button freizugeben oder zu sperren.
  • Feldzustand - fieldStates liefert pro Feld einen Zustand (untouched, empty, invalid, incompatible, valid). Nutzen Sie es beispielsweise, um ein Feld optisch zu markieren.
  • Konkrete Fehler - problems liefert je Feld eine Liste von Fehlern mit Code und Text. Nutzen Sie es beispielsweise, um dem Kunden zu sagen, wie der Fehler konkret zu lösen ist.

Sofort-Fehler und Fehler nach einer Aktion

Der Checkout kennt zwei Quellen für Fehler-Feedback:
  • $wsCheckout.problems.* - wird angezeigt, sobald ein Feld angewählt bzw. verlassen wurde, sofern show*BeforeSubmit in der Konfiguration auf true steht. Greift also schon, bevor der Kunde auf „Kaufen” klickt.
  • actionResponse-Fehler - stammen aus der Server-Antwort nach einer Aktion. Für die meisten Sektionen werden sie ungefiltert ausgegeben. Ausnahme: Bei Kundendatenfeldern und der Draft-Adresse gibt es kein problems.*, dort werden die actionResponse-Fehler über show*BeforeSubmit gefiltert.

Auswahl-IDs und Draft-Adressen

Die selected*-Variablen enthalten die ID der jeweils gewählten Option (z. B. die Adress-ID, die Sie an $wsAccount.loadAddress() übergeben). Legt der Kunde im Bestellablauf eine neue Adresse an, die noch nicht im Konto gespeichert ist, steht deren temporäre ID in draftBillAddressId bzw. draftShippingAddressId.

Grundkonzept

Der Checkout sammelt die Auswahl des Kunden (Zahlung, Versand, Adressen, Freifelder) und prüft fortlaufend, ob die Bestellung ausführbar ist. Über $wsCheckout lesen Sie diese Auswahl und den Prüfstatus, um den Bestellablauf zu gestalten und dem Kunden gezielt Rückmeldung zu geben.

Validierung

Für das Prüf-Feedback gibt es drei Ebenen, die unterschiedlich genau sind. Wählen Sie die Ebene nach dem, was Sie anzeigen wollen:
  • Gesamtstatus - isValid gibt an, ob die Bestellung insgesamt ausführbar ist. Nutzen Sie es beispielsweise, um den „Kaufen”-Button freizugeben oder zu sperren.
  • Feldzustand - fieldStates liefert pro Feld einen Zustand (untouched, empty, invalid, incompatible, valid). Nutzen Sie es beispielsweise, um ein Feld optisch zu markieren.
  • Konkrete Fehler - problems liefert je Feld eine Liste von Fehlern mit Code und Text. Nutzen Sie es beispielsweise, um dem Kunden zu sagen, wie der Fehler konkret zu lösen ist.

Sofort-Fehler und Fehler nach einer Aktion

Der Checkout kennt zwei Quellen für Fehler-Feedback:
  • $wsCheckout.problems.* - wird angezeigt, sobald ein Feld angewählt bzw. verlassen wurde, sofern show*BeforeSubmit in der Konfiguration auf true steht. Greift also schon, bevor der Kunde auf „Kaufen” klickt.
  • actionResponse-Fehler - stammen aus der Server-Antwort nach einer Aktion. Für die meisten Sektionen werden sie ungefiltert ausgegeben. Ausnahme: Bei Kundendatenfeldern und der Draft-Adresse gibt es kein problems.*, dort werden die actionResponse-Fehler über show*BeforeSubmit gefiltert.

Auswahl-IDs und Draft-Adressen

Die selected*-Variablen enthalten die ID der jeweils gewählten Option (z. B. die Adress-ID, die Sie an $wsAccount.loadAddress() übergeben). Legt der Kunde im Bestellablauf eine neue Adresse an, die noch nicht im Konto gespeichert ist, steht deren temporäre ID in draftBillAddressId bzw. draftShippingAddressId.

Modulübersicht

Beispiel / Ausschnitt über $wsCheckout
{{= $wsCheckout | json }}
JSON-Ausgabe (gekürzt)
{
  "accountType": "...",
  "customerData": { },
  "freeFields": [...],
  "guestMail": "...",
  "isExpressCheckoutLocked": false,
  "isPPCExpressCheckout": false,
  "isValid": false,
  "problems": {
    "billAddress": [...],
    "clearing": [...],
    "freeFields": [...],
    "general": [...],
    "payment": [...],
    "shippingAddress": [...],
    "shippingMethod": [...]
  },
  "selectedBillAddress": "...",
  "selectedPayment": "...",
  "selectedShippingAddress": "...",
  "selectedShippingMethod": "...",
  "selectedStoreId": 0,
  "sum": { },
  "useAlternativeShippingAddress": false,
  "verificationStatus": 0,
  "verificationStatusOptions": [...],
  "voucherAppliesPerItem": false,
  "fieldStates": { },
  "getAmountInSmallestUnit": "ƒ()",
  "getShippingMethodDisabledErrors": "ƒ()",
  "isFinished": "ƒ()",
  "isPending": "ƒ()",
  "isValidBillAddress": "ƒ()",
  "isValidPayment": "ƒ()",
  "isValidShippingAddress": "ƒ()",
  "isValidShippingMethod": "ƒ()",
  "itemVoucherDiscount": "ƒ()"
}
Anmerkung: "ƒ()" kennzeichnet eine Funktion. Variablen in der Übersicht
VariableRückgabe-TypBeschreibung
accountTypestringKontotyp: "guest", "new" oder "registered".
customerDatamapKundendaten-Felder, u. a. mit fieldGroups.
freeFieldsarrayFreie Checkout-Felder (Struktur siehe unten).
guestMailstringE-Mail eines Gastkontos.
selectedPaymentstringID der gewählten Zahlungsart.
selectedShippingMethodstringID der gewählten Versandart.
selectedBillAddressstringID der gewählten Rechnungsadresse.
selectedShippingAddressstringID der gewählten Lieferadresse.
draftBillAddressIdstringID einer temporären, noch nicht gespeicherten Rechnungsadresse.
draftShippingAddressIdstringID einer temporären, noch nicht gespeicherten Lieferadresse.
selectedPseudoCCstringPseudo-Kreditkarten-Token.
selectedStoreIdintID der gewählten Filiale (z. B. Click & Collect).
useAlternativeShippingAddressboolOb eine abweichende Lieferadresse aktiv ist.
isValidboolOb die Bestellung insgesamt ausführbar ist.
isExpressCheckoutLockedboolOb der Express-Checkout gesperrt ist (z. B. nach PayPal-Zahlung).
isPPCExpressCheckoutboolOb der PayPal-Commerce-Platform-Express-Checkout aktiv ist.
isPPCApplePayExpressCheckoutboolOb Apple Pay Express Checkout aktiv ist.
isPPCGooglePayExpressCheckoutboolOb Google Pay Express Checkout aktiv ist.
problemsmapKonkrete Fehler je Bereich (Struktur siehe unten).
fieldStatesmapZustand je Checkout-Feld (Werte siehe unten).
summapPreisinformationen zum Checkout (Struktur siehe unten).
verificationStatusintVerifizierungsstatus der Bestellung.
verificationStatusOptionsarrayVerfügbare Verifizierungsstatus-Optionen.
voucherAppliesPerItemboolOb Gutscheine pro Artikel angewendet werden.
restUntilFreeDeliveryfloatVerbleibender Betrag bis zur Grenze für kostenlosen Versand (0, wenn erreicht).
isOrderBlockedByIneffectiveVoucherboolOb die Bestellung durch einen wirkungslosen Gutschein blockiert ist.
paymentBlockedboolOb die Zahlung blockiert ist.
paymentCaptchaRequiredboolOb für die Zahlung ein Captcha erforderlich ist.
draftBillAddressmapDaten der temporären (noch nicht gespeicherten) Rechnungsadresse.
Methoden in der Übersicht
MethodeRückgabe-TypBeschreibung
isValidPayment()boolPrüft, ob eine Zahlungsart verfügbar ist.
isValidShippingMethod()boolPrüft, ob eine Versandart verfügbar ist.
isValidBillAddress()boolPrüft, ob eine Adresse als Rechnungsadresse gültig ist.
isValidShippingAddress()boolPrüft, ob eine Adresse als Lieferadresse gültig ist.
isPending()boolPrüft, ob ein Zahlungsvorgang aussteht.
isFinished()boolPrüft, ob eine Bestellung abgeschlossen wurde.
getAmountInSmallestUnit()intWandelt einen Betrag in die kleinste Währungseinheit (z. B. Cent).
getShippingMethodDisabledErrors()arrayGibt zurück, warum eine Versandart deaktiviert ist.
getShippingCost()floatVersandkosten einer Versandart, bezogen auf den aktuellen Warenkorb.
itemVoucherDiscount()floatBerechnet den Gutscheinrabatt für einen Artikel.
VariableRückgabe-TypBeschreibung
accountTypestringKontotyp: "guest", "new" oder "registered".
customerDatamapKundendaten-Felder, u. a. mit fieldGroups.
freeFieldsarrayFreie Checkout-Felder (Struktur siehe unten).
guestMailstringE-Mail eines Gastkontos.
selectedPaymentstringID der gewählten Zahlungsart.
selectedShippingMethodstringID der gewählten Versandart.
selectedBillAddressstringID der gewählten Rechnungsadresse.
selectedShippingAddressstringID der gewählten Lieferadresse.
draftBillAddressIdstringID einer temporären, noch nicht gespeicherten Rechnungsadresse.
draftShippingAddressIdstringID einer temporären, noch nicht gespeicherten Lieferadresse.
selectedPseudoCCstringPseudo-Kreditkarten-Token.
selectedStoreIdintID der gewählten Filiale (z. B. Click & Collect).
useAlternativeShippingAddressboolOb eine abweichende Lieferadresse aktiv ist.
isValidboolOb die Bestellung insgesamt ausführbar ist.
isExpressCheckoutLockedboolOb der Express-Checkout gesperrt ist (z. B. nach PayPal-Zahlung).
isPPCExpressCheckoutboolOb der PayPal-Commerce-Platform-Express-Checkout aktiv ist.
isPPCApplePayExpressCheckoutboolOb Apple Pay Express Checkout aktiv ist.
isPPCGooglePayExpressCheckoutboolOb Google Pay Express Checkout aktiv ist.
problemsmapKonkrete Fehler je Bereich (Struktur siehe unten).
fieldStatesmapZustand je Checkout-Feld (Werte siehe unten).
summapPreisinformationen zum Checkout (Struktur siehe unten).
verificationStatusintVerifizierungsstatus der Bestellung.
verificationStatusOptionsarrayVerfügbare Verifizierungsstatus-Optionen.
voucherAppliesPerItemboolOb Gutscheine pro Artikel angewendet werden.
restUntilFreeDeliveryfloatVerbleibender Betrag bis zur Grenze für kostenlosen Versand (0, wenn erreicht).
isOrderBlockedByIneffectiveVoucherboolOb die Bestellung durch einen wirkungslosen Gutschein blockiert ist.
paymentBlockedboolOb die Zahlung blockiert ist.
paymentCaptchaRequiredboolOb für die Zahlung ein Captcha erforderlich ist.
draftBillAddressmapDaten der temporären (noch nicht gespeicherten) Rechnungsadresse.
Methoden in der Übersicht
MethodeRückgabe-TypBeschreibung
isValidPayment()boolPrüft, ob eine Zahlungsart verfügbar ist.
isValidShippingMethod()boolPrüft, ob eine Versandart verfügbar ist.
isValidBillAddress()boolPrüft, ob eine Adresse als Rechnungsadresse gültig ist.
isValidShippingAddress()boolPrüft, ob eine Adresse als Lieferadresse gültig ist.
isPending()boolPrüft, ob ein Zahlungsvorgang aussteht.
isFinished()boolPrüft, ob eine Bestellung abgeschlossen wurde.
getAmountInSmallestUnit()intWandelt einen Betrag in die kleinste Währungseinheit (z. B. Cent).
getShippingMethodDisabledErrors()arrayGibt zurück, warum eine Versandart deaktiviert ist.
getShippingCost()floatVersandkosten einer Versandart, bezogen auf den aktuellen Warenkorb.
itemVoucherDiscount()floatBerechnet den Gutscheinrabatt für einen Artikel.

Templates

Der Checkout ist frei gestaltbar und kann eine oder mehrere Shopseiten umfassen. Die Reihenfolge der Elemente ist beliebig.

Variablen

$wsCheckout.accountType

Gibt den Kontotyp aus: "guest" (Gast), "new" (neues Konto) oder "registered" (angemeldet). Werten Sie ihn aus, um beispielsweise einem Gast die Konto-Erstellung anzubieten.
{{ if $wsCheckout.accountType == "guest" }}
  <!-- Gastbestellung -->
{{ /if }}

$wsCheckout.guestMail

Gibt die E-Mail-Adresse eines Gastkontos aus. Nur bei einer Gastbestellung gefüllt.
E-Mail: {{= $wsCheckout.guestMail }}

$wsCheckout.selectedPayment / selectedShippingMethod

Geben die ID der gewählten Zahlungs- bzw. Versandart aus. Werten Sie sie aus, um die getroffene Auswahl anzuzeigen oder zu prüfen.
{{ if $wsCheckout.selectedPayment == "stripe" }}
  <!-- Stripe ist ausgewählt -->
{{ /if }}

$wsCheckout.selectedBillAddress / selectedShippingAddress

Geben die ID der gewählten Rechnungs- bzw. Lieferadresse aus. Diese ID übergeben Sie z. B. an $wsAccount.loadAddress(), um die vollständige Adresse zu laden.
{{ var $billAddress = $wsAccount.loadAddress($wsCheckout.selectedBillAddress) }}
{{= $billAddress.firstName }} {{= $billAddress.lastName }}

$wsCheckout.draftBillAddressId / draftShippingAddressId

Geben die ID einer temporären Adresse aus, die der Kunde im Bestellablauf neu angelegt hat und die noch nicht im Kundenkonto gespeichert ist. Sie existiert nur in der aktuellen Session.
Temporäre Rechnungsadresse: {{= $wsCheckout.draftBillAddressId }}

$wsCheckout.useAlternativeShippingAddress

Gibt aus, ob eine von der Rechnungsadresse abweichende Lieferadresse verwendet wird.
{{ if $wsCheckout.useAlternativeShippingAddress }}
  <!-- Abweichende Lieferadresse -->
{{ /if }}

$wsCheckout.selectedStoreId

Gibt die ID der gewählten Filiale aus (z. B. für Click & Collect). 0, wenn keine Filiale gewählt ist.
{{ if $wsCheckout.selectedStoreId > 0 }}
  <!-- Filiale ausgewählt -->
{{ /if }}

$wsCheckout.selectedPseudoCC

Gibt den Pseudo-Kreditkarten-Token der gewählten Zahlung aus.
Token: {{= $wsCheckout.selectedPseudoCC }}

$wsCheckout.guestMail

Gibt die E-Mail-Adresse eines Gastkontos aus. Nur bei einer Gastbestellung gefüllt.
E-Mail: {{= $wsCheckout.guestMail }}

$wsCheckout.selectedPayment / selectedShippingMethod

Geben die ID der gewählten Zahlungs- bzw. Versandart aus. Werten Sie sie aus, um die getroffene Auswahl anzuzeigen oder zu prüfen.
{{ if $wsCheckout.selectedPayment == "stripe" }}
  <!-- Stripe ist ausgewählt -->
{{ /if }}

$wsCheckout.selectedBillAddress / selectedShippingAddress

Geben die ID der gewählten Rechnungs- bzw. Lieferadresse aus. Diese ID übergeben Sie z. B. an $wsAccount.loadAddress(), um die vollständige Adresse zu laden.
{{ var $billAddress = $wsAccount.loadAddress($wsCheckout.selectedBillAddress) }}
{{= $billAddress.firstName }} {{= $billAddress.lastName }}

$wsCheckout.draftBillAddressId / draftShippingAddressId

Geben die ID einer temporären Adresse aus, die der Kunde im Bestellablauf neu angelegt hat und die noch nicht im Kundenkonto gespeichert ist. Sie existiert nur in der aktuellen Session.
Temporäre Rechnungsadresse: {{= $wsCheckout.draftBillAddressId }}

$wsCheckout.useAlternativeShippingAddress

Gibt aus, ob eine von der Rechnungsadresse abweichende Lieferadresse verwendet wird.
{{ if $wsCheckout.useAlternativeShippingAddress }}
  <!-- Abweichende Lieferadresse -->
{{ /if }}

$wsCheckout.selectedStoreId

Gibt die ID der gewählten Filiale aus (z. B. für Click & Collect). 0, wenn keine Filiale gewählt ist.
{{ if $wsCheckout.selectedStoreId > 0 }}
  <!-- Filiale ausgewählt -->
{{ /if }}

$wsCheckout.selectedPseudoCC

Gibt den Pseudo-Kreditkarten-Token der gewählten Zahlung aus.
Token: {{= $wsCheckout.selectedPseudoCC }}

$wsCheckout.customerData

Gibt die Kundendaten-Felder als nach Gruppen strukturiertes Objekt aus. Lassen Sie sich die konkrete Struktur Ihres Shops zuerst ausgeben, da sie von den konfigurierten Feldern abhängt:
{{= $wsCheckout.customerData | json }}

$wsCheckout.freeFields

Gibt die freien Checkout-Felder aus (z. B. AGB-Checkbox, Kommentarfeld). Iterieren Sie über die Felder und werten Sie sie über ihre id aus.
{{ foreach $field in $wsCheckout.freeFields }}
  {{= $field.name }} ({{= $field.type }}, Pflicht: {{= $field.required }})
{{ /foreach }}

Eigenschaften eines freien Feldes

EigenschaftRückgabe-TypBeschreibung
idstringID des Feldes (z. B. "agb", "comment").
namestringAnzeigename des Feldes (z. B. "AGB").
typestringFeldtyp ("checkbox", "text").
requiredboolOb das Feld ein Pflichtfeld ist.
defaultbool/stringStandardwert (false bei Checkbox, "" bei Textfeld).
checkedboolOb die Checkbox angehakt ist (nur bei type == "checkbox").

$wsCheckout.isValid

Gibt aus, ob die Bestellung insgesamt ausführbar ist. Dies ist der Gesamtstatus über alle Felder – nutzen Sie ihn, um den „Kaufen”-Button frei- oder zu sperren.
{{ if $wsCheckout.isValid }}
  <!-- Bestellung kann ausgeführt werden -->
{{ /if }}

$wsCheckout.isExpressCheckoutLocked

Gibt aus, ob der Express-Checkout gesperrt ist – z. B. nachdem der Kunde über PayPal bezahlt hat und zur Bestätigung in den Shop zurückgeleitet wird. Werten Sie es aus, um in diesem Zustand das Bearbeiten des Warenkorbs zu unterbinden.
{{ if $wsCheckout.isExpressCheckoutLocked }}
  Die Bearbeitung Ihres Warenkorbs ist derzeit nicht möglich.
{{ /if }}

$wsCheckout.isPPCExpressCheckout / isPPCApplePayExpressCheckout / isPPCGooglePayExpressCheckout

Geben aus, ob der jeweilige Express-Checkout der PayPal Commerce Platform aktiv ist. Nutzen Sie sie, um den passenden Express-Checkout-Ablauf darzustellen.
{{ if $wsCheckout.isPPCExpressCheckout }}
  <!-- PayPal Express Checkout aktiv -->
{{ /if }}

$wsCheckout.verificationStatus / verificationStatusOptions

verificationStatus gibt den Verifizierungsstatus der Bestellung als Zahl aus. verificationStatusOptions listet den möglichen Status auf.
{{ foreach $option in $wsCheckout.verificationStatusOptions }}
  {{= $option.id }}: {{= $option.name }}
{{ /foreach }}

$wsCheckout.voucherAppliesPerItem

Gibt aus, ob ein Gutschein pro Artikel (statt auf den Gesamtbetrag) angewendet wird.
{{ if $wsCheckout.voucherAppliesPerItem }}
  <!-- Gutschein wird pro Artikel berechnet -->
{{ /if }}

$wsCheckout.restUntilFreeDelivery

🔧 Shop-geprüft 12.06.2026: Existiert (float, beobachtet 0.0).
Gibt den verbleibenden Betrag bis zur Grenze für kostenlosen Versand aus (0, wenn die Grenze erreicht ist). Nutzen Sie es für einen Hinweis „Noch X bis zum kostenlosen Versand”.
{{ if $wsCheckout.restUntilFreeDelivery > 0 }}
  Nur noch {{= $wsCheckout.restUntilFreeDelivery | currency }} bis zum kostenlosen Versand!
{{ /if }}

$wsCheckout.fieldStates

Gibt eine Map mit dem Zustand jedes Checkout-Feldes aus (payment, shippingMethod, billAddress, shippingAddress). Damit markieren Sie einzelne Felder gezielt – z. B. ein noch nicht ausgefülltes Feld neutral, ein fehlerhaftes rot.
WertBeschreibung
"untouched"Das Feld wurde noch nicht bearbeitet oder ausgewählt.
"empty"Das Feld wurde befüllt, der Wert wurde aber wieder entfernt.
"invalid"Ein Wert ist vorhanden, hat die Validierung aber nicht bestanden.
"incompatible"Der Wert ist gültig, im aktuellen Kontext aber nicht zulässig.
"valid"Das Feld ist korrekt ausgefüllt und hat alle Prüfungen bestanden.
Die Zustände bauen aufeinander auf. Geprüft wird der Reihe nach: angewählt (untouched) → Wert vorhanden (empty) → gültig (invalid) → im Kontext zulässig (incompatible). Erst wenn alle Prüfungen bestanden sind, gilt das Feld als valid. Der erste zutreffende Zustand wird ausgegeben.
{{ if $wsCheckout.fieldStates.payment == "valid" }}
  <!-- Zahlungsart korrekt ausgewählt -->
{{ /if }}

$wsCheckout.problems

Gibt eine Map mit konkreten Fehlern je Bereich aus (payment, shippingMethod, billAddress, shippingAddress, freeFields, clearing, general). Jeder Bereich ist eine Liste von Fehlern; sie ist gefüllt, wenn dort ein Problem vorliegt.

Eigenschaften eines Fehlers

EigenschaftRückgabe-TypBeschreibung
codestringFehler-Code: "missing", "checkFailed" oder "checkIncompatible".
checkstringService-Name/Grund des Checks (z. B. "productTypeDenied").
textstringSprechender Fehlertext aus der Konfiguration (nur wenn konfiguriert).
fieldstringBetroffenes Feld (nur bei feldbezogenen Fehlern wie billAddress).

Bedeutung der Fehler-Codes

CodeBedeutungBeispiel
"missing"Kein Wert ausgewählt oder eingetragen.Keine Zahlungsart gewählt.
"checkFailed"Ein Wert ist vorhanden, hat die Validierung aber nicht bestanden.Ungültige Postleitzahl.
"checkIncompatible"Der Wert ist gültig, im aktuellen Kontext aber nicht zulässig.Zahlungsart für das Lieferland gesperrt.
Beispiel, das die Fehler der Zahlungsart kundenfreundlich ausgibt:
{{ foreach $prob in $wsCheckout.problems.payment }}
  {{ if $prob.code == "missing" }}
    Bitte wählen Sie eine Zahlungsart aus.
  {{ else }}
    {{= $prob.text }}
  {{ /if }}
{{ /foreach }}
clearing (Zahlungsabwicklung) und general (allgemeine Probleme) enthalten keine field-Angabe. Um auf einen einzelnen Fehler zuzugreifen, verwenden Sie den Index, z. B. $wsCheckout.problems.payment[0].text.

$wsCheckout.sum

Gibt eine Map mit den Preisinformationen zum Checkout aus. Für die Anzeige als Geldbetrag verwenden Sie den currency-Filter – er enthält bereits das Währungssymbol.

Eigenschaften von $wsCheckout.sum

EigenschaftRückgabe-TypBeschreibung
totalfloatGesamtbetrag der Bestellung (inkl. Versand, Rabatte, Steuern).
totalNetfloatNettobetrag.
totalGrossfloatBruttobetrag.
totalTaxfloatGesamte Mehrwertsteuer.
totalPreDeductionfloatGesamtbetrag vor dem Steuerabzug.
totalVoucherfloatWert der eingelösten Gutscheine.
totalWeightfloatGesamtgewicht der Bestellung.
shippingCostfloatVersandkosten.
paymentCostfloatKosten der Zahlungsart.
surchargeCostfloatZusatzkosten / Aufschläge.
currencystringWährungscode (z. B. "EUR").
totalTaxDeductionfloatBetrag der abgezogenen Steuer (bei Steuerbefreiung).
isTaxExemptboolOb die Bestellung steuerbefreit ist.
usedExemptionRulestringAktive Steuerprüfregel (z. B. "shippingOnly").
billingCountrystringLänderkennung der Rechnungsadresse.
shippingCountrystringLänderkennung der Lieferadresse.
Gesamtbetrag: {{= $wsCheckout.sum.total | currency }}
Versandkosten: {{= $wsCheckout.sum.shippingCost | currency }}

Methoden

$wsCheckout.isValidPayment() / isValidShippingMethod()

Prüfen, ob die Zahlungsart bzw. Versandart mit der angegebenen ID verfügbar ist. Nutzen Sie sie, um nur verfügbare Optionen anzubieten. Signatur
$wsCheckout.isValidPayment(paymentId) · $wsCheckout.isValidShippingMethod(shippingMethodId)
Rückgabe
bool – verfügbar / nicht verfügbar.
{{ if $wsCheckout.isValidPayment("stripe") }}
  <!-- Stripe ist verfügbar -->
{{ /if }}

$wsCheckout.isValidBillAddress() / isValidShippingAddress()

Prüfen, ob die Adresse mit der angegebenen ID als Rechnungs- bzw. Lieferadresse gültig ist. Signatur
$wsCheckout.isValidBillAddress(addressId) · $wsCheckout.isValidShippingAddress(addressId)
Rückgabe
bool – gültig / nicht gültig.
NameTypPflichtBeschreibung
addressIdstringjaID der zu prüfenden Adresse.
{{ if $wsCheckout.isValidBillAddress($wsCheckout.selectedBillAddress) }}
  <!-- Rechnungsadresse ist gültig -->
{{ /if }}

$wsCheckout.isPending() / isFinished()

isPending() prüft, ob ein Zahlungsvorgang noch aussteht, isFinished(), ob die Bestellung abgeschlossen wurde. Nutzen Sie sie, um den Status einer laufenden oder abgeschlossenen Bestellung zu erkennen. Signatur
$wsCheckout.isPending() · $wsCheckout.isFinished()
Rückgabe
bool.
{{ if $wsCheckout.isPending() }}
  <!-- Zahlungsvorgang läuft noch -->
{{ /if }}

$wsCheckout.getAmountInSmallestUnit()

Gibt einen Betrag in der kleinsten Währungseinheit zurück (z. B. Cent statt Euro). Nützlich für Zahlungs-APIs, die Beträge in Cent erwarten. Signatur
$wsCheckout.getAmountInSmallestUnit(amount)
Rückgabe
int – Betrag in kleinster Einheit.
NameTypPflichtBeschreibung
amountfloatjaBetrag in der Hauptwährung.
{{ var $cents = $wsCheckout.getAmountInSmallestUnit($wsCheckout.sum.total) }}

$wsCheckout.getShippingMethodDisabledErrors()

Gibt zurück, warum eine Versandart deaktiviert ist. Nutzen Sie es, um dem Kunden zu erklären, weshalb eine Versandart nicht wählbar ist. Signatur
$wsCheckout.getShippingMethodDisabledErrors(shippingMethodId)
Rückgabe
array – Liste mit Fehlermeldungen.
NameTypPflichtBeschreibung
shippingMethodIdstringjaID der zu prüfenden Versandart.
{{ foreach $error in $wsCheckout.getShippingMethodDisabledErrors("express") }}
  {{= $error }}
{{ /foreach }}

$wsCheckout.itemVoucherDiscount()

Berechnet den Gutscheinrabatt für einen einzelnen Warenkorb-Artikel. Übergeben Sie die ID eines Warenkorb-Eintrags. Signatur
$wsCheckout.itemVoucherDiscount(itemId)
Rückgabe
float – Rabattbetrag für den Artikel.
NameTypPflichtBeschreibung
itemIdstringjaID des Warenkorb-Eintrags.
Rabatt: {{= $wsCheckout.itemVoucherDiscount($item.id) | currency }}

$wsCheckout.getShippingCost()

Gibt die Versandkosten einer bestimmten Versandart zurück. Auch dann, wenn diese nicht ausgewählt ist. Der Wert bezieht sich auf den aktuellen Warenkorb. Nutzen Sie es beispielsweise, um die Versandkosten verschiedener Optionen vorab anzuzeigen. Signatur
$wsCheckout.getShippingCost(shippingMethodId)
Rückgabe
float – Versandkosten der angegebenen Versandart.
NameTypPflichtBeschreibung
shippingMethodIdstringjaID der Versandart, deren Kosten ermittelt werden.
Versandkosten: {{= $wsCheckout.getShippingCost("dhl_standard") | currency }}

Aktionen

Aktionen, die den Checkout verändern (Adresse wählen, Zahlungsart setzen, Bestellung auslösen), sind separat dokumentiert: Aktionen → Checkout.

Beispiele

Bestellbarkeit prüfen und Fehler anzeigen

Dieses Beispiel kombiniert die Validierungsebenen:
Ist die Bestellung gültig, wird der „Kaufen”-Bereich angezeigt, sonst werden die konkreten Probleme aufgelistet.
{{ if $wsCheckout.isValid }}
  <!-- Kaufen-Button anzeigen -->
{{ else }}
  {{ foreach $prob in $wsCheckout.problems.payment }}
    {{= $prob.text }}
  {{ /foreach }}
  {{ foreach $prob in $wsCheckout.problems.shippingMethod }}
    {{= $prob.text }}
  {{ /foreach }}
  {{ foreach $prob in $wsCheckout.problems.billAddress }}
    {{= $prob.field }}: {{= $prob.text }}
  {{ /foreach }}
{{ /if }}
Ergebnis
Bei gültiger Bestellung erscheint der Kaufen-Bereich, sonst die offenen Punkte je Bereich.

Summenübersicht

Eine vollständige Summenanzeige. Der currency-Filter enthält das Währungssymbol bereits.
Zwischensumme: {{= $wsCheckout.sum.totalNet | currency }}
Versandkosten: {{= $wsCheckout.sum.shippingCost | currency }}
Mehrwertsteuer: {{= $wsCheckout.sum.totalTax | currency }}
{{ if $wsCheckout.sum.totalVoucher > 0 }}
  Gutschein: {{= $wsCheckout.sum.totalVoucher | currency }}
{{ /if }}
Gesamtbetrag: {{= $wsCheckout.sum.total | currency }}
Ergebnis
Eine aufgeschlüsselte Summenübersicht mit korrekt formatierten Geldbeträgen.

AGB-Zustimmung prüfen

Prüft, ob das Freifeld agb angehakt ist, bevor die Bestellung erlaubt wird.
{{ foreach $field in $wsCheckout.freeFields }}
  {{ if $field.id == "agb" and not $field.checked }}
    Bitte akzeptieren Sie die AGB.
  {{ /if }}
{{ /foreach }}
Ergebnis
Ist die AGB-Checkbox nicht angehakt, erscheint der Hinweis.

Gewählte Zahlungsart prüfen

{{ if $wsCheckout.isValidPayment($wsCheckout.selectedPayment) }}
  Gewählte Zahlungsart: {{= $wsCheckout.selectedPayment }}
{{ /if }}
Ergebnis
Die gewählte Zahlungsart wird angezeigt, sofern sie gültig ist.

  • Aktionen → Checkout – den Checkout verändern (Auswahl setzen, Bestellung auslösen), weil $wsCheckout selbst nur liest.
  • $wsBasket – der Warenkorb, auf dem der Checkout aufbaut; liefert die Artikel für itemVoucherDiscount().
  • $wsAccount – lädt über loadAddress() die vollständige Adresse zur selectedBillAddress/selectedShippingAddress.
  • Checkout-Konfiguration – steuert mit show*BeforeSubmit, wann Fehler angezeigt werden.