In diesem Abschnitt der Shopkonfiguration shop.config legen Sie die Prüfungen von Adressdaten fest.

Wegweiser: Prüfungen von Adressdaten festlegen

Inhalt

1.InputCheck - Regeln festlegen

2.ErrorMessages - Fehlermeldungen formulieren

3.AddressField - Gleiche Regeln zusammenfassen

4.Adresstype - Unterscheidung zwischen Rechnungs- und Lieferadresse

5.Condition - Bedingungen für die Prüfung festlegen

6.InputCheckDefaults - Standardbehandlung für alle Prüfungen festlegen

7.Alle Unterabschnitte und Parameter im Überblick

8.Kompletter Abschnitt (Beispiel)

 

1. InputCheck - Regeln festlegen

Für jede Prüfungsregel muss ein <+InputCheck>-Abschnitt erstellt werden.
Beispiel: Der Vorname soll ein Pflichtfeld sein (es muss also mindestens ein Zeichen eingegeben werden).

<InputCheck>
 
   <+InputCheck>
      AddressField   = FirstName
      Type           = minlen
      Len            = 1
   </+InputCheck>
 
</InputCheck>

2. ErrorMessages - Fehlermeldungen formulieren

Für jede Prüfungsregel kann eine individuelle Fehlermeldung im Abschnitt <ErrorMessages> hinterlegt werden.

Es muss der Abschnitt <Errormessages> hinzugefügt werden. Pro Fehlermeldung muss eine eindeutige Bezeichnung (ID) angegeben werden.

Diese ID wird dann im Abschnitt <+InputCheck> mit dem Parameter ErrorMessageID der Prüfungsregel zugewiesen.

Wird im Abschnitt <+InputCheck> keine Fehlermeldung zugewiesen, greift eine Default-Meldung, die im Abschnitt <Errormessage> angegeben werden muss:

In der Fehlermeldung wird das lokale Tag FieldName unterstützt, das durch den festgelegten Namen des Adressfelds ersetzt wird.

Beispiel: Der Vorname ist ein Pflichtfeld. Wird das Feld nicht ausgefüllt, dann wird die Meldung "Bitte füllen Sie das Feld Vorname aus" angezeigt.

<InputCheck>
   <ErrorMessages>
      Default        = Bitte überprüfen Sie Ihre Eingabe in ~FieldName~ und versuchen Sie es erneut.
      emptyerror     = Bitte füllen Sie das Feld ~FieldName~ aus.
   </ErrorMessages>
 
   <+InputCheck>
      AddressField   = FirstName
      Type           = minlen
      Len            = 1
      ErrorMessageID = emptyerror
   </+InputCheck>
 
</InputCheck>

3. AddressField - Gleiche Regeln zusammenfassen

Wenn ein InputCheck für mehrere Felder gelten soll, dann muss kein zweiter <+InputCheck>-Abschnitt angelegt werden, sondern man kann weitere Felder kommasepariert hinzufügen.

Beispiel: Vorname, Nachname und Straße sind Pflichtfelder.

<InputCheck>
   <ErrorMessages>
      Default        = Bitte überprüfen Sie Ihre Eingabe in ~FieldName~ und versuchen Sie es erneut.
      emptyerror     = Bitte füllen Sie das Feld ~FieldName~ aus.
   </ErrorMessages>
 
   <+InputCheck>
      AddressField   = FirstName,LastName,Street1
      Type           = minlen
      Len            = 1
      ErrorMessageID = emptyerror
   </+InputCheck>
 
</InputCheck>

4. Adresstype - Unterscheidung zwischen Rechnungs- und Lieferadresse

Soll ein InputCheck nur für einen bestimmten Adresstyp verwendet werden, kann man das mit dem Parameter Adresstyp angeben.

Beispiel: Vorname, Nachname und Straße sind nur noch bei der Rechnungsadresse (bill) Pflichtfelder und nicht bei der Lieferadresse (delivery).

