Zum Hauptinhalt springen
Ein Privatkunde soll nicht durch Felder für Firma und Umsatzsteuer-ID scrollen müssen, ein Geschäftskunde diese Felder aber vorfinden. Statt beides nebeneinander zu zeigen, lassen Sie den Käufer zuerst seinen Adresstyp wählen und blenden dann nur die passenden Felder ein. Das ist derselbe Mechanismus wie bei der Auswahl zwischen postalischer Lieferadresse und Packstation, die eingabeabhängige Adressdatensteuerung. Hier wirkt sie auf die Rechnungsadresse, weshalb überall A- statt D- steht und die Konfigurationsabschnitte anders heißen. Auswahl Rechnungsadresse Wegweiser: Auswahl zwischen postalischer Lieferadresse und Packstation Das Ein- und Ausblenden läuft über AJAX. Ohne JavaScript im Browser des Käufers bleibt die Seite bei der Ausgangsansicht stehen. Denken Sie deshalb an eine Rückfallebene, in der alle Felder sichtbar sind.

Schritt 1: Felder anlegen

Im Abschnitt <AddressFields-Txt> legen Sie alle Felder an, die einer der beiden Adresstypen braucht. Die Typauswahl selbst bekommt ein eigenes Feld, hier Suffix1.
Referenz: Abschnitt AddressFields-Txt

Schritt 2: Auswahlmöglichkeiten definieren

Die Einträge für Suffix1 stehen in einem eigenen Abschnitt direkt darunter. Die Liste ist beliebig erweiterbar, beispielsweise um „Behörde” oder „Verein”.
Wegweiser: Auswahllisten der Adressdaten · Referenz: Abschnitt A-Suffix..

Schritt 3: Standardtyp festlegen

Welcher Typ bei der ersten Adresseingabe vorausgewählt ist, steht im Abschnitt <AddressFields-Standards>. Eingetragen wird der Value aus Schritt 2.
Wählen Sie als Standard den Typ, der bei Ihnen häufiger vorkommt. Ein reiner B2B-Shop startet sinnvollerweise mit der Geschäftsadresse, damit die meisten Käufer gar nichts umstellen müssen. Referenz: Abschnitt AddressFields-Standards

Schritt 4: Sichtbarkeit der Felder steuern

Für das Beispiel ergibt sich diese Aufteilung: Felder, die in beiden Fällen erscheinen, brauchen keine Regel. Firma und Umsatzsteuer-ID hängen an derselben Bedingung und passen deshalb in einen Block.
Lassen Sie ResetIfHidden auf yes. Sonst wandert eine Firmenangabe, die der Käufer vor dem Wechsel zur Privatadresse eingetragen hatte, unbemerkt mit in die Bestellung.
Referenz: Abschnitt AddressFields-InputVisibility

Schritt 5: Pflichtfelder festlegen

Felder, die für beide Typen Pflicht sind, fassen Sie in einer Zeile zusammen.
Vergessen Sie die Bedingung, wird ein ausgeblendetes Feld zum Pflichtfeld. Der Käufer bekommt dann eine Fehlermeldung zu einem Feld, das er gar nicht sieht, und kommt nicht weiter.
Referenz: Abschnitt InputCheck · Wegweiser: Prüfungen von Adressdaten festlegen

Schritt 6: Auslösendes Feld benennen

Damit eine Änderung an Suffix1 das Nachladen anstößt, wird das Feld im Abschnitt <AddressFields-Actions> gekennzeichnet.
Der Shop schaltet Felder, die in Bedingungen von Sichtbarkeit, Beschriftung oder Pflichtprüfung vorkommen, zusätzlich selbst aktiv. Der ausdrückliche Eintrag schadet aber nicht und macht die Absicht im Konfigurationsfile sichtbar. Referenz: Abschnitt AddressFields-Actions

Schritt 7: Felder ins Template setzen

Die Felder gehören in das Formular auf beiden Templates, die eine Rechnungsadresse entgegennehmen: ws_address_combined.htm im Bestellablauf und ws_address_manage.htm im Kundenkonto. Jedes Feld folgt demselben Aufbau. {A-…[_visible](/v8s/referenz/tags/a-rechnungsadresse)} entscheidet über die Anzeige, {A-…[_action](/v8s/referenz/tags/a-rechnungsadresse)} fügt den AJAX-Aufruf nur dort ein, wo er gebraucht wird, und {A-…[_required](/v8s/referenz/tags/a-rechnungsadresse)} markiert Pflichtfelder.

Die Typauswahl als Auswahlknöpfe

Die Auswahlknöpfe teilen sich einen Namen, dürfen also keine gemeinsame id bekommen. Umschließen Sie deshalb jeden Knopf mit seinem eigenen label, statt mit for auf eine id zu verweisen. Die Gruppenüberschrift gehört in ein legend innerhalb eines fieldset.

Ein Auswahlfeld

Ein Textfeld

Die übrigen Felder des Beispiels bauen Sie nach einem dieser Muster: FirstName, LastName, Street1, Zip, City und TaxID wie das Textfeld, Country wie das Auswahlfeld. Bei Auswahlfeldern löst onchange aus, bei Textfeldern onblur. Ein onchange am Textfeld griffe erst beim Verlassen, ein onkeyup löste bei jedem Tastendruck eine AJAX-Anfrage aus.

Die Tag-Endungen im Überblick

Schritt 8: Die technische Einbettung

Die restlichen Schritte sind mit denen der Packstation-Auswahl identisch. Sie richten sie einmal ein und nutzen sie für beide Adressarten.
Auf der Adressseite im Bestellablauf tritt an die Stelle des Formular-Tags ~FORM-Addr~. Die ausführliche Beschreibung dieser Schritte samt Codebeispielen finden Sie auf der Schwesterseite. Wegweiser: Auswahl zwischen postalischer Lieferadresse und Packstation

Verwandte Themen