Zum Hauptinhalt springen
Die Adressabfrage ist der Teil des Shops, in dem am meisten schiefgehen kann. Ein Feld, das nicht angezeigt wird, kann auch nicht ausgefüllt werden. Ein Feld, das geprüft wird, obwohl es gar nicht sichtbar ist, blockiert die Bestellung. Und ein Feld, das die Warenwirtschaft nur 35 Zeichen lang annimmt, verursacht Ärger erst nach dem Kauf. Die Abschnitte auf dieser Seite bauen deshalb aufeinander auf. Zuerst legen Sie fest, welche Felder es überhaupt gibt. Dann, wie lang die Eingaben sein dürfen und welche Auswahllisten dahinterstehen. Danach, wann ein Feld sichtbar ist oder anders heißt. Zum Schluss, wie die Eingabe geprüft wird. Referenz: Shopkonfiguration shop.config, Übersicht aller Abschnitte

AddressFields-Txt

Legt fest, welche Daten bei der Rechnungsadresse abgefragt werden. Ein Feld gilt als aktiviert, sobald hinter dem Gleichheitszeichen ein Wert steht. Dieser Wert ist zugleich die Bezeichnung, die im Template ausgegeben werden kann.
Im Beispiel ist Company nicht aktiviert, weil hinter dem Gleichheitszeichen nichts steht. Das Feld lässt sich im Template nicht platzieren.

Name und Anrede

Anschrift

Erreichbarkeit

Weitere Felder

UserDefList-1 bis UserDefList-3 sind veraltet und werden nicht mehr unterstützt. Verwenden Sie stattdessen die Suffixfelder mit A-Suffix-Auswahllisten. Die Auswahl in einer UserDef-Liste wird zwar in die Bestelldaten übergeben, aber nicht in den Kundendaten gespeichert.
Ein Feld nur zu aktivieren genügt nicht, es muss auch im Template platziert werden. Umgekehrt gilt: Ein Feld, das hier keinen Wert hat, lässt sich im Template nicht verwenden, und auch Sichtbarkeitsregeln oder Eingabeprüfungen greifen darauf nicht. Felder, die der Käufer nicht ändern darf, legen Sie nicht hier fest, sondern im Abschnitt AddressFields-ReadOnly. Wegweiser: Rechnungsadresse abfragen, Prüfungen von Adressdaten festlegen, USt-IdNr. abfragen, prüfen und auswerten

DeliveryAddressFields-Txt

Dasselbe für die abweichende Lieferadresse. Die Felder entsprechen denen der Rechnungsadresse, mit drei Ausnahmen.
Alle übrigen Felder einschließlich Suffix1 bis Suffix50 gibt es in beiden Adressen. Wegweiser: Abweichende Lieferadresse abfragen, Prüfungen von Adressdaten festlegen

AddressMaxInputLen

Begrenzt die Eingabelänge je Feld. Das ist vor allem dann wichtig, wenn die Bestelldaten in eine Warenwirtschaft laufen, die ihrerseits Längengrenzen hat.
Die Parameternamen sind dieselben technischen Feldnamen wie in AddressFields-Txt. Die Vorgabe liegt bei 45 Zeichen, bei Postleitzahlen bei 12.
Die maximale Eingabelänge darf höchstens 256 Zeichen betragen.
IdentityCard4 steht im Standard auf 1, weil dort nur die Prüfziffer erwartet wird. Soll bei neuen Personalausweisen zusätzlich die vierstellige Versionsnummer eingegeben werden, setzen Sie den Wert auf 5. Wegweiser: Grundeinstellungen für Rechnungs- und Lieferadresse festlegen

A-Suffix1 bis A-Suffix50

Macht aus einem Suffixfeld der Rechnungsadresse eine Auswahlliste. Damit stellen Sie dem Käufer Fragen, die er aus vorgegebenen Antworten beantwortet. Jeder Abschnitt gehört zu genau einem Suffixfeld: A-Suffix1 füllt die Liste für Suffix1, A-Suffix2 die für Suffix2 und so weiter.
Trennen Sie Name und Value bewusst. Name ist der Text, den der Käufer liest, und er darf sich ändern. Value ist der Wert, mit dem Ihre Warenwirtschaft arbeitet, und er sollte stabil bleiben. Ohne Value wandert der Anzeigetext in die technischen Bestelldaten, und jede Textänderung schlägt dort durch.
Bei Verwendung von Paymorrow und einer Auswahlliste für die Rechtsform: Paymorrow akzeptiert keine Werte, die ausschließlich aus Ziffern bestehen. 01 geht also nicht. Die zulässigen Werte erfahren Sie von Paymorrow.
Wegweiser: Auswahllisten der Adressdaten, Paymorrow

D-Suffix1 bis D-Suffix50

Dasselbe für die Suffixfelder der Lieferadresse. Aufbau und Parameter sind identisch.
Die Listen der Rechnungs- und der Lieferadresse sind voneinander unabhängig. A-Suffix1 und D-Suffix1 können völlig verschiedene Einträge haben, auch wenn beide das Feld Suffix1 füllen. Wegweiser: Auswahllisten der Adressdaten

