<Servicetyp>.<Implementierung> und bei Bedarf aus einem Objekt options:
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:
Weiterführend
general.addressListElements– Definition der Listen und ihrer zulässigen Werte.- $wsConfig.listElements – Ausgabe derselben Liste als Auswahlfeld im Formular.
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.
$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
paymentValidation.billDateOfBirth - Validierung des Geburtsdatums
Prüft, ob für die Rechnungsadresse ein Geburtsdatum angegeben ist (das Feld darf nicht leer sein).
Beispielkonfiguration
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 inaccounts.account.newCustomerRuleskonfigurierten Neukunden-Regeln erfüllt. Eine Neuregistrierung im Bestellablauf führt unabhängig von den Regeln immer zum TypnewCustomer.customer- Jeder andere eingeloggte Kunde. Sind keine Neukunden-Regeln konfiguriert, gelten eingeloggte Kunden immer alscustomer.
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 ZusatzfeldinvoiceToCompany 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 ParameterwsPaymentStatus=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.formim Feldcaptchaschützt ein Formular. Die Prüfung läuft bei jeder Ausführung der AktionInquirySend.payment.paymentBlockim Feldcaptchasichert 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.paymentCaptchaRequiredaus.security.actionGuardim Feldcaptchaschützt eine beliebige Aktion.
Beispielkonfiguration (inquiry.form.contact → captcha)
Consent und Request-Parameter
Beide Services prüfen zuerst die Cookie-Einwilligung. Fehlt die Einwilligung für den Consent-Service, dessen Name im Feldname 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:
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)
2.5 in Metern eingegeben und wechselt auf Zentimeter, speichert der Shop 2.5 × 100 ÷ 1 = 250.
