Skip to main content
Diese Seite beschreibt die verfügbaren Services zur Validierung von Benutzereingaben sowie die regelbasierten Prüfungen für Zahlungs- und Versandarten. Dazu kommen fest implementierte Services, die eine Zahlungsart an einen Zahlungsanbieter anbinden, Captchas prüfen oder Werte zwischen Einheiten umrechnen. Die Services sind keine klassischen Konfigurationsknoten mit eigener Struktur, sondern werden in den jeweiligen Formular- oder Regeldefinitionen referenziert, beispielsweise in Account-, Checkout- oder Payment-/Shipping-Konfigurationen. Der Verweis besteht aus dem Service-Namen im Format <Servicetyp>.<Implementierung> und bei Bedarf aus einem Objekt options:
Prüfservices stehen meist in einer Liste validations, die mehrere Einträge enthalten kann. Die übrigen Services werden über ein einzelnes Feld vom Typ singleService referenziert.

addressCheck.* - Adressvalidierungen

addressCheck.* enthält Prüfungen für Adressfelder (z.B. Name, Straße, PLZ). Die Prüfungen werden in den jeweiligen Felddefinitionen unter validations hinterlegt. Das Frontend zeigt die Felder wie konfiguriert an und prüft beim Ausfüllen, ob die Eingaben gültig sind. So werden falsche oder unzulässige Werte früh erkannt.

addressCheck.minLength - Mindestlänge

Prüft die Mindestlänge der Eingabe bei Adressfeldern.

Beispielkonfiguration für (accounts.addressField.firstName)

Parameterübersicht

addressCheck.maxLength - Maximallänge

Prüft die Maximallänge der Eingabe bei Adressfeldern.

Beispielkonfiguration für (accounts.addressField.firstName)

Parameterübersicht

addressCheck.numeric - Nur Ziffern

Prüft, ob die Eingabe bei Adressfeldern nur aus Ziffern besteht.

Beispielkonfiguration für (accounts.addressField.phone)

Parameterübersicht

addressCheck.country - Ländercode (ISO)

Prüft, ob die Eingabe resp. Auswahl bei Länderlisten der Adressdatenfelder ein im Shop konfigurierter Ländercode ist (ISO-Code: 2-stellig, 3-stellig oder ISO-Nummer). Die offiziellen ISO-3166-1-Codes (alpha-2, alpha-3 und numerisch) finden sich auf der Website der International Organization for Standardization (ISO): https://www.iso.org/iso-3166-country-codes.html

Beispielkonfiguration für (accounts.addressField.country)

Parameterübersicht

addressCheck.zip - Postleitzahl (PLZ)

Prüft, ob die Eingabe eine gültige Postleitzahl (PLZ) für das angegebene Land ist. Die PLZ-Regeln stammen aus der Konfiguration. Das dazugehörige Land muss zwingend im Feld country übergeben werden.

Beispielkonfiguration für (accounts.addressField.zip)

Parameterübersicht

addressCheck.salutation - Anrede (Code)

Prüft, ob die Eingabe eine gültige Anrede ist (Code gemäß Konfiguration).

Beispielkonfiguration für (accounts.addressField.salutationCode)

Parameterübersicht

addressCheck.regex - Regulärer Ausdruck

Prüft, ob die Eingabe zu einem regulären Ausdruck passt.

Beispielkonfiguration für (accounts.addressField.additionalInfo)

Parameterübersicht

addressCheck.phone - Telefonnummer

Prüft, ob die Eingabe eine gültige Telefonnummer ist. Eine gültige Nummer besteht aus Ziffern (ohne Längenbeschränkung) und optional einer internationalen Vorwahl. Das + in der Vorwahl wird nach erfolgreicher Validierung durch 00 ersetzt.

Beispielkonfiguration für (accounts.addressField.phone)

Parameterübersicht

addressCheck.alpha - Nur Buchstaben (A–Z)

Prüft, ob die Eingabe nur aus lateinischen Buchstaben besteht (Groß-/Kleinschreibung egal).

Beispielkonfiguration für (accounts.addressField.additionalInfo)

Parameterübersicht

addressCheck.alphanum - Buchstaben/Ziffern (A–Z/0–9)

Prüft, ob die Eingabe nur aus lateinischen Buchstaben oder Ziffern besteht (Groß-/Kleinschreibung egal).

Beispielkonfiguration für (accounts.addressField.additionalInfo)

Parameterübersicht

addressCheck.legalSigns - Erlaubte Zeichen

Prüft, ob alle Zeichen der Eingabe in der erlaubten Zeichenauswahl enthalten sind (Groß-/Kleinschreibung relevant).

Beispielkonfiguration für (accounts.addressField.additionalInfo)

Parameterübersicht

addressCheck.illegalSigns - Verbotene Zeichen

Gegenteil von legalSigns: Die Eingabe darf keines der angegebenen Zeichen enthalten.

Beispielkonfiguration für (accounts.addressField.phone)

Parameterübersicht

addressCheck.date - Datum

Prüft, ob die Eingabe ein gültiges Datum ist, und formatiert die Eingabe bei Bedarf.

Beispielkonfiguration für (accounts.addressField.additionalInfo)

Parameterübersicht

addressCheck.allowedSelection - Auswahl (Listenelement)

Validiert, ob die Eingabe einem vordefinierten Auswahlwert entspricht. Die zulässigen Werte stammen aus einer Adressliste unter general.addressListElements, die über listElements referenziert wird. Typische Anwendung: Prüfung, ob eine Adresse z. B. „Packstation” oder „Privatadresse” ist.

Beispielkonfiguration für (accounts.addressField.addressType)

Parameterübersicht

Zusammenspiel mit dem addressType der Liste Ob die Prüfung überhaupt greift, hängt vom Parameter addressType der referenzierten Liste ab:
Greift die Prüfung nicht, wird das Feld ohne Fehler akzeptiert, die Validierung fällt also stillschweigend aus, statt die Eingabe abzulehnen. Dasselbe gilt, wenn unter listElements eine ID referenziert wird, zu der keine Adressliste existiert (z. B. nach einem Tippfehler oder nach dem Löschen der Liste).Prüfen Sie deshalb bei einem Feld, das unerwartet beliebige Werte annimmt, zuerst die Schreibweise der Referenz und den addressType der Liste.
Weiterführend

dataChecker.* - Allgemeine Feldvalidierungen

dataChecker.* enthält Prüfungen für allgemeine Formularfelder, die nicht speziell zu einer Adresse gehören. Die Prüfungen werden in der jeweiligen Felddefinition unter validations eingebunden. Das Frontend übernimmt die Vorgaben aus der Felddefinition und prüft beim Ausfüllen, ob die Eingabe korrekt ist (beispielsweise Länge, Format oder unerlaubte Zeichen). Schlägt eine Prüfung fehl, gibt der Shop einen Fehlertext aus, der zur jeweiligen Prüfung passt, beispielsweise “Die Eingabe ist zu kurz.” bei dataChecker.minLength. Die Texte stehen für alle dataChecker.*-Services gemeinsam im Knoten general.dataCheckerValidationErrors. Bei den Zusatzfeldern von Zahlungsarten und beim Online-Bestellschein nennt subCode im Fehlerobjekt zusätzlich den fehlgeschlagenen Service, beispielsweise dataChecker.minLength.

dataChecker.minLength - Mindestlänge

Prüft die Mindestlänge der Eingaben bei Formular-Eingabefeldern.

Beispielkonfiguration für (inquiry.form.catalogue.fields.firstName)

Parameterübersicht

dataChecker.maxLength - Maximallänge

Prüft die Maximallänge der Eingaben bei Formular-Eingabefeldern.

Beispielkonfiguration für (inquiry.form.catalogue.fields.firstName)

Parameterübersicht

dataChecker.numericChecker - Nur Ziffern

Prüft, ob die Eingabe bei Formular-Eingabefeldern nur aus Ziffern besteht.

Beispielkonfiguration für (inquiry.form.catalogue.fields.phone)

Parameterübersicht

dataChecker.countryChecker - Ländercode (ISO)

Prüft, ob die Eingabe resp. Auswahl bei Länderlisten der Formularfelder ein im Shop konfigurierter Ländercode ist (ISO-Code: 2-stellig, 3-stellig oder ISO-Nummer). Die offiziellen ISO-3166-1-Codes (alpha-2, alpha-3 und numerisch) finden sich auf der Website der International Organization for Standardization (ISO): https://www.iso.org/iso-3166-country-codes.html

Beispielkonfiguration für (inquiry.form.catalogue.fields.country)

Parameterübersicht

dataChecker.zipCodeChecker - Postleitzahl (PLZ)

Prüft, ob die Eingabe eine gültige Postleitzahl (PLZ) für das angegebene Land ist. Die PLZ-Regeln stammen aus der Konfiguration. Das dazugehörige Land muss zwingend im Feld country übergeben werden.

Beispielkonfiguration für (inquiry.form.catalogue.fields.zip)

Parameterübersicht

dataChecker.salutation - Anrede (Code)

Prüft, ob die Eingabe eine gültige Anrede ist (Code gemäß Konfiguration).

Beispielkonfiguration für (inquiry.form.catalogue.fields.salutation)

Parameterübersicht

dataChecker.regex - Regulärer Ausdruck

Prüft, ob die Eingabe zu einem regulären Ausdruck passt.

Beispielkonfiguration für (inquiry.form.catalogue.fields.additionalInfo)

Parameterübersicht

dataChecker.email - E‑Mail-Adresse

Prüft, ob die Eingabe eine gültige E‑Mail-Adresse ist.

Beispielkonfiguration für (inquiry.form.catalogue.fields.mail)

Parameterübersicht

dataChecker.alphaClass - Buchstaben (min/verschiedene)

Stellt sicher, dass die Eingabe mindestens minChars lateinische Buchstaben enthält (Groß-/Kleinschreibung egal); optional Mindestanzahl unterschiedlicher Buchstaben.

Beispielkonfiguration für (inquiry.form.catalogue.fields.additionalInfo)

Parameterübersicht

dataChecker.lowerAlphaClass - Kleinbuchstaben

Wie alphaClass, jedoch nur Kleinbuchstaben.

Beispielkonfiguration für (inquiry.form.catalogue.fields.additionalInfo)

Parameterübersicht

dataChecker.upperAlphaClass - Großbuchstaben

Wie alphaClass, jedoch nur Großbuchstaben.

Beispielkonfiguration für (inquiry.form.catalogue.fields.additionalInfo)

Parameterübersicht

dataChecker.digitClass - Ziffern

Wie alphaClass, jedoch für Ziffern.

Beispielkonfiguration für (inquiry.form.catalogue.fields.additionalInfo)

Parameterübersicht

dataChecker.specialClass - Sonderzeichen

Wie alphaClass, jedoch für Sonderzeichen.

Beispielkonfiguration für (inquiry.form.catalogue.fields.additionalInfo)

Parameterübersicht

dataChecker.sequenceOfIdenticalCharacters - Wiederholte Zeichen (Sequenz)

Prüft, ob dasselbe Zeichen zu oft hintereinander vorkommt.

Beispielkonfiguration für (inquiry.form.catalogue.fields.additionalInfo)

Parameterübersicht

dataChecker.consecutiveNumbers - Fortlaufende Zahlen

Prüft auf auf- oder absteigende Zahlenketten (z. B. 12345 oder 54321).

Beispielkonfiguration für (inquiry.form.catalogue.fields.additionalInfo)

Parameterübersicht

dataChecker.consecutiveLetters - Fortlaufende Buchstaben

Prüft auf auf- oder absteigende Buchstabenkombinationen (z. B. abcd oder dcba).

Beispielkonfiguration für (inquiry.form.catalogue.fields.additionalInfo)

Parameterübersicht

dataChecker.palindrome - Palindrom

Prüft, ob die Eingabe ein Palindrom ist (vorwärts/rückwärts identisch, z. B. „Otto”).

Beispielkonfiguration für (inquiry.form.catalogue.fields.additionalInfo)

Parameterübersicht


paymentValidation.* - Zahlungsarten-Validierung

