Skip to main content

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

AktionBeschreibung
CheckoutAccountTypeSelectLegt den Kontotyp für den aktuellen Bestellvorgang fest.
CheckoutBillAddressSelectSetzt eine gespeicherte Adresse als aktive Rechnungsadresse.
CheckoutShippingAddressSelectSetzt eine gespeicherte Adresse als aktive Lieferadresse.
CheckoutSetDraftAddressSpeichert eine Adresse temporär als Entwurf (ohne Validierung).
CheckoutCommitDraftAddressÜbernimmt einen Adressentwurf als verbindliche Checkout-Adresse (mit Validierung).
CheckoutUseSameShippingAddressSetzt die Lieferadresse gleich der Rechnungsadresse.
CheckoutUseDifferentShippingAddressAktiviert eine abweichende Lieferadresse.
CheckoutSetGuestEmailSetzt die E-Mail-Adresse für eine Gastbestellung.
CheckoutPaymentUpdateSetzt die Zahlungsart für den aktuellen Bestellvorgang.
CheckoutShippingMethodUpdateSetzt die Versandart für den aktuellen Bestellvorgang.
CheckoutConfirmSchickt die Bestellung verbindlich ab.
CheckoutSetFreeFieldsSetzt die freien Checkout-Felder, z.B. AGB-Zustimmung.
CheckoutSetCustomerDataSetzt Kundendaten im Checkout.
CheckoutPseudoCCSelectWählt eine gespeicherte Pseudo-Kreditkarte aus.
CheckoutNewsletterSubscribeMeldet den Kunden während des Checkouts zum Newsletter an. (Doku folgt)
CheckoutSetVerificationStatusSetzt den Verifizierungsstatus der Bestellung. (Doku folgt)
CheckoutStoreIdSelectSetzt 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
NameBeschreibung
addressIdDie ID der Adresse, die als Rechnungsadresse gesetzt werden soll.
Fehlercodes
FehlercodeBeschreibung
missingAddressIdParameter addressId fehlt,
invalidAddressIdDie 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
NameBeschreibung
addressIdDie ID der Adresse, die als Lieferadresse gesetzt werden soll.
Fehlercodes
FehlercodeBeschreibung
missingAddressIdParameter addressId fehlt.
invalidAddressIdDie 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
NameBeschreibung
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
NameBeschreibung
address.(fieldname)Die einzelnen Felder der Adresse, z.B. address.firstName, address.street etc.
Fehlercodes
FehlercodeBeschreibung
addressCheckFailedFehler 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
NameBeschreibung
accountTypeDer gewünschte Kontotyp. Mögliche Werte: - guest - Gastkonto - new - Neues Kundenkonto - registered - Registrierter Kunde
Fehlercodes
FehlercodeBeschreibung
invalidAccountTypeDer 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
NameBeschreibung
guestEmailDie E-Mail-Adresse des Gastkunden.
Fehlercodes
CodeBeschreibung
missingEmailParameter guestEmail fehlt.
emailCheckFailedParameter 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
NameBeschreibung
shippingMethodIdDie ID der Versandart, die ausgewählt werden soll.
Fehlercodes
FehlercodeBeschreibung
missingShippingMethodIdParameter shippingMethodId fehlt.
invalidShippingMethodIdDie 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
FehlercodeBeschreibung
notLoggedInDer Benutzer ist nicht eingeloggt und es ist keine Gast-E-Mail vorhanden.
invalidCheckoutDer 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
NameBeschreibung
freeFields.(id).valueDer Wert des freien Felds, z.B. freeFields.agb.value für die AGB-Checkbox.
Fehlercodes
FehlercodeBeschreibung
missingRequiredFieldEin 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
NameBeschreibung
(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
NameBeschreibung
pseudoCCIdDie 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
FehlercodeBeschreibung
reservationFailedDie 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 }}