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.
In diesem Abschnitt werden die verfügbaren Aktionen im Checkout beschrieben. Mit diesen Aktionen können z.B. Rechnungs- und Lieferadressen ausgewählt, zwischengespeichert und übernommen werden.
Aktionen im Überblick
| Aktion | Beschreibung |
|---|
CheckoutAccountTypeSelect | Legt den Kontotyp für den aktuellen Bestellvorgang fest. |
CheckoutBillAddressSelect | Setzt eine gespeicherte Adresse als aktive Rechnungsadresse. |
CheckoutShippingAddressSelect | Setzt eine gespeicherte Adresse als aktive Lieferadresse. |
CheckoutSetDraftAddress | Speichert eine Adresse temporär als Entwurf (ohne Validierung). |
CheckoutCommitDraftAddress | Übernimmt einen Adressentwurf als verbindliche Checkout-Adresse (mit Validierung). |
CheckoutUseSameShippingAddress | Setzt die Lieferadresse gleich der Rechnungsadresse. |
CheckoutUseDifferentShippingAddress | Aktiviert eine abweichende Lieferadresse. |
CheckoutSetGuestEmail | Setzt die E-Mail-Adresse für eine Gastbestellung. |
CheckoutPaymentUpdate | Setzt die Zahlungsart für den aktuellen Bestellvorgang. |
CheckoutShippingMethodUpdate | Setzt die Versandart für den aktuellen Bestellvorgang. |
CheckoutConfirm | Schickt die Bestellung verbindlich ab. |
CheckoutSetFreeFields | Setzt die freien Checkout-Felder, z.B. AGB-Zustimmung. |
CheckoutSetCustomerData | Setzt Kundendaten im Checkout. |
CheckoutPseudoCCSelect | Wählt eine gespeicherte Pseudo-Kreditkarte aus. |
CheckoutNewsletterSubscribe | Meldet den Kunden während des Checkouts zum Newsletter an. (Doku folgt) |
CheckoutSetVerificationStatus | Setzt den Verifizierungsstatus der Bestellung. (Doku folgt) |
CheckoutStoreIdSelect | Setzt einen Markt als Abholort für den aktuellen Bestellvorgang. |
Aktionen
CheckoutBillAddressSelect
Mit dieser Aktion wählt der Kunde eine seiner bereits gespeicherten Adressen als Rechnungsadresse für den aktuellen Bestellvorgang aus. Die Auswahl wird sofort übernommen, es ist keine weitere Bestätigung nötig.
Anwendungsbeispiel
Nutzbar, um z.B. eingeloggten Kunden im Checkout ein Dropdown mit ihren gespeicherten Adressen anzuzeigen, sodass sie eine Rechnungsadresse mit einem Klick auswählen können, ohne erneute Eingabe.
Parameter
| Name | Beschreibung |
|---|
addressId | Die ID der Adresse, die als Rechnungsadresse gesetzt werden soll. |
Fehlercodes
| Fehlercode | Beschreibung |
|---|
missingAddressId | Parameter addressId fehlt, |
invalidAddressId | Die angegebene Adresse existiert nicht oder gehört nicht zu diesem Kundenkonto. |
Zugehörige Module, Variablen & Methoden
Beispiel das zeigt, wie eingeloggten Kunden ein Dropdown mit ihren gespeicherten Adressen angezeigt wird, über das sie eine Rechnungsadresse auswählen können.
{{ var $myCheckoutBillAddressSelect = $wsActions.create("CheckoutBillAddressSelect") }}
<form method="post" action="{{= $wsViews.current.url() }}" data-auto-submit-change>
<input type="hidden" name="wsact" value="{{= $myCheckoutBillAddressSelect.id }}">
<input type="hidden" name="wscsrf" value="{{= $myCheckoutBillAddressSelect.csrf }}">
<select name="addressId">
{{ foreach $myAddressOption in $wsAccount.addresses }}
<option value="{{= $myAddressOption.id }}"{{ if $myAddressOption.id == $wsCheckout.selectedBillAddress }} selected{{ /if }}>
{{= $myAddressOption.firstName }} {{= $myAddressOption.lastName }}, {{= $myAddressOption.street }}
</option>
{{ /foreach }}
</select>
</form>
CheckoutShippingAddressSelect
Mit dieser Aktion wählt der Kunde eine seiner bereits gespeicherten Adressen als Lieferadresse für den aktuellen Bestellvorgang aus. Die Aktion ist nur relevant, wenn der Kunde eine abweichende Lieferadresse angeben möchte.
Anwendungsbeispiel
Nutzbar, wenn ein Kunde eine Bestellung an eine andere Adresse schicken möchte.
Parameter
| Name | Beschreibung |
|---|
addressId | Die ID der Adresse, die als Lieferadresse gesetzt werden soll. |
Fehlercodes
| Fehlercode | Beschreibung |
|---|
missingAddressId | Parameter addressId fehlt. |
invalidAddressId | Die angegebene Adresse existiert nicht oder gehört nicht zu diesem Kundenkonto. |
Zugehörige Module, Variablen & Methoden
Beispiel das zeigt, wie eingeloggten Kunden ein Dropdown mit ihren gespeicherten Adressen angezeigt wird, über das sie eine Lieferadresse auswählen können.
{{ var $myCheckoutShippingAddressSelect = $wsActions.create("CheckoutShippingAddressSelect") }}
<form method="post" action="{{= $wsViews.current.url() }}" data-auto-submit-change>
<input type="hidden" name="wsact" value="{{= $myCheckoutShippingAddressSelect.id }}">
<input type="hidden" name="wscsrf" value="{{= $myCheckoutShippingAddressSelect.csrf }}">
<select name="addressId">
{{ foreach $myAddressOption in $wsAccount.addresses }}
<option value="{{= $myAddressOption.id }}"{{ if $myAddressOption.id == $wsCheckout.selectedShippingAddress }} selected{{ /if }}>
{{= $myAddressOption.firstName }} {{= $myAddressOption.lastName }}
</option>
{{ /foreach }}
</select>
</form>
CheckoutSetDraftAddress
Mit dieser Aktion wird eine vom Kunden eingegebene Adresse vorläufig gespeichert, ohne dass die Eingaben sofort auf Vollständigkeit oder Korrektheit geprüft werden. Die Draft-Adresse wirkt sich dabei bereits auf die verfügbaren Versand- und Zahlungsarten aus, die auf Basis der Eingaben angepasst werden (relevant für den OnePage-Checkout).
Die Adresse gilt zunächst als Entwurf und wird erst durch CheckoutCommitDraftAddress als verbindliche Checkout-Adresse übernommen. Der Adresstyp wird direkt im Aktionsnamen angegeben (bill oder shipping).
Anwendungsbeispiel
Nutzbar im OnePage-Checkout, um die eingegebene Adresse laufend zwischenzuspeichern, ohne den Kunden sofort mit Validierungsfehlern zu konfrontieren. Die eigentliche Prüfung der Adresse erfolgt erst beim Klick auf “Jetzt kaufen” über CheckoutCommitDraftAddress.
Parameter
| Name | Beschreibung |
|---|
address.(fieldname) | Die einzelnen Felder der Adresse, z.B. address.firstName, address.street etc. |
Zugehörige Module, Variablen & Methoden
Beispiel das zeigt, wie eine Rechnungsadresse als Entwurf zwischengespeichert wird, ohne sie sofort zu validieren.
{{ var $myActionSetDraftBillAddress = $wsActions.create("CheckoutSetDraftAddress:bill") }}
<form method="post" action="{{= $wsViews.current.url() }}" data-ws-ajax-form>
<input type="hidden" name="wsact" value="{{= $myActionSetDraftBillAddress.id }}">
<input type="hidden" name="wscsrf" value="{{= $myActionSetDraftBillAddress.csrf }}">
<input type="text" name="address.firstName">
<input type="text" name="address.lastName">
<input type="text" name="address.street">
<input type="text" name="address.zip">
<input type="text" name="address.city">
<button type="submit">Adresse speichern</button>
</form>
CheckoutCommitDraftAddress
Mit dieser Aktion wird ein zuvor per CheckoutSetDraftAddress gespeicherter Adressentwurf validiert und als Checkout-Adresse übernommen. Das Verhalten unterscheidet sich je nach Bestelltyp:
- Gastbestellung - die eingegebene Adresse wird geprüft und, sofern gültig, direkt für den Checkout übernommen.
- Bestellung mit Kundenkonto - die eingegebene Adresse wird geprüft und, sofern gültig, als neue Adresse im Kundenkonto angelegt und gleichzeitig für den aktuellen Checkout ausgewählt.
Sind die Daten fehlerhaft oder unvollständig, schlägt die Validierung fehl und der Entwurf bleibt erhalten, sodass der Kunde seine Eingaben korrigieren kann. Der Adresstyp wird direkt im Aktionsnamen angegeben (bill oder shipping).
Diese Aktion bildet zusammen mit CheckoutSetDraftAddress den typischen Adress-Workflow im OnePage-Checkout:
CheckoutSetDraftAddress speichert die Eingaben laufend zwischen (ohne Validierung), CheckoutCommitDraftAddress schließt den Prozess ab.
Anwendungsbeispiel
Nutzbar als abschließender Schritt im OnePage-Checkout. Der Kunde hat seine Adresse bereits eingegeben und erst beim Klick auf “Jetzt kaufen” wird geprüft, ob alle Angaben korrekt und vollständig sind.
Parameter
| Name | Beschreibung |
|---|
address.(fieldname) | Die einzelnen Felder der Adresse, z.B. address.firstName, address.street etc. |
Fehlercodes
| Fehlercode | Beschreibung |
|---|
addressCheckFailed | Fehler in den Adressedaten. Wird über Sub-Codes konkretisiert: - minlen = zu wenig Zeichen - maxlen = zu viele Zeichen - numeric = ungültige Zeichen - country = Land nicht konfiguriert - zip = Postleitzahl fehlerhaft |
Zugehörige Module, Variablen & Methoden
Beispiel das zeigt, wie ein Rechnungsadress-Entwurf validiert und als verbindliche Checkout-Adresse übernommen wird. Bei fehlerhaften Eingaben bleibt der Entwurf erhalten und Fehler werden ausgegeben.
{{ var $myActionCommitDraftBillAddress = $wsActions.create("CheckoutCommitDraftAddress:bill") }}
{{ include "components/errorAlert.htm" with $myAction = $myActionCommitDraftBillAddress }}
<form method="post" action="{{= $wsViews.current.url() }}">
<input type="hidden" name="wsact" value="{{= $myActionCommitDraftBillAddress.id }}">
<input type="hidden" name="wscsrf" value="{{= $myActionCommitDraftBillAddress.csrf }}">
<input type="text" name="address.firstName">
<input type="text" name="address.lastName">
<input type="text" name="address.street">
<input type="text" name="address.zip">
<input type="text" name="address.city">
<button type="submit">Als Adresse übernehmen.</button>
</form>
CheckoutUseSameShippingAddress
Mit dieser Aktion wird festgelegt, dass die Lieferung an dieselbe Adresse wie die Rechnungsadresse erfolgen soll. Eine zuvor eingegebene oder ausgewählte abweichende Lieferadresse wird dadurch nicht gelöscht, aber für den Checkout nicht mehr berücksichtigt.
Anwendungsbeispiel
Nutzbar, um dem Kunden z.B. per Checkbox die Möglichkeit zu geben, Rechnungs- und Lieferadresse mit einem Klick gleichzusetzen, ohne erneute Eingabe.
Zugehörige Module, Variablen & Methoden
Beispiel das zeigt, wie die Aktion über ein verstecktes Formular ausgelöst wird, das per JavaScript an eine Checkbox gekoppelt werden kann.
{{ var $myActionCheckoutUseSameShippingAddress = $wsActions.create("CheckoutUseSameShippingAddress") }}
<form method="post" action="{{= $wsViews.current.url() }}">
<input type="hidden" name="wsact" value="{{= $myActionCheckoutUseSameShippingAddress.id }}">
<input type="hidden" name="wscsrf" value="{{= $myActionCheckoutUseSameShippingAddress.csrf }}">
<button type="submit">Aktion bestätigen.</button>
</form>
CheckoutUseDifferentShippingAddress
Mit dieser Aktion wird eine abweichende Lieferadresse für den Checkout aktiviert. Sobald sie ausgelöst wurde, wird der Bereich zur Auswahl oder Eingabe einer separaten Lieferadresse relevant. Die Aktion kehrt den Effekt von CheckoutUseSameShippingAddress um.
Anwendungsbeispiel
Nutzbar, wenn der Kunde eine Bestellung an eine andere Adresse liefern lassen möchte, z.B. direkt in an eine Filiale.
Zugehörige Module, Variablen & Methoden
Beispiel das zeigt, wie die Aktion über ein verstecktes Formular ausgelöst wird, das per JavaScript an eine Checkbox gekoppelt werden kann.
{{ var $myActionCheckoutUseDifferentShippingAddress = $wsActions.create("CheckoutUseDifferentShippingAddress") }}
<form method="post" action="{{= $wsViews.current.url() }}">
<input type="hidden" name="wsact" value="{{= $myActionCheckoutUseDifferentShippingAddress.id }}">
<input type="hidden" name="wscsrf" value="{{= $myActionCheckoutUseDifferentShippingAddress.csrf }}">
<button type="submit">Aktion bestätigen.</button>
</form>
CheckoutAccountTypeSelect
Mit dieser Aktion wird der Kontotyp für den aktuellen Bestellvorgang festgelegt. Der gewählte Typ bestimmt, welche Schritte im Checkout-Prozess angezeigt werden.
Anwendungsbeispiel
Nutzbar auf der Login-Seite im Checkout-Kontext, um dem Kunden die Möglichkeit zu geben, als Gast zu bestellen, ohne ein Konto anlegen zu müssen.
Parameter
| Name | Beschreibung |
|---|
accountType | Der gewünschte Kontotyp. Mögliche Werte: - guest - Gastkonto - new - Neues Kundenkonto - registered - Registrierter Kunde |
Fehlercodes
| Fehlercode | Beschreibung |
|---|
invalidAccountType | Der angegebene Kontotyp ist ungültig. |
Zugehörige Module, Variablen & Methoden
Beispiel das zeigt, wie der Kontotyp auf “guest” gesetzt wird, um eine Gastbestellung zu ermöglichen.
{{ var $myActionCheckoutAccountTypeSelect = $wsActions.create("CheckoutAccountTypeSelect") }}
<form method="post" action="{{= $wsViews.current.url() }}">
<input type="hidden" name="wsact" value="{{= $myActionCheckoutAccountTypeSelect.id }}">
<input type="hidden" name="wscsrf" value="{{= $myActionCheckoutAccountTypeSelect.csrf }}">
<input type="hidden" name="accountType" value="guest">
<button type="submit">Als Gast bestellen.</button>
</form>
CheckoutSetGuestEmail
Mit dieser Aktion wird die E-Mail-Adresse für eine Gastbestellung gesetzt. Sie ist nur relevant, wenn der Kontotyp auf “guest” gesetzt wurde.
Anwendungsbeispiel
Nutzbar im Checkout, wenn ein Kunde als Gast bestellen möchte und dafür seine E-Mail-Adresse angeben muss.
Parameter
| Name | Beschreibung |
|---|
guestEmail | Die E-Mail-Adresse des Gastkunden. |
Fehlercodes
| Code | Beschreibung |
|---|
missingEmail | Parameter guestEmail fehlt. |
emailCheckFailed | Parameter guestEmail enthält keine gültige E-Mail-Adresse. |
Zugehörige Module, Variablen & Methoden
Beispiel das zeigt, wie ein Gastkunde seine E-Mail-Adresse im Checkout eingibt, inklusive Fehlerausgabe bei ungültiger Eingabe.
{{ var $myActionCheckoutSetGuestEmail = $wsActions.create("CheckoutSetGuestEmail") }}
<form method="post" action="{{= $wsViews.current.url() }}">
<input type="hidden" name="wsact" value="{{= $myActionCheckoutSetGuestEmail.id }}">
<input type="hidden" name="wscsrf" value="{{= $myActionCheckoutSetGuestEmail.csrf }}">
<input type="text" name="guestEmail" value="{{= $wsCheckout.guestMail | ifNull('') }}">
<button type="submit">Als Gast bestellen.</button>
</form>
CheckoutShippingMethodUpdate
Mit dieser Aktion wird die Versandart für den aktuellen Bestellvorgang gesetzt.
Anwendungsbeispiel
Nutzbar im Checkout, um dem Kunden eine Liste der verfügbaren Versandarten anzuzeigen, aus der er eine auswählen kann.
Parameter
| Name | Beschreibung |
|---|
shippingMethodId | Die ID der Versandart, die ausgewählt werden soll. |
Fehlercodes
| Fehlercode | Beschreibung |
|---|
missingShippingMethodId | Parameter shippingMethodId fehlt. |
invalidShippingMethodId | Die angegebene Versandart ist nicht verfügbar. |
Zugehörige Module, Variablen & Methoden
Beispiel das zeigt, wie alle verfügbaren Versandarten als Auswahlliste dargestellt werden, wobei nicht verfügbare Optionen deaktiviert sind.
{{ var $myActionCheckoutShippingMethodUpdate = $wsActions.create("CheckoutShippingMethodUpdate") }}
<form method="post" action="{{= $wsViews.current.url() }}" data-auto-submit-change>
<input type="hidden" name="wsact" value="{{= $myActionCheckoutShippingMethodUpdate.id }}">
<input type="hidden" name="wscsrf" value="{{= $myActionCheckoutShippingMethodUpdate.csrf }}">
{{ foreach $myShipping in $wsConfig.shippingMethods }}
<input type="radio" name="shippingMethodId" id="{{= $myShipping.id }}" value="{{= $myShipping.id }}"
{{ if $wsCheckout.selectedShippingMethod == $myShipping.id }} checked{{ /if }}
{{ if not $wsCheckout.isValidShippingMethod($myShipping.id) }} disabled{{ /if }}>
<label for="{{= $myShipping.id }}">{{= $myShipping.name }}</label>
{{ /foreach }}
</form>
CheckoutConfirm
Mit dieser Aktion wird die Bestellung verbindlich abgeschickt. Sie ist der abschließende Schritt im Checkout-Prozess und setzt voraus, dass alle erforderlichen Angaben - Adresse, Zahlungsart und Versandart - vollständig und gültig sind.
Anwendungsbeispiel
Nutzbar als “Jetzt kaufen”-Button auf der Bestellübersichtsseite, über den der Kunde die Bestellung verbindlich aufgibt.
Fehlercodes
| Fehlercode | Beschreibung |
|---|
notLoggedIn | Der Benutzer ist nicht eingeloggt und es ist keine Gast-E-Mail vorhanden. |
invalidCheckout | Der Checkout ist nicht vollständig oder enthält ungültige Angaben. |
Zugehörige Module, Variablen & Methoden
Beispiel das zeigt, wie die Bestellung über einen Button verbindlich abgeschickt wird, sofern der Kunde eingeloggt oder als Gast identifiziert ist.
{{ var $myActionCheckoutConfirm = $wsActions.create("CheckoutConfirm") }}
<form method="post" action="{{= $wsViews.current.url() }}">
<input type="hidden" name="wsact" value="{{= $myActionCheckoutConfirm.id }}">
<input type="hidden" name="wscsrf" value="{{= $myActionCheckoutConfirm.csrf }}">
<input type="hidden" name="wstarget" value="{{= $wsViews.viewUrl('confirm.htm') }}">
<button type="submit">Bestellung aufgeben.</button>
</form>
CheckoutSetFreeFields
Mit dieser Aktion werden die freien Checkout-Felder gesetzt, z.B. die Zustimmung zu den AGB oder ein Kommentarfeld. Die Aktion wird typischerweise zusammen mit CheckoutConfirm auf der Bestellübersichtsseite eingesetzt.
Anwendungsbeispiel
Nutzbar auf der Bestellübersichtsseite, um dem Kunden z.B. eine Checkbox zur Zustimmung der AGB anzuzeigen, die vor dem Abschicken der Bestellung akzeptiert werden muss.
Parameter
| Name | Beschreibung |
|---|
freeFields.(id).value | Der Wert des freien Felds, z.B. freeFields.agb.value für die AGB-Checkbox. |
Fehlercodes
| Fehlercode | Beschreibung |
|---|
missingRequiredField | Ein Pflichtfeld wurde nicht ausgefüllt. |
Zugehörige Module, Variablen & Methoden
Beispiel das zeigt, wie eine AGB-Checkbox als freies Checkout-Feld eingebunden wird.
{{ var $myActionSetFreeFields = $wsActions.create("CheckoutSetFreeFields") }}
<form method="post" action="{{= $wsViews.current.url() }}" data-auto-submit-change>
<input type="hidden" name="wsact" value="{{= $myActionSetFreeFields.id }}">
<input type="hidden" name="wscsrf" value="{{= $myActionSetFreeFields.csrf }}">
{{ foreach $cField in $wsCheckout.freeFields }}
{{ if $cField.id == "agb" }}
<input type="{{= $myField.type }}" name="freeFields.{{= $myField.id }}.value"{{ if $myField.checked }} checked{{ /if }}>
<label>AGBs akzeptieren.</label>
{{ /if }}
{{ /foreach }}
</form>
CheckoutSetCustomerData
Mit dieser Aktion werden zusätzliche Kundendaten im Checkout gesetzt. Die Felder werden dynamisch aus der Konfiguration geladen und können gruppiert oder ungruppiert vorliegen.
Anwendungsbeispiel
Nutzbar im Checkout, um konfigurierte Kundendaten-Felder (z.B. Firmenname, Telefon) abzufragen, die über die Standardadresse hinausgehen.
Parameter
| Name | Beschreibung |
|---|
(dynamisch) | Die Felder werden aus $wsCheckout.customerData geladen und variieren je nach Shop-Konfiguration. |
Zugehörige Module, Variablen & Methoden
Beispiel das zeigt, wie gruppierte Kundendaten-Felder dynamisch gerendert und Fehler feldspezifisch ausgegeben werden:
{{ var $setCustomerDataAction = $wsActions.create("CheckoutSetCustomerData") }}
<form method="post" action="{{= $wsViews.current.url() }}" data-ajax-form data-auto-submit-change>
<input type="hidden" name="wsact" value="{{= $setCustomerDataAction.id }}">
<input type="hidden" name="wscsrf" value="{{= $setCustomerDataAction.csrf }}">
<input type="hidden" name="wstarget" value="{{= $wsViews.current.url() }}">
{{ foreach $error in $setCustomerDataAction.errors }}
<div class="alert alert-danger">{{= $error.text | ifNull($error.code) }}</div>
{{ /foreach }}
{{ foreach $group in $wsCheckout.customerData.groupedFields }}
{{ if $group.hidden == false }}
<label>{{= $group.label | ifNull($group.name) }}</label>
{{ foreach $field in $group.fields }}
{{include "components/src/customerDataField.htm" with $field=$field }}
{{ if $setCustomerDataAction.errorsByField[$field.name] }}
{{ foreach $err in $setCustomerDataAction.errorsByField[$field.name] }}
<div class="alert alert-danger">{{= $error.code }}{{ if $error.subCode }} ({{= $error.subCode }}){{ /if }}</div>
{{ /foreach }}
{{ /if }}
{{ /foreach }}
{{ /if }}
{{ /foreach }}
</form>
CheckoutPseudoCCSelect
Mit dieser Aktion wählt der Kunde eine seiner gespeicherten Pseudo-Kreditkarten für den aktuellen Bestellvorgang aus. Die Aktion ist ausschließlich für die Computop-Kreditkarten-Integration relevant.
Anwendungsbeispiel
Nutzbar im Checkout, wenn der Kunde eine zuvor hinterlegte Kreditkarte verwenden möchte, ohne die Kartendaten erneut einzugeben. Der Wert 0 steht für “keine gespeicherte Karte verwenden”.
Parameter
| Name | Beschreibung |
|---|
pseudoCCId | Die ID der gespeicherten Pseudo-Kreditkarte. Der Wert 0 wählt keine Karte aus. |
Zugehörige Module, Variablen & Methoden
Beispiel das zeigt, wie gespeicherte Kreditkarten zur Auswahl angezeigt werden, inklusive der Option, keine Karte zu verwenden.
{{ var $myAction = $wsActions.create("CheckoutPseudoCCSelect") }}
<form method="POST" action="{{= $wsViews.current.url() }}" data-ajax-form data-auto-submit-change>
<input type="hidden" name="wsact" value="{{= $myAction.id }}">
<input type="hidden" name="wscsrf" value="{{= $myAction.csrf }}">
<input type="hidden" name="wstarget" value="{{= $wsViews.current.url() }}">
{{ if $action.error }}
{{ foreach $error in $action.errors }}
<div class="alert alert-danger">{{= $error.text | ifNull($error.code) }}</div>
{{ /foreach }}
{{ /if }}
{{ foreach $card in $wsAccount.pseudoCreditCards }}
<label>
<input type="radio" name="pseudoCCId" value="{{= $card.id }}"
{{ if $wsCheckout.selectedPseudoCC == $card.id }} checked{{ /if }}>
{{= $card.type }} – Kartennummer: {{= $card.number }},
Ablaufdatum: {{= $card.expireMonth }}/{{= $card.expireYear }}
</label>
{{ /foreach }}
<label>
<input type="radio" name="pseudoCCId" value="0"
{{ if $wsCheckout.selectedPseudoCC == '0' }} checked{{ /if }}>
Keine Karte auswählen
</label>
</form>
CheckoutStoreIdSelect
Mit dieser Aktion wählt der Kunde einen Markt als Abholort für den aktuellen Bestellvorgang aus. Die Aktion ist nur relevant, wenn eine Versandart vom Typ pickup ausgewählt wurde. Bei der Auswahl wird geprüft, ob alle Produkte im gewählten Markt verfügbar sind. Ist das nicht der Fall, wird die Aktion nicht ausgeführt und es wird ein Fehler zurückgegeben.
Wurde kein Markt ausgewählt, wird standardmäßig der Markt aus der allgemeinen Session-Auswahl verwendet.
Anwendungsbeispiel
Nutzbar, wenn der Kunde eine Bestellung direkt in einem Markt abholen möchte und im Checkout aus den verfügbaren Click & Collect-Märkten wählen soll.
Fehlercodes
| Fehlercode | Beschreibung |
|---|
reservationFailed | Die Artikel sind im gewählten Markt nicht verfügbar. Details zum betroffenen Produkt werden über error.details.productId zurückgegeben. |
Zugehörige Module, Variablen & Methoden
Beispiel, das für jede Versandart vom Typ pickup ein Dropdown mit allen Click & Collect-fähigen Märkten zeigt. Es setzt den gewählten Markt per CheckoutStoreIdSelect als Abholort, inklusive Fehlerbehandlung bei nicht verfügbaren Artikeln im gewählten Markt.
{{ var $myActionCheckoutStoreIdSelect = $wsActions.create("CheckoutStoreIdSelect") }}
{{ foreach $myShipping in $wsConfig.shippingMethods }}
{{ if $wsCheckout.selectedShippingMethod == $myShipping.id and $myShipping.type == "pickup" }}
<form method="post" action="{{= $wsViews.current.url() }}" data-auto-submit-change>
<input type="hidden" name="wsact" value="{{= $myActionCheckoutStoreIdSelect.id }}">
<input type="hidden" name="wscsrf" value="{{= $myActionCheckoutStoreIdSelect.csrf }}">
<select name="storeId">
{{ foreach $myStore in $wsStores.loadAllStores() }}
{{ if $myStore.clickAndCollect }}
<option value="{{= $myStore.id }}"{{ if $wsCheckout.selectedStoreId == $myStore.id }} selected{{ /if }}>
{{= $myStore.name }}
</option>
{{ /if }}
{{ /foreach }}
</select>
</form>
{{ if $myActionCheckoutStoreIdSelect.error }}
{{ foreach $myError in $myActionCheckoutStoreIdSelect.errors }}
{{ if $myError.code == "reservationFailed" }}
<div class="alert alert-danger">Artikel im Store nicht verfügbar: {{= $myError.details.productId }}</div>
{{ /if }}
{{ /foreach }}
{{ /if }}
{{ /if }}
{{ /foreach }}
Weiterführende Links