
shop.config und Ihre Templates ein.
Wie die Prüfung arbeitet
Personalausweis
Die Personalausweisnummer besteht aus vier Blöcken, und jeder Block trägt am Ende seine eigene Prüfziffer. Entsprechend fragt der Shop sie in vier Feldern ab.
Das fünfte Feld gibt es nur intern. Der Shop setzt darin die Eingaben zusammen, um die Gesamtprüfziffer nachzurechnen. Sie legen es an, bauen aber kein Eingabefeld dafür.
Bei neueren Personalausweisen steht vor der Gesamtprüfziffer noch eine vierstellige Versionsnummer. In diesem Fall ist
IdentityCard4 nicht ein, sondern fünf Zeichen lang. Der Shop erkennt beide Bauarten.
Reisepass
Die Reisepassnummer besteht ebenfalls aus mehreren Blöcken, wird aber in einem einzigen FeldPassportNumber1 abgefragt. Der Käufer überträgt die untere Zeile aus seinem Pass, ohne Leerzeichen.

Kürzer als 26 Zeichen wird die Nummer nicht angenommen. Ab 28 Zeichen behandelt der Shop sie als Nummer der neueren Bauart.
Altersprüfung
Das Geburtsdatum steckt in der Nummer, deshalb kann der Shop daraus das Alter ausrechnen.Was ein leeres Feld bedeutet
Ein leeres Feld besteht jede inhaltliche Prüfung. Gültigkeitsprüfung, Altersprüfung und Höchstlängenprüfung greifen nur, wenn überhaupt etwas eingetragen wurde. Zur Pflicht wird ein Feld allein durch eine Mindestlängenprüfung mitType = minlen und Len = 1. Diese eine Prüfung ist der Grund, warum in den Konfigurationsbeispielen unten so viele Blöcke stehen.
Fehlermeldungen: allgemein statt genau
Sie können dem Käufer anzeigen lassen, welcher Block seiner Eingabe nicht stimmt. Das erleichtert die Korrektur, macht aber auch das Ausprobieren leichter: Wer blockweise Rückmeldung bekommt, kann sich Ziffer für Ziffer an eine formal gültige Nummer herantasten. Die Beispiele auf dieser Seite verzichten deshalb auf blockgenaue Rückmeldung und geben nur einen allgemeinen Hinweis aus.Voraussetzung: Abfrage auf deutsche Kunden beschränken
Geprüft werden können nur deutsche Ausweise. Käufern mit ausländischer Rechnungsadresse dürfen die Felder deshalb gar nicht erst erscheinen. Dafür brauchen Sie drei Dinge, unabhängig davon, ob Sie den Personalausweis, den Reisepass oder beides abfragen. Erstens muss das Länderfeld aktiv sein, denn die Sichtbarkeitsregel fragt es ab.ResetIfHidden = yes leert die Felder, sobald der Käufer sein Land wechselt. Ohne diese Einstellung bliebe eine bereits eingegebene Ausweisnummer in den Daten stehen, obwohl das Formular sie nicht mehr zeigt.
Damit das Ein- und Ausblenden schon während der Eingabe passiert und nicht erst nach dem Absenden, gehört zum Länderfeld das Nachladen der Adressfelder. Wie das eingerichtet wird, steht bei der eingabeabhängigen Adressdatensteuerung.
Referenz: Abschnitt AddressFields-Txt · Abschnitt AddressFields-Standards · Abschnitt AddressFields-InputVisibility
Personalausweisnummer abfragen
Schritt 1: Felder anlegen
IdentityCard5 erscheint nirgends. Er muss nur dastehen, damit das Feld aktiv ist.
Schritt 2: Höchstlänge der Eingabefelder
IdentityCard4 auf 5, wenn Sie auch Ausweise der neueren Bauart mit vierstelliger Versionsnummer aufnehmen wollen.
Referenz: Abschnitt AddressMaxInputLen
Schritt 3: Fehlertexte hinterlegen
Fehlertexte bekommen eine Kennung, auf die sich die Prüfungen später berufen. Sie stehen im Abschnitt<ErrorMessages> innerhalb von <InputCheck>.
~FieldName~ ersetzt der Shop durch die Beschriftung des Feldes, das den Fehler ausgelöst hat.
Findet der Shop zu einer ErrorMessageID keinen Eintrag, greift er auf den Text unter Default zurück. Ein Tippfehler in der Kennung fällt deshalb nicht als Fehler auf, sondern als unerwartet allgemeine Meldung.
Schritt 4: Prüfungen festlegen
Die Feldnamen inAddressField sind fest vorgegeben und dürfen nicht geändert werden.
- Die Gültigkeitsprüfung läuft über vier Felder, aber nicht über dieselben vier wie die Pflichtfeldprüfung.
IdentityCard1,IdentityCard2undIdentityCard3tragen je eine eigene Blockprüfziffer, die einzeln nachgerechnet wird.IdentityCard5trägt die Gesamtprüfziffer.IdentityCard4ist diese Gesamtprüfziffer selbst und wird deshalb nicht geprüft, sondern zum Prüfen verwendet. - Die Altersprüfung gehört auf
IdentityCard2, denn nur dort steht das Geburtsdatum. Auf ein anderes Feld gesetzt, liest sie sinnlose Werte. - Soll nur die Gültigkeit geprüft werden und nicht das Alter, lassen Sie den dritten Block weg.
Type = maxlen für IdentityCard1 bis IdentityCard4, mit denselben Längen wie in Schritt 2.
Referenz: Abschnitt InputCheck
Schritt 5: Eingabefelder ins Template
Die Felder gehören innerhalb des<form> auf die Adressseite im Bestellablauf (ws_address_combined.htm) und auf die Adressverwaltung im Kundenkonto (ws_address_manage.htm).
Der Fehlertext zur Gültigkeitsprüfung erscheint an A-IdentityCard5_errormessage, weil nur dieses Feld die vollständige Nummer kennt. Deshalb steht er einmal unter der Vierergruppe und nicht viermal einzeln.
A-technischer Name mit den Endungen _text, _input, _max, _error, _errormessage, _visible
Schritt 6: Eingegebene Nummer anzeigen
Sinnvoll auf der Bestellübersicht (ws_place_order.htm) und der Bestelleingangsbestätigung (ws_confirm.htm).
Reisepassnummer abfragen
Der Ablauf entspricht dem oben beschriebenen. Es gibt nur ein Feld, und die Prüftypen heißen anders.Schritt 1: Feld anlegen und Länge festlegen
PassportNumber1 bauen Sie wie oben, mit einem eigenen <+FieldVisibility>-Block im selben Abschnitt.
Schritt 2: Fehlertexte ergänzen
Schritt 3: Prüfungen festlegen
agecheckpassport, nicht agecheck. Sie sucht das Geburtsdatum an einer anderen Stelle, nämlich mitten in der Nummer statt an ihrem Anfang.
Schritt 4: Eingabefeld ins Template
{A-PassportNumber1}.
Beides gleichzeitig anbieten
Bieten Sie beide Nummern an, soll der Käufer eine von beiden ausfüllen dürfen, nicht beide. Genau das ist der schwierige Teil, denn die Pflichtfeldprüfungen aus den Abschnitten oben würden sich gegenseitig blockieren. Die Lösung besteht aus Bedingungen: Jede Pflichtfeldprüfung wird an die Bedingung geknüpft, dass die jeweils andere Nummer leer ist.Schritt 1: Zusätzlichen Fehlertext anlegen
Schritt 2: Pflichtfeldprüfung des Personalausweises ergänzen
Erweitern Sie die Pflichtfeldprüfung aus dem Personalausweis-Abschnitt um eine zweite Bedingung und tauschen Sie die Fehlerkennung aus.<+Condition>-Blöcke in einer Prüfung wirken zusammen: Die Prüfung läuft nur, wenn alle Bedingungen zutreffen.
Die Pflichtfeldprüfung des Reisepasses bekommt spiegelbildlich vier Bedingungen, je eine pro Personalausweisfeld, alle mit Type = empty.
Schritt 3: Angefangene Personalausweiseingabe vollständig einfordern
Hat der Käufer auch nur eines der vier Personalausweisfelder ausgefüllt, sollen alle vier ausgefüllt sein. Dafür brauchen Sie vier weitere Prüfungen, die sich nur im Feld ihrer Bedingung unterscheiden.IdentityCard2, IdentityCard3 und IdentityCard4 in der Bedingung. Der Rest bleibt jeweils gleich.
Bedingungstypen im Überblick
Type in einem <+Condition>-Block kennt diese Werte:
