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
| Variable | Rückgabe-Typ | Beschreibung |
|---|
accountType | string | Kontotyp: "guest", "new" oder "registered". |
customerData | map | Kundendaten-Felder, u. a. mit fieldGroups. |
freeFields | array | Freie Checkout-Felder (Struktur siehe unten). |
guestMail | string | E-Mail eines Gastkontos. |
selectedPayment | string | ID der gewählten Zahlungsart. |
selectedShippingMethod | string | ID der gewählten Versandart. |
selectedBillAddress | string | ID der gewählten Rechnungsadresse. |
selectedShippingAddress | string | ID der gewählten Lieferadresse. |
draftBillAddressId | string | ID einer temporären, noch nicht gespeicherten Rechnungsadresse. |
draftShippingAddressId | string | ID einer temporären, noch nicht gespeicherten Lieferadresse. |
selectedPseudoCC | string | Pseudo-Kreditkarten-Token. |
selectedStoreId | int | ID der gewählten Filiale (z. B. Click & Collect). |
useAlternativeShippingAddress | bool | Ob eine abweichende Lieferadresse aktiv ist. |
isValid | bool | Ob die Bestellung insgesamt ausführbar ist. |
isExpressCheckoutLocked | bool | Ob der Express-Checkout gesperrt ist (z. B. nach PayPal-Zahlung). |
isPPCExpressCheckout | bool | Ob der PayPal-Commerce-Platform-Express-Checkout aktiv ist. |
isPPCApplePayExpressCheckout | bool | Ob Apple Pay Express Checkout aktiv ist. |
isPPCGooglePayExpressCheckout | bool | Ob Google Pay Express Checkout aktiv ist. |
problems | map | Konkrete Fehler je Bereich (Struktur siehe unten). |
fieldStates | map | Zustand je Checkout-Feld (Werte siehe unten). |
sum | map | Preisinformationen zum Checkout (Struktur siehe unten). |
verificationStatus | int | Verifizierungsstatus der Bestellung. |
verificationStatusOptions | array | Verfügbare Verifizierungsstatus-Optionen. |
voucherAppliesPerItem | bool | Ob Gutscheine pro Artikel angewendet werden. |
restUntilFreeDelivery | float | Verbleibender Betrag bis zur Grenze für kostenlosen Versand (0, wenn erreicht). |
isOrderBlockedByIneffectiveVoucher | bool | Ob die Bestellung durch einen wirkungslosen Gutschein blockiert ist. |
paymentBlocked | bool | Ob die Zahlung blockiert ist. |
paymentCaptchaRequired | bool | Ob für die Zahlung ein Captcha erforderlich ist. |
draftBillAddress | map | Daten der temporären (noch nicht gespeicherten) Rechnungsadresse. |
Methoden in der Übersicht
| Methode | Rückgabe-Typ | Beschreibung |
|---|
isValidPayment() | bool | Prüft, ob eine Zahlungsart verfügbar ist. |
isValidShippingMethod() | bool | Prüft, ob eine Versandart verfügbar ist. |
isValidBillAddress() | bool | Prüft, ob eine Adresse als Rechnungsadresse gültig ist. |
isValidShippingAddress() | bool | Prüft, ob eine Adresse als Lieferadresse gültig ist. |
isPending() | bool | Prüft, ob ein Zahlungsvorgang aussteht. |
isFinished() | bool | Prüft, ob eine Bestellung abgeschlossen wurde. |
getAmountInSmallestUnit() | int | Wandelt einen Betrag in die kleinste Währungseinheit (z. B. Cent). |
getShippingMethodDisabledErrors() | array | Gibt zurück, warum eine Versandart deaktiviert ist. |
getShippingCost() | float | Versandkosten einer Versandart, bezogen auf den aktuellen Warenkorb. |
itemVoucherDiscount() | float | Berechnet den Gutscheinrabatt für einen Artikel. |
| Variable | Rückgabe-Typ | Beschreibung |
|---|
accountType | string | Kontotyp: "guest", "new" oder "registered". |
customerData | map | Kundendaten-Felder, u. a. mit fieldGroups. |
freeFields | array | Freie Checkout-Felder (Struktur siehe unten). |
guestMail | string | E-Mail eines Gastkontos. |
selectedPayment | string | ID der gewählten Zahlungsart. |
selectedShippingMethod | string | ID der gewählten Versandart. |
selectedBillAddress | string | ID der gewählten Rechnungsadresse. |
selectedShippingAddress | string | ID der gewählten Lieferadresse. |
draftBillAddressId | string | ID einer temporären, noch nicht gespeicherten Rechnungsadresse. |
draftShippingAddressId | string | ID einer temporären, noch nicht gespeicherten Lieferadresse. |
selectedPseudoCC | string | Pseudo-Kreditkarten-Token. |
selectedStoreId | int | ID der gewählten Filiale (z. B. Click & Collect). |
useAlternativeShippingAddress | bool | Ob eine abweichende Lieferadresse aktiv ist. |
isValid | bool | Ob die Bestellung insgesamt ausführbar ist. |
isExpressCheckoutLocked | bool | Ob der Express-Checkout gesperrt ist (z. B. nach PayPal-Zahlung). |
isPPCExpressCheckout | bool | Ob der PayPal-Commerce-Platform-Express-Checkout aktiv ist. |
isPPCApplePayExpressCheckout | bool | Ob Apple Pay Express Checkout aktiv ist. |
isPPCGooglePayExpressCheckout | bool | Ob Google Pay Express Checkout aktiv ist. |
problems | map | Konkrete Fehler je Bereich (Struktur siehe unten). |
fieldStates | map | Zustand je Checkout-Feld (Werte siehe unten). |
sum | map | Preisinformationen zum Checkout (Struktur siehe unten). |
verificationStatus | int | Verifizierungsstatus der Bestellung. |
verificationStatusOptions | array | Verfügbare Verifizierungsstatus-Optionen. |
voucherAppliesPerItem | bool | Ob Gutscheine pro Artikel angewendet werden. |
restUntilFreeDelivery | float | Verbleibender Betrag bis zur Grenze für kostenlosen Versand (0, wenn erreicht). |
isOrderBlockedByIneffectiveVoucher | bool | Ob die Bestellung durch einen wirkungslosen Gutschein blockiert ist. |
paymentBlocked | bool | Ob die Zahlung blockiert ist. |
paymentCaptchaRequired | bool | Ob für die Zahlung ein Captcha erforderlich ist. |
draftBillAddress | map | Daten der temporären (noch nicht gespeicherten) Rechnungsadresse. |
Methoden in der Übersicht
| Methode | Rückgabe-Typ | Beschreibung |
|---|
isValidPayment() | bool | Prüft, ob eine Zahlungsart verfügbar ist. |
isValidShippingMethod() | bool | Prüft, ob eine Versandart verfügbar ist. |
isValidBillAddress() | bool | Prüft, ob eine Adresse als Rechnungsadresse gültig ist. |
isValidShippingAddress() | bool | Prüft, ob eine Adresse als Lieferadresse gültig ist. |
isPending() | bool | Prüft, ob ein Zahlungsvorgang aussteht. |
isFinished() | bool | Prüft, ob eine Bestellung abgeschlossen wurde. |
getAmountInSmallestUnit() | int | Wandelt einen Betrag in die kleinste Währungseinheit (z. B. Cent). |
getShippingMethodDisabledErrors() | array | Gibt zurück, warum eine Versandart deaktiviert ist. |
getShippingCost() | float | Versandkosten einer Versandart, bezogen auf den aktuellen Warenkorb. |
itemVoucherDiscount() | float | Berechnet 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
| Eigenschaft | Rückgabe-Typ | Beschreibung |
|---|
id | string | ID des Feldes (z. B. "agb", "comment"). |
name | string | Anzeigename des Feldes (z. B. "AGB"). |
type | string | Feldtyp ("checkbox", "text"). |
required | bool | Ob das Feld ein Pflichtfeld ist. |
default | bool/string | Standardwert (false bei Checkbox, "" bei Textfeld). |
checked | bool | Ob 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.
| Wert | Beschreibung |
|---|
"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
| Eigenschaft | Rückgabe-Typ | Beschreibung |
|---|
code | string | Fehler-Code: "missing", "checkFailed" oder "checkIncompatible". |
check | string | Service-Name/Grund des Checks (z. B. "productTypeDenied"). |
text | string | Sprechender Fehlertext aus der Konfiguration (nur wenn konfiguriert). |
field | string | Betroffenes Feld (nur bei feldbezogenen Fehlern wie billAddress). |
Bedeutung der Fehler-Codes
| Code | Bedeutung | Beispiel |
|---|
"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
| Eigenschaft | Rückgabe-Typ | Beschreibung |
|---|
total | float | Gesamtbetrag der Bestellung (inkl. Versand, Rabatte, Steuern). |
totalNet | float | Nettobetrag. |
totalGross | float | Bruttobetrag. |
totalTax | float | Gesamte Mehrwertsteuer. |
totalPreDeduction | float | Gesamtbetrag vor dem Steuerabzug. |
totalVoucher | float | Wert der eingelösten Gutscheine. |
totalWeight | float | Gesamtgewicht der Bestellung. |
shippingCost | float | Versandkosten. |
paymentCost | float | Kosten der Zahlungsart. |
surchargeCost | float | Zusatzkosten / Aufschläge. |
currency | string | Währungscode (z. B. "EUR"). |
totalTaxDeduction | float | Betrag der abgezogenen Steuer (bei Steuerbefreiung). |
isTaxExempt | bool | Ob die Bestellung steuerbefreit ist. |
usedExemptionRule | string | Aktive Steuerprüfregel (z. B. "shippingOnly"). |
billingCountry | string | Länderkennung der Rechnungsadresse. |
shippingCountry | string | Lä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.
| Name | Typ | Pflicht | Beschreibung |
|---|
addressId | string | ja | ID 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.
| Name | Typ | Pflicht | Beschreibung |
|---|
amount | float | ja | Betrag 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.
| Name | Typ | Pflicht | Beschreibung |
|---|
shippingMethodId | string | ja | ID 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.
| Name | Typ | Pflicht | Beschreibung |
|---|
itemId | string | ja | ID 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.
| Name | Typ | Pflicht | Beschreibung |
|---|
shippingMethodId | string | ja | ID 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.
Weiterführende Links
- 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.