paymentValidation.* enthält Regeln, mit denen festgelegt wird, ob eine Zahlungsart im Checkout erlaubt ist. Die Prüfung kann z.B. vom Land der Rechnungs- oder Lieferadresse, vom Kundentyp, vom Warenkorb oder vom Bestellwert abhängen. Diese Regeln können in der Konfiguration der jeweiligen Zahlungsart unter validations eingetragen werden. Das Frontend zeigt dann nur passende Zahlungsarten an oder verhindert die Auswahl, wenn die Bedingungen nicht erfüllt sind. Hier geht es zum zugehörigen Konfigurationsknoten payment: payment - Zahlungsmethoden Auswertung im Frontend Im Template werden die konfigurierten Regeln über die Methode $wsCheckout.isValidPayment(paymentId) ausgewertet: Sie führt alle unter validations hinterlegten Services aus und gibt false zurück, sobald mindestens eine Regel fehlschlägt. So werden nicht verfügbare Zahlungsarten in der Auswahl deaktiviert oder ausgeblendet.
Für die aktuell ausgewählte Zahlungsart stehen die Gründe einer fehlgeschlagenen Prüfung unter $wsCheckout.problems.payment bereit. Das Feld subCode nennt den fehlgeschlagenen Service.

paymentValidation.billCountry - Validierung des Landes (Rechnungsadresse) für Zahlungsarten

Prüft, ob das Land der Rechnungsadresse entsprechend einer „Allow/Deny”-Liste für eine Zahlungsart zulässig ist. Über die Optionen kann festgelegt werden, für welche Länder die Regel greift und ob diese Liste Länder erlaubt oder verbietet.

Beispielkonfiguration

Parameterübersicht

paymentValidation.billPhone - Validierung der Telefonnummer

Prüft, ob für die Rechnungsadresse eine Telefonnummer angegeben ist (das Feld darf nicht leer sein).

Beispielkonfiguration

Für diesen Service sind keine Parameter vorhanden.

paymentValidation.billDateOfBirth - Validierung des Geburtsdatums

Prüft, ob für die Rechnungsadresse ein Geburtsdatum angegeben ist (das Feld darf nicht leer sein).

Beispielkonfiguration

Für diesen Service sind keine Parameter vorhanden.

paymentValidation.shippingCountry - Validierung des Landes (Lieferadresse)

Prüft, ob das Land der Lieferadresse entsprechend einer „Allow/Deny”-Liste zulässig ist. Über die Optionen kann festgelegt werden, für welche Länder die Regel greift und ob diese Liste Länder erlaubt oder verbietet.

Beispielkonfiguration

Parameterübersicht

paymentValidation.shippingMethod - Validierung der Versandart für Zahlungsarten

Prüft, ob die gewählte Zahlart nur mit bestimmten Versandarten verwendet werden darf.

Beispielkonfiguration

Parameterübersicht

paymentValidation.accountType - Validierung des Kundentyps für Zahlungsarten

Prüft, ob die gewählte Zahlart nur für bestimmte Kundentypen verwendet werden darf (Gast, Neukunde oder Bestandskunde).

Beispielkonfiguration

Parameterübersicht

Wie der Kundentyp ermittelt wird
  • guest - Der Kunde bestellt als Gast (ohne Benutzerkonto).
  • newCustomer - Ein eingeloggter Kunde, der beim Login die in accounts.account.newCustomerRules konfigurierten Neukunden-Regeln erfüllt. Eine Neuregistrierung im Bestellablauf führt unabhängig von den Regeln immer zum Typ newCustomer.
  • customer - Jeder andere eingeloggte Kunde. Sind keine Neukunden-Regeln konfiguriert, gelten eingeloggte Kunden immer als customer.
Der hier geprüfte Kundentyp ist nicht identisch mit der Template-Variable $wsCheckout.accountType (guest / new / registered): Diese gibt die im Bestellablauf gewählte Anmeldemethode aus, während die Validierung zwischen Neu- und Bestandskunden (newCustomer / customer) unterscheidet. In den Bestelldaten werden customer und newCustomer beide als registered ausgegeben.

paymentValidation.denyDifferingShippingAddress - Validierung abweichender Lieferadressen für Zahlungsarten

Prüft, ob Rechnungsadresse und Lieferadresse identisch sind.
Die Zahlart ist nur erlaubt, wenn keine abweichende Lieferadresse verwendet wird.

Beispielkonfiguration

Parameterübersicht

paymentValidation.voucherDeny - Validierung von Gutscheinprodukten für Zahlungsarten

Prüft, ob Gutscheinprodukte im Warenkorb sind. Wenn Gutscheinprodukte im Warenkorb sind, ist diese Zahlart nicht erlaubt.

Beispielkonfiguration

Parameterübersicht