<InputCheck>
   <ErrorMessages>
      Default        = Bitte überprüfen Sie Ihre Eingabe in ~FieldName~ und versuchen Sie es erneut.
      emptyerror     = Bitte füllen Sie das Feld ~FieldName~ aus.
   </ErrorMessages>
 
   <+InputCheck>
      AddressField   = FirstName,LastName,Street1
      Adresstype     = bill
      Type           = minlen
      Len            = 1
      ErrorMessageID = emptyerror
   </+InputCheck>
 
</InputCheck>

5. Condition - Bedingungen für die Prüfung festlegen

Erweitert man den InputCheck mit einem Unterabschnitt <+Condition>, dann tritt die Prüfregel nur in Kraft, wenn die Bedingung erfüllt ist.

Beispiel: Die Steuernummer ist nur dann ein Pflichtfeld, wenn das Feld Firma ausgefüllt worden ist.

<InputCheck>
   <ErrorMessages>
      Default        = Bitte überprüfen Sie Ihre Eingabe in ~FieldName~ und versuchen Sie es erneut.
      emptyerror     = Bitte füllen Sie das Feld ~FieldName~ aus.
   </ErrorMessages>
 
   <+InputCheck>
      AddressField   = TaxID
      Adresstype     = bill
      Type           = minlen
      Len            = 1
      ErrorMessageID = emptyerror
      <+Condition>      
         Field          = Company
         Type           = filled
         BasketBehavior =
      </+Condition>
   </+InputCheck>
 
</InputCheck>

6. InputCheckDefaults - Standardbehandlung für alle Prüfungen festlegen

Mit dem Abschnitt <InputCheckDefaults> kann eine Standardbehandlung für alle Prüfungen festgelegt werden. Diese Standardbehandlung wird jedoch nur für die Eingabefelder verwendet, für die auch (mindestens) eine Prüfung in einem <+InputCheck>-Abschnitt konfiguriert wurde.

Soll bei einem Eingabefeld nur die Standardbehandlung angewendet werden, ohne dass eine inhaltliche oder syntaktische Prüfung erfolgt, so muss eine Prüfung des Typs nocheck für dieses Feld angelegt werden.

Die Standardbehandlung kann für jede einzelne Prüfung bei Bedarf überschrieben werden.

Beispiel: Die Standardbehandlung im <InputCheckDefaults>-Abschnitt greift automatisch für die Felder Vorname, Nachname und Straße, weil für diese Felder bereits ein <+InputCheck> existiert. Damit die Standardbehandlung auch für das Feld Firma gilt, wird ein <+InputCheck> mit Type = nocheck angelegt.

<InputCheck>
   <ErrorMessages>
      Default        = Bitte überprüfen Sie Ihre Eingabe in ~FieldName~ und versuchen Sie es erneut.
      emptyerror     = Bitte füllen Sie das Feld ~FieldName~ aus.
   </ErrorMessages>
 
   <InputCheckDefaults>
      RemoveSigns    = "$"
   </InputCheckDefaults>
 
   <+InputCheck>
      AddressField   = FirstName,LastName,Street1
      Adresstype     = bill
      Type           = minlen
      Len            = 1
      ErrorMessageID = emptyerror
   </+InputCheck>
  
   <+InputCheck>
      AddressField   = Company
      Type           = nocheck
   </+InputCheck>
 
</InputCheck>

7. Alle Unterabschnitte und Parameter im Überblick

Parameter

Zweck

Werte

<ErrorMessages>

Hier werden die Fehlermeldungen festgelegt, die bei den einzelnen Prüfungen verwendet werden. Dieser Abschnitt muss genau einmal vorhanden sein.

 

<InputCheckDefaults>

Hier wird die Standardbehandlung für alle Prüfungen festgelegt (diese Einstellungen können bei jeder einzelnen Prüfung auch überschrieben werden). Dieser Abschnitt darf genau einmal vorhanden sein.

 

<+InputCheck>

Hier werden die einzelnen Prüfungen festgelegt. Dieser Abschnitt darf 500-mal vorhanden sein.

 

<+Condition>

Unterabschnitt mit einer Bedingung, ob die Eingabeprüfung überhaupt erfolgen soll. Mehrere <+Condition>-Abschnitte sind UND-verknüpft, d. h. es müssen alle angegebenen Bedingungen erfüllt sein, damit die Eingabe geprüft wird.

 