AddressFields-Standards und DeliveryAddressFields-Standards

Legt fest, mit welchem Eintrag eine Auswahlliste vorbelegt ist, wenn der Käufer die Seite zum ersten Mal sieht.
Links steht der technische Feldname, rechts der Eintrag, mit dem die Liste starten soll.
Rechts steht der Name des Eintrags, nicht sein Value. Haben Sie in A-Suffix1 einen Eintrag mit Name = Privatkunde und Value = private, dann gehört hier Privatkunde hin. Ändern Sie später den Anzeigetext der Liste, müssen Sie die Vorbelegung mitändern, sonst greift sie ins Leere.
Wegweiser: Auswahl zwischen postalischer Lieferadresse und Packstation

AddressFields-ReadOnly

Legt fest, welche Felder der Käufer sehen, aber nicht ändern darf. Typischer Fall ist die Kundennummer, die aus der Warenwirtschaft kommt.
Richtig sind AddressField und AddressType, wie in den Beispielen derselben Seite. Wegweiser: Vom Käufer nicht änderbare Kundendaten festlegen

AddressFields-Actions

Benennt die Felder, bei deren Eingabe das Template neu geladen werden muss, weil sich dadurch andere Felder ändern. Ohne diesen Abschnitt greifen die Regeln aus AddressFields-InputVisibility und AddressFields-AlternativeText erst beim nächsten Seitenwechsel, nicht unmittelbar nach der Eingabe.
Im Beispiel soll das Feld TaxID eingeblendet werden, sobald Company gefüllt ist. Dafür muss Company hier eingetragen werden, denn dieses Feld löst die Aktion aus. TaxID gehört nicht in diesen Abschnitt.
Die häufigste Fehlbedienung ist, hier das Feld einzutragen, das ein- oder ausgeblendet werden soll. Eingetragen gehört das Feld, auf dessen Eingabe reagiert wird.
Das Shopsystem ergänzt diese Liste selbst um alle Felder, die in einer Bedingung von AddressFields-AlternativeText, AddressFields-InputVisibility oder in einer Mindestlängenprüfung vorkommen. Vieles greift also auch ohne eigenen Eintrag. Verlassen Sie sich darauf nicht, sondern tragen Sie die auslösenden Felder ein. Wegweiser: Auswahl zwischen Privat- und Geschäftsadresse

AddressFields-AlternativeText

Benennt ein Feld abhängig von der Eingabe in einem anderen Feld um. Der klassische Fall: Aus “Straße” wird “Packstation Nr.”, sobald der Käufer als Lieferart die Packstation wählt.
Die Parameter innerhalb von +Condition sind dieselben wie bei AddressFields-InputVisibility und stehen im Abschnitt Bedingungen weiter unten. Mehrere +Condition-Blöcke innerhalb eines +Alternative sind UND-verknüpft. Für eine ODER-Verknüpfung legen Sie mehrere +Alternative-Blöcke mit demselben AddressField und demselben Text an. Wegweiser: Auswahl zwischen Privat- und Geschäftsadresse

AddressFields-InputVisibility

Blendet ein Feld abhängig von der Eingabe in einem anderen Feld ein oder aus. Das meistgenutzte Beispiel ist die Umsatzsteuer-Identifikationsnummer, die nur Firmenkunden sehen sollen.
Ein Feld gilt als ausgeblendet, wenn eine der beiden folgenden Kombinationen zutrifft:
  • Visible = no und die Bedingungen sind erfüllt
  • Visible = yes und die Bedingungen sind nicht erfüllt
Die zweite Kombination ist die, die in der Praxis überrascht. Eine Regel mit Visible = yes blendet das Feld also nicht nur ein, sie blendet es zugleich in allen anderen Fällen aus.Mit ResetIfHidden = yes, dem Standard, verliert der Käufer seine Eingabe, sobald das Feld ausgeblendet wird. Beim Zurücksetzen eines Felds leert das Shopsystem zusätzlich das jeweils zugehörige Gegenstück: bei Salutation auch SalutationCode, bei Title auch den Titelcode, bei Country auch den Ländercode, und jeweils umgekehrt.
Die Regel wirkt nur auf Felder, die in AddressFields-Txt beziehungsweise DeliveryAddressFields-Txt aktiviert sind. Eine Sichtbarkeitsregel für ein Feld ohne Bezeichnung läuft ins Leere, ohne dass eine Meldung erscheint. Ebenso wird ein +FieldVisibility-Block ohne AddressField stillschweigend übersprungen. Damit machen Sie die Sichtbarkeit eines Adressfelds vom Inhalt des Warenkorbs abhängig statt von einer anderen Adresseingabe.

Vier typische Fälle

Umsatzsteuer nur bei gefüllter Firma
Umsatzsteuer nur bei gefüllter Firma und Anrede “Firma”
Umsatzsteuer ausblenden, wenn Firma leer ist und das Land nicht Großbritannien
Registernummer nicht bei bestimmten Rechtsformen
Wegweiser: Auswahl zwischen postalischer Lieferadresse und Packstation, Auswahl zwischen Privat- und Geschäftsadresse