paymentValidation.total - Validierung von Mindest- / Maximalbestellwert für Zahlungsarten

Prüft, ob die Zahlart nur verwendet werden darf, wenn ein bestimmter Mindest- oder Maximalbestellwert erreicht bzw. überschritten wird.

Beispielkonfiguration

Parameterübersicht

Wenn Mindest- und Maximalbestellwert gleichzeitig geprüft werden sollen, muss diese Prüfung zweimal mit unterschiedlichen Optionen konfiguriert werden.

paymentValidation.inventoryState - Validierung des Lagerbestandes für Zahlungsarten

Prüft, ob sich im Warenkorb Produkte mit einem bestimmten Lagerbestand befinden. Wenn ein Produkt im Warenkorb einen in deny konfigurierten Status hat, ist die Zahlungsart nicht erlaubt.

Beispielkonfiguration

Parameterübersicht

paymentValidation.productDependency - Validierung der Produkt-Abhängigkeiten für Zahlungsarten

Prüft die Produkte im Warenkorb anhand der Konfiguration checkout.productDependency.
Eine Zahlungsart wird nur angeboten, wenn alle referenzierten Produktabhängigkeiten erfüllt sind.
Auf diese Weise koppeln Sie eine Zahlungsart an Warenkorb-Eigenschaften, ohne die Prüflogik zu duplizieren. Die eigentlichen Bedingungen (Produktfelder, Freifelder, Wertevergleiche) werden zentral in checkout.productDependency gepflegt.

Beispielkonfiguration

Die Option “Kauf auf Rechnung” soll gesperrt werden, sobald sich ein personalisiertes Produkt (z.B. mit Gravur) im Warenkorb befindet. Weil personalisierte Artikel nicht retournierbar sind, tragen sie ein höheres Zahlungsausfallrisiko. Die Bedingung “keine Gravur im Warenkorb” definieren Sie in checkout.productDependency und referenzieren sie anschließend hier.

Parameterübersicht

paymentValidation.userAgent - Validierung des User-Agents für Zahlungsarten

Prüft, ob eine Zahlungsart basierend auf dem genutzten Gerät oder Browser des Kunden angezeigt wird. Geräte und Browser übermitteln beim Seitenaufruf automatisch eine technische Kennung, den sogenannten User-Agent. Anhand dieser Kennung lässt sich z.B. erkennen, ob jemand ein iPhone, ein iPad oder einen Mac verwendet. Die in userAgents eingetragenen Begriffe werden gegen diese Kennung geprüft, ein Treffer genügt. So lässt sich eine Zahlungsart gezielt nur für bestimmte Geräte oder Browser freischalten oder sperren, z.B. wenn Apple Pay nur für Kunden angezeigt werden soll, die ein Apple-Gerät oder einen kompatiblen Browser verwenden.

Beispielkonfiguration

Parameterübersicht


paymentFieldDisplayCheck.* - Anzeigebedingungen für Zusatzfelder

paymentFieldDisplayCheck.* enthält Bedingungen, die steuern, wann ein Zusatzfeld einer Zahlungsart im Checkout angezeigt wird. So erscheint ein Feld beispielsweise nur für bestimmte Rechnungsländer oder nur dann, wenn ein anderes Zusatzfeld einen bestimmten Wert hat. Die Bedingungen werden in der Felddefinition unter displayConditions eingetragen. Sind mehrere Bedingungen hinterlegt, müssen alle erfüllt sein. Anders als die Prüfungen unter validations erzeugen die Bedingungen keine Fehlermeldung. Ist eine Bedingung nicht erfüllt, blendet der Shop das Feld aus, prüft es nicht und verlangt es auch als Pflichtfeld nicht. Kann eine Bedingung nicht ausgewertet werden, gilt sie als nicht erfüllt und das Feld bleibt ausgeblendet. Das betrifft beispielsweise eine Adresse, die sich nicht laden lässt, oder eine unvollständige Konfiguration. Die Ursache steht dann im LogManager.

paymentFieldDisplayCheck.billCountry / shippingCountry - Land der Rechnungs- oder Lieferadresse

Prüft das Land der im Checkout gewählten Rechnungsadresse (billCountry) oder Lieferadresse (shippingCountry) gegen eine Länderliste.

Beispielkonfiguration

Parameterübersicht

Die Bedingung ist nicht erfüllt, wenn sich die Adresse nicht laden lässt oder ihr Land nicht als aktiver Länderknoten konfiguriert ist.
Ohne abweichende Lieferadresse prüft shippingCountry das Land der Rechnungsadresse.

paymentFieldDisplayCheck.billAddressField / shippingAddressField - Feld der Rechnungs- oder Lieferadresse

Prüft ein einzelnes Feld der im Checkout gewählten Rechnungsadresse (billAddressField) oder Lieferadresse (shippingAddressField).

Beispielkonfiguration

Das Feld wird nur angezeigt, wenn die Rechnungsadresse keine Firma enthält:

Parameterübersicht

Die Bedingung ist nicht erfüllt, wenn sich die Adresse nicht laden lässt, field oder type fehlt, das Feld in der Adresse nicht existiert oder type einen unbekannten Wert hat.

paymentFieldDisplayCheck.paymentField - Wert eines anderen Zusatzfeldes

Prüft den aktuellen Wert eines anderen Zusatzfeldes aus dem laufenden Checkout. Damit lassen sich abhängige Felder bauen, die erst nach einer bestimmten Eingabe erscheinen.

Beispielkonfiguration

Das Feld wird nur angezeigt, wenn im Zusatzfeld invoiceToCompany die Checkbox gesetzt ist:

Parameterübersicht

Die Bedingung ist nicht erfüllt, wenn field oder type fehlt oder type einen unbekannten Wert hat.
Der Shop speichert den Wert eines Zusatzfeldes erst mit der Aktion CheckoutSetPaymentFields. Ein abhängiges Feld erscheint daher erst, nachdem das Formular abgeschickt wurde, beispielsweise automatisch bei jeder Änderung.

shippingMethodValidation.* - Versandarten-Validierung

shippingMethodValidation.* enthält Regeln, mit denen festgelegt wird, ob eine Versandart im Checkout erlaubt ist. Die Prüfung kann z.B. vom Lieferland, vom Warenwert, von Produkttypen oder von der gewählten Zahlungsart abhängen. Diese Regeln können in der Konfiguration der jeweiligen Versandart unter validations eingetragen werden. Das Frontend stellt dann nur die Versandarten bereit, die zu den aktuellen Bedingungen passen. Auswertung im Frontend Im Template werden die konfigurierten Regeln über die Methode $wsCheckout.isValidShippingMethod(shippingMethodId) ausgewertet (gleiches Muster wie bei den Zahlungsarten). Die Gründe für eine deaktivierte Versandart lassen sich zusätzlich über $wsCheckout.getShippingMethodDisabledErrors(shippingMethodId) ausgeben.

shippingMethodValidation.shippingCountry - Validierung des Landes (Lieferadresse)

Prüft, ob das Land der Lieferadresse entsprechend einer „Allow/Deny”-Liste zulässig ist. Über die Optionen kann festgelegt werden, für welche Länder die Regel greift und ob diese Liste Länder erlaubt oder verbietet.

Beispielkonfiguration

Parameterübersicht

shippingMethodValidation.paymentMethod - Validierung der Zahlungsart für Versandarten

Prüft, ob eine Versandart nur mit bestimmten Zahlungsarten verwendet werden darf.

Beispielkonfiguration

Parameterübersicht

shippingMethodValidation.valueOfGoods - Validierung des Mindest-/Maximalbestellwerts für Versandarten

Prüft, ob die Versandart nur verwendet werden darf, wenn ein bestimmter Mindest- oder Maximalbestellwert erreicht bzw. überschritten wird.

Beispielkonfiguration

Parameterübersicht

shippingMethodValidation.productType - Validierung des Produkttyps für Versandarten

Prüft, ob alle Produkte im Warenkorb einen passenden Produkttyp haben.

Beispielkonfiguration

Parameterübersicht

shippingMethodValidation.productDependency - Validierung der Produkt-Abhängigkeiten für Versandarten

Prüft die Produkte im Warenkorb anhand der Konfiguration checkout.productDependency.

Beispielkonfiguration

Parameterübersicht

shippingMethodValidation.expressCheckout - Validierung des Express-Checkout für Versandarten

Prüft, ob eine Versandart abhängig von der im Express-Checkout verwendeten Zahlungsart erlaubt ist. Die Prüfung greift bei PayPal Express sowie Apple Pay und Google Pay Express (PayPal Commerce Platform).