Adressfield

Kommaseparierte Liste der technischen Feldnamen der Eingabefelder, für welche diese Prüfung angewendet werden soll. Wenn diese Prüfung auf alle vorhandenen Eingabefelder angewendet werden soll, kann * angegeben werden. Dieser Parameter muss angegeben werden.

Referenz: Abschnitt AdressFields-Txt

Referenz: Abschnitt DeliveryAdressFields-Txt

Kommaseparierte Liste der technischen Feldnamen

oder

* (die Prüfung wird auf alle Eingabefelder angewendet)

Adresstype

Hier kann angegeben werden, ob die Prüfung für die Rechnungs-, die Lieferadresse oder beide Adressen angewendet werden soll.

both

bill

delivery

Standard: both

ErrorMessageID

Hier kann die ID der Fehlermeldung angegeben werden. Die Fehlermeldung mit der entsprechenden ID wird angezeigt, wenn diese Prüfung nicht erfolgreich war. Die Fehlermeldungen werden im Abschnitt ErrorMessages definiert.

Wenn dieser Parameter fehlt oder die Fehlermeldung mit der angegebenen ID nicht vorhanden ist, wird die Fehlermeldung mit der ID Default verwendet.

ID der Fehlermeldung

Standard: Default

RemoveSigns

Die angegebenen Zeichen werden für diese Prüfung aus der Eingabe entfernt.

Sollen keine Zeichen aus der Eingabe entfernt werden, muss der Parameter ohne Wert vorhanden sein: RemoveSigns =

Die Zeichen können optional durch Anführungszeichen eingeschlossen sein.

Beispiel:

- Entfernen aller Leerzeichen: " "

- Entfernen der Zeichen Dollar, Paragraph und Prozent: "$§%" oder $§%

 

Um Zeichen zu entfernen, die nicht im ISO-8859-1-Zeichensatz enthalten sind, können Hex-Werte eingetragen werden. Ein Hex-Wert wird durch ein 0x gefolgt von zwei alphanumerischen Zeichen escapt.

Um etwa alle "•" zu entfernen, muss 0x95 eingetragen werden.

Beispiel:

- Entfernen der Zeichen Dollar, Paragraph, Prozent und •:
  $§%0x95

(Um herauszufinden, welchen Hex-Wert ein Zeichen repräsentiert, kann z. B. ein ASCII-Text-to-Hex-Code-Converter genutzt werden.)

 

Type

innerhalb eines <+InputCheck>-Abschnitts

Dieser Pflicht-Parameter gibt die Art der Prüfung an. Bei einigen Arten müssen zusätzliche, spezielle Parameter angegeben werden!

 

num: Die Eingabe darf nur aus Ziffern 0-9 bestehen.

alpha: Die Eingabe darf nur aus Buchstaben a-z und A-Z bestehen.

alphanum: Die Eingabe darf nur aus Buchstaben und Ziffern bestehen (a-z, A-Z, 0-9)

phone: Die Eingabe muss eine Telefonnummer sein. Eine eingegebene  Telefonnummer wird wie folgt umgewandelt:

- ist das erste Zeichen ein + so wird dieses durch "00" ersetzt

- alle Zeichen die keine Ziffern sind werden entfernt

Beispiel:

Eingabe: +49-(0)911/2013 63 221-0

wird umgewandelt in: 004909112013632210

date: Die Eingabe muss ein korrektes Datum sein. Schaltjahre werden berücksichtigt. Benötigt zusätzliche Parameter DateFormat, Delimiter und FormatLeadingZero.

Beispiel:
29.02.2009 -> kein gültiges Datum
29.02.2008 -> gültiges Datum

 

email: Die Eingabe muss eine gültige E-Mailadresse sein.