Bedingungen in +Condition

Die Unterabschnitte +Condition haben in AddressFields-AlternativeText, AddressFields-InputVisibility und InputCheck denselben Aufbau. Bei den beiden Wildcard-Typen steht ? für genau ein Zeichen an beliebiger Stelle und * für beliebig viele Zeichen, allerdings nur am Ende.

InputCheck

Legt fest, wie die Eingaben in den Adressfeldern geprüft werden. Der Abschnitt ist dreiteilig: die Fehlermeldungen, eine Standardbehandlung und beliebig viele Prüfregeln.
Der Parameter heißt AddressType, mit zwei d und großem T. Das ist kein anderer Groß- und Kleinschreibungsfall, sondern ein anderer Name, und das Shopsystem findet ihn nicht. Eine Prüfung mit Adresstype = bill gilt deshalb für beide Adressen statt nur für die Rechnungsadresse. Dasselbe gilt für Adressfield in der Parametertabelle der Altdokumentation, richtig ist AddressField.

ErrorMessages

Jede Fehlermeldung bekommt eine frei vergebene Kennung. Diese Kennung weisen Sie einer Prüfregel über ErrorMessageID zu. Der Eintrag Default ist die Meldung, die greift, wenn eine Regel keine Kennung hat oder die angegebene Kennung nicht existiert. Im Meldungstext wird das lokale Tag FieldName durch die Bezeichnung des betroffenen Felds ersetzt. Der Abschnitt muss genau einmal vorhanden sein. Legen Sie Default immer an, denn eine nicht gefundene Kennung fällt stillschweigend darauf zurück, und ohne Default bleibt die Meldung leer.

InputCheckDefaults

Die Standardbehandlung greift nur für Felder, für die mindestens eine Prüfregel existiert. Soll ein Feld nur die Standardbehandlung bekommen, ohne inhaltlich geprüft zu werden, legen Sie dafür eine Regel mit Type = nocheck an.

Die Prüfregeln

Mit Condition-UserType hängen Sie eine Prüfung an die Kundenart, beispielsweise strengere Pflichtfelder für Geschäftskunden.
Ein +InputCheck-Block ohne AddressField und ein Block mit einem unbekannten Type werden stillschweigend übersprungen. Es gibt weder eine Fehlermeldung noch einen Logeintrag. Prüfen Sie eine neue Regel deshalb immer im Shop und verlassen Sie sich nicht darauf, dass eine fehlerfreie Konfigurationsdatei auch eine wirksame Regel enthält.
Es sind bis zu 500 +InputCheck-Blöcke möglich. Das Shopsystem bricht bei der ersten nicht bestandenen Prüfung eines Felds ab, der Käufer bekommt also immer nur einen Fehler je Feld zu sehen.

Werte für Type

Die Prüfungen zip und taxid richten sich nach dem Land der jeweiligen Adresse. Ist kein Land gewählt, prüft das Shopsystem gegen Deutschland.

Zusatzparameter je Prüfungsart

Bei Signs stehen zwei Abkürzungen zur Verfügung: $ALPHA für alle Buchstaben des ASCII-Zeichensatzes und $NUM für alle Ziffern.
$ALPHA enthält keine Umlaute und keinen Bindestrich. Eine Prüfung mit Signs = "$ALPHA" auf einem Namensfeld weist deshalb jeden Müller und jede Meier-Schmidt ab. Lassen Sie die benötigten Zeichen ausdrücklich zu, beispielsweise mit "$ALPHAß- äÄüÜöÖ".
In RemoveSigns und Signs lassen sich Zeichen außerhalb von ISO-8859-1 über ihren Hexwert angeben, geschrieben als 0x gefolgt von zwei Zeichen. Der Aufzählungspunkt wird damit zu 0x95.

Ein vollständiges Beispiel

Ein Feld bekommt mehrere Regeln, indem Sie mehrere +InputCheck-Blöcke dafür anlegen. Im Beispiel wird Street2 dreimal geprüft: auf Vorhandensein, auf Länge und auf zulässige Zeichen, jeweils mit eigener Meldung. Wegweiser: Prüfungen von Adressdaten festlegen

GenericInputChecks

Dasselbe Prinzip wie InputCheck, aber für die freien Felder auf Split-Positionsebene statt für Adressfelder. Jede Prüfung bekommt eine Kennung, über die sie in BasketProductOptions zugewiesen wird.
Anders als bei InputCheck steht die Fehlermeldung direkt in der Prüfung und nicht in einem eigenen Meldungsabschnitt. Es gibt hier also keine Kennungen für Meldungen und keinen Rückfall auf eine Standardmeldung. Richtig ist notinlist. Wegweiser: Freie Felder auf Split-Positionsebene. Referenz: Abschnitt BasketProductOptions

DeliveryAddressSelection

Hält die Texte für die Auswahlliste der Lieferadresse im Bestellprozess.
Separator erscheint nur, wenn der Parameter gefüllt ist. Ohne ihn stehen alle Einträge ohne optische Trennung untereinander. Referenz: Tags für multiple Adressen