Beispielkonfiguration

Die Versandart soll nicht wählbar sein, wenn der Kunde den Bestellvorgang als PayPal-Express-Checkout durchläuft:

Parameterübersicht

Schlägt die Prüfung fehl, liefert die Validierung den Fehler expressCheckoutDenied bzw. expressCheckoutNotAllowed. Im Frontend lässt er sich über $wsCheckout.getShippingMethodDisabledErrors() ausgeben.

payment.* - Online-Clearing-Services

Ein Online-Clearing-Service wickelt die Zahlung einer Zahlungsart in Echtzeit über einen Zahlungsanbieter ab. Die Zuordnung erfolgt in der Zahlungsart unter payment.payment im Feld onlineClearing. Zahlungsarten ohne onlineClearing gelten als Offline-Zahlungsarten, beispielsweise Vorkasse oder Rechnung ohne Anbieter. Anders als die Validierungs- und Prüfservices wird ein Online-Clearing-Service nicht in einer Liste validations, sondern über ein Feld vom Typ singleService referenziert. Jede Zahlungsart verweist auf genau einen Service. Die anbieterspezifischen Einstellungen stehen in den Knoten payment.computopHosted, payment.stripe und payment.payPalCheckout. Die Optionen des Services regeln nur, auf welche Seiten des Shops der Kunde während der Zahlung geleitet wird.

Ausstehende Zahlungen und Pending-Seite

Alle drei Services kennen eine Pending-Seite. Der Shop zeigt sie an, solange eine Zahlung beim Anbieter noch nicht abgeschlossen ist. In dieser Zeit ist die Session gesperrt. Der Kunde kann dann nur die Pending-Seite, die Bestellbestätigung, den Bestellablauf und die Startseite aufrufen. Ruft er eine andere Seite auf, leitet der Shop ihn zurück auf die Pending-Seite. Der Shop hängt an die URL der Pending-Seite den Parameter wsPaymentStatus=refresh an. Ist die Zahlung inzwischen abgeschlossen, leitet der Shop beim Aufruf der Pending-Seite direkt auf die Bestellbestätigung weiter. Ist in den Service-Optionen keine Pending-Seite hinterlegt, greift der Shop auf das Feld pendingTemplate im Knoten general.subshopView zurück. Die genaue Reihenfolge je Anbieter beschreiben die folgenden Abschnitte.

payment.computop-hosted - Computop Hosted Payment Page

Leitet den Kunden auf die gehostete Bezahlseite von Computop. Der Shop rendert dafür zuerst eine eigene Seite mit einem Formular, das die Zahlungsdaten per POST an Computop übergibt. Diese Seite wird über die Option view festgelegt. Die ID der Zahlungsart unter payment.payment muss mit der id eines Eintrags unter payment.computopHosted übereinstimmen und einer von Computop unterstützten Zahlart entsprechen. Andernfalls bricht der Shop die Zahlung mit der Log-Meldung payment method invalid, not defined in computopHosted config ab.

Beispielkonfiguration (payment.payment.creditcard → onlineClearing)

Parameterübersicht

payment.stripe - Stripe

Bindet Stripe als Zahlungsanbieter an. Die Zahlung läuft über das Stripe-Widget im Bestellablauf. Wählt der Kunde im Widget eine Zahlungsmöglichkeit mit Weiterleitung, kehrt er über die Seite aus der Option view in den Shop zurück. Die Einstellungen zum Stripe-Konto stehen im Knoten payment.stripe. Den Einbau im Template beschreibt Stripe im Frontend.

Beispielkonfiguration (payment.payment.stripe → onlineClearing)

Parameterübersicht

payment.paypal-checkout - PayPal Checkout

Bindet PayPal Checkout (PayPal Commerce Platform) als Zahlungsanbieter an. Die Rückkehr-Seiten für Bestätigung, Abbruch und Fehler legt der Knoten payment.payPalCheckout fest. Die Option view des Services legt die Seite für Zahlungen fest, die nach dem Absenden noch ausstehen, beispielsweise beim Kauf auf Rechnung über PayPal.

Beispielkonfiguration (payment.payment.paypalCheckout → onlineClearing)

Parameterübersicht


captchaCheck.* - Captcha-Prüfung

Ein Captcha-Service prüft, ob eine Anfrage von einem Menschen stammt. Das Frontend bindet dafür das Captcha des Anbieters ein und schickt dessen Token mit der Aktion an den Shop. Der Service reicht das Token zur Prüfung an den Anbieter weiter. Die Zugangsdaten des Anbieters liegen im Knoten security. Welcher Anbieter an einer Stelle prüft, legt der Verweis auf den Service fest. Drei Stellen können einen Captcha-Service verwenden:
  • inquiry.form im Feld captcha schützt ein Formular. Die Prüfung läuft bei jeder Ausführung der Aktion InquirySend.
  • payment.paymentBlock im Feld captcha sichert den Bestellabschluss gegen wiederholte Zahlungsversuche. Die Prüfung läuft erst, wenn der Shop nach mehreren Fehlversuchen ein Captcha verlangt. Ob das der Fall ist, gibt $wsCheckout.paymentCaptchaRequired aus.
  • security.actionGuard im Feld captcha schützt eine beliebige Aktion.

Beispielkonfiguration (inquiry.form.contact → captcha)

Beide Services prüfen zuerst die Cookie-Einwilligung. Fehlt die Einwilligung für den Consent-Service, dessen Name im Feld name des Anbieterknotens steht, schlägt die Prüfung ohne Anfrage beim Anbieter fehl. Das Feld name muss deshalb mit dem Namen des Dienstes in der Consent-Verwaltung übereinstimmen. Das Token erwartet der Shop in einem fest vorgegebenen Request-Parameter der Aktion. Der Name lässt sich nicht konfigurieren. Schlägt die Prüfung bei InquirySend oder beim Bestellabschluss fehl, liefert die Aktion den Fehlercode captchaFailed. Den Text dazu pflegen Sie im Fehlertext-Knoten der Aktion, beispielsweise unter actions.inquirySend.

captchaCheck.recaptchav3 - Google reCAPTCHA v3

Prüft ein Token von Google reCAPTCHA v3. Google liefert zu jedem Token eine Bewertung zwischen 0.0 und 1.0. Liegt sie unter minimumScore aus security.recaptchav3, gilt die Prüfung als fehlgeschlagen.

Beispielkonfiguration

Parameterübersicht

captchaCheck.friendlyCaptchaV1 - Friendly Captcha v1

Prüft eine Lösung von Friendly Captcha v1. Der Shop sendet die Lösung zusammen mit apiKey und siteKey aus security.friendlyCaptchaV1 an die verifyUrl des Anbieters.

Beispielkonfiguration

Parameterübersicht


unitConverter.* - Einheitenumrechnung

Ein Kundendatenfeld vom Typ number kann eine dynamische Einheit haben. Der Kunde wählt dann die Einheit aus einer Liste, beispielsweise Meter oder Zentimeter. Wechselt er die Einheit, rechnet ein Umrechnungsservice den eingegebenen Wert in die neue Einheit um. Der Service wird im Kundendatenfeld unter customer.customerDataField im Feld type.number.unit.dynamic.converter eingetragen. Ohne Eintrag speichert der Shop den Wert unverändert mit der neuen Einheit.

unitConverter.orderOfMagnitude - Umrechnung über Faktoren

Rechnet über die Faktoren, die an den Einheiten unter unitOptions hinterlegt sind. Der Service selbst hat keine Optionen. Die Umrechnung folgt der Formel:
Als vorherige Einheit gilt die Einheit aus der Session. Ist dort keine hinterlegt, nimmt der Shop die im Kundenkonto gespeicherte Einheit. Ist auch dort keine bekannt, rechnet er mit dem Faktor 1. Ist der Faktor der vorherigen Einheit 0, ergibt die Umrechnung 0. Der Faktor gibt an, wie viele Einheiten einer Bezugsgröße entsprechen. Geben Sie der Basiseinheit aus baseUnitName deshalb den Faktor 1. So stimmt auch die Umrechnung, wenn keine vorherige Einheit bekannt ist.

Beispielkonfiguration (customer.customerDataField.raumhoehe → type)

Hat der Kunde 2.5 in Metern eingegeben und wechselt auf Zentimeter, speichert der Shop 2.5 × 100 ÷ 1 = 250.

Parameterübersicht