zip: Die Eingabe muss eine gültige Postleitzahl sein. Diese Prüfung erfolgt länderabhängig: Ist das geprüfte Eingabefeld ein Teil der Rechnungsadresse, wird das ausgewählte Land der Rechnungsadresse verwendet. Ist das geprüfte Eingabefeld ein Teil der Lieferadresse, wird das ausgewählte Land der Lieferadresse verwendet. Wurde kein Rechnungs- bzw. Lieferadressland ausgewählt, wird auf eine deutsche Postleitzahl geprüft.

taxid: Die Eingabe muss eine gültige UmsatzsteuerID sein. Diese Prüfung erfolgt länderabhängig: Ist das geprüfte Eingabefeld ein Teil der Rechnungsadresse, wird das ausgewählte Land der Rechnungsadresse verwendet. Ist das geprüfte Eingabefeld ein Teil der Lieferadresse, wird das ausgewählte Land der Lieferadresse verwendet. Wurde kein Rechnungs- bzw. Lieferadressland ausgewählt, wird auf eine deutsche UmsatzsteuerID geprüft.

legalsigns: Die Eingabe darf nur aus den in Signs angegebenen Zeichen bestehen.

illegalsigns: Die Eingabe darf keines der in Signs angegebenen Zeichen enthalten.

minlen: Die Eingabe muss mindestens die in Len angegebene Länge besitzen.

maxlen: Die Eingabe darf maximal die in Len angegebene Länge besitzen.

nocheck: Die Eingabe wird nicht geprüft. (Die durch die Standardbehandlung oder den Parameter RemoveSigns angegeben Zeichen werden allerdings entfernt)

agecheck: Die Eingabe muss eine Personalausweisnummer eines Volljährigen sein.

idcheck: Die Eingabe muss eine gültige Personalausweisnummer sein.

num

alpha

alphanum

phone

date

email

zip

taxid

legalsigns

illegalsigns

minlen

maxlen

nocheck

agecheck

idcheck

Field

innerhalb von <+Condition>

technischer Feldname des Eingabefeldes, das für Bedingungen (<+Condition>) geprüft wird

 

BasketBehavior

innerhalb von <+Condition>

Legt fest, ob nur ein Produkt im Warenkorb die Bedingungen erfüllen muss (match-once) oder alle (match-all).

match-all

match-once

Standard: match-all

Type

innerhalb von <+Condition>

Art der Bedingung

filled: Feld ist gefüllt

empty: Feld ist leer

value: Der Wert des Feldes entspricht dem in Value angegebenen Wert

notvalue: Der Wert des Feldes entspricht nicht dem in Value angegebenen Wert

inlist: Der Wert des Feldes ist Teil der in Value angegebenen Liste

notinlist: Der Wert des Feldes ist nicht Teil der in Value angegebenen Liste

prefix: Der Wert des Feldes hat die in Value angegebene Vorsilbe

notprefix: Der Wert des Feldes hat nicht die in Value angegebene Vorsilbe

includedinlist: Der Wert aus Value muss in der Werte-Liste des Produktdatenfeldes stehen

notincludedinlist: Der Wert aus Value darf nicht in der Werte-Liste des Produktdatenfeldes stehen

matchsimplewildcard: Der in "Value" angegebene Wert enthält Platzhalter/Wildcards und der Wert des Feldes stimmt überein. Als Platzhalter kann ? und * eingesetzt werden.

? steht für exakt ein Zeichen an einer beliebigen Position

* steht für beliebige Zeichen, darf aber nur am Ende eingesetzt werden

notmatchsimplewildcard: Der Wert des Feldes stimmt nicht dem in "Value" angegebenen Wert inkl. Platzhalter überein

filled

empty

value

notvalue

inlist

notinlist

prefix

notprefix

includedinlist

notincludedinlist

matchsimplewildcard

notmatchsimplewildcard

Standard: filled

Value

innerhalb von <+Condition>

zu prüfender Wert/Liste, nur relevant bei <+Condition>-Type = value, notvalue, inlist, notinlist, prefix, notprefix, includedinlist, notincludedinlist

Beliebige Zeichenkette

DateFormat

Wird nur bei der Prüfungsart date benötigt.

Hier wird die Reihenfolge des Datumsformats als 3-stellige Zeichenkette aus den Zeichen D (für Tag), M (für Monat) und Y (für Jahr) festgelegt.

Beispiele:
LittleEndian (TT.MM.JJJJ): DMY
MiddleEndian (MM-TT-JJJJ): MDY
BigEndian  (JJJJ-MM-TT): YMD

3-stellige Zeichenkette aus D, M und Y

Standard: DMY

Delimiter

Wird nur bei der Prüfungsart date benötigt.

Hier wird das Trennzeichen zwischen Tag, Monat und Jahr angegeben.

Beispiele:
LittleEndian (TT.MM.JJJJ): .
MiddleEndian (MM-TT-JJJJ): -
BigEndian  (JJJJ-MM-TT): -

Beliebige Zeichenkette

Standard: .

FormatLeadingZero

Wird nur bei der Prüfungsart date benötigt.

Hier kann angegeben werden, ob das Datum mit oder ohne führende Nullen dargestellt werden soll.

Beispiele:
yes: Eingabe: 02.4.1996 wird umgewandelt in: 02.04.1996
no: Eingabe: 02.4.1996 wird umgewandelt in: 2.4.1996

yes

no

Standard: no

Signs

Wird nur bei den Prüfungsarten legalsigns und illegalsigns benötigt.

Die angegebenen Zeichen werden für diese Prüfung verwendet.

Die Zeichen können optional durch Anführungszeichen eingeschlossen sein.

Durch $ALPHA werden alle Buchstaben des ASCII-Zeichensatzes, durch $NUM alle Ziffern angegeben. Wenn ein Adress-Eingabefeld mit Signs auf korrekte Eingaben überprüft wird, würden Namen mit (z. B. deutschen) Sonderzeichen oder Doppelnamen mit Bindestrich dazu führen, dass die Eingabe nicht akzeptiert wird. Umlaute oder Bindestriche müssen deshalb explizit zugelassen werden (vgl. erstes Beispiel).

Beispiele:

Alle Buchstaben inkl. dt. Umlaute, scharfes S und Bindestrich verwenden: "$ALPHAß- äÄüÜöÖ"

Alle Buchstaben, Dollar- und Prozentzeichen verwenden: "$ALPHA$%"

Alle Ziffern, Buchstaben und das Leerzeichen verwenden: "$NUM$ALPHA "

Frage-, Ausrufe- und Dollarzeichen verwenden: "?!$"

Beliebige Zeichenkette

Len

Wird nur bei den Prüfungsarten minlen und maxlen benötigt.

Die angegebene Länge wird für diese Prüfung verwendet.

Beliebige Zahl

 


Hinweis:

Sollten Sie eine spezielle Anforderung an ein Eingabefeld hiermit nicht prüfen können, kontaktieren Sie bitte die WEBSALE AG.

8. Kompletter Abschnitt (Beispiel)
 

<InputCheck>
   <ErrorMessages>
      Default        = ~FieldName~: Ungültige Eingabe      
      numbererror    = ~FieldName~: Bitte geben Sie eine Ziffer ein
      street2error   = ~FieldName~: Bitte geben Sie eine korrekte Hausnummer an      
      emptyerror     = Bitte füllen Sie das Feld ~FieldName~ aus.
      toolongerror   = Ihre Eingabe im Feld ~FieldName~ ist zu lang. Bitte kürzen Sie ihre Eingabe.
      emailwrong     = Die angegebene eMailadresse ist ungültig
      dateerror      = ~FieldName~: Ungültiges Datum
   </ErrorMessages>

   <InputCheckDefaults>
      RemoveSigns    = "$"
   </InputCheckDefaults>

   <+InputCheck>
      AddressField   = Street2
      Type           = minlen
      Len            = 1
      ErrorMessageID = emptyerror
   </+InputCheck>
   <+InputCheck>
      AddressField   = Street2
      Type           = maxlen
      Len            = 10
      ErrorMessageID = toolongerror
   </+InputCheck>
   <+InputCheck>
      AddressField   = Street2
      Type           = legalsigns
      Signs          = "$ALPHA$NUM"
      RemoveSigns    = " "
      ErrorMessageID = street2error
   </+InputCheck>

   ...

</InputCheck>