Zum Hauptinhalt springen
Die Tags mit dem Präfix A- greifen auf die Rechnungsadresse des Käufers zu. Sie erzeugen die Eingabefelder auf den Adressseiten, geben die eingegebenen Werte an anderer Stelle wieder aus und liefern kundenbezogene Werte wie Rabatte oder Berechtigungscodes.

Wie die Tags gebildet werden

Jedes Adressdatenfeld der Rechnungsadresse muss in der Shopkonfiguration shop.config im Abschnitt <AddressFields-Txt> definiert sein. Das gilt für die Standardfelder wie Vorname und Nachname ebenso wie für die freien Adressdatenfelder (Suffix-Felder). Der Tag-Name setzt sich dann immer aus zwei Teilen zusammen: dem Präfix A- und dem Parameternamen aus <AddressFields-Txt>.
Aus dem Parameternamen FirstName wird so A-FirstName, und mit den auf dieser Seite beschriebenen Suffixen beispielsweise A-FirstName_text oder A-FirstName_required. Auf dieser Seite steht Feldname stellvertretend für den Parameternamen aus <AddressFields-Txt>. In Ihren Templates setzen Sie dort den tatsächlichen Namen ein, also A-FirstName_input statt A-Feldname_input. Wegweiser: Rechnungsadresse abfragen · Referenz: Abschnitt AddressFields-Txt

Ein vollständiges Eingabefeld

Die Suffix-Tags sind einzeln beschrieben, in der Praxis treten sie aber immer gemeinsam auf. Das folgende Beispiel zeigt ein komplettes Eingabefeld für den Vornamen, wie es auf der Rechnungs- und Lieferadressseite im Bestellablauf (ws_address_combined.htm) steht.
Jedes Tag hat darin seine eigene Aufgabe: A-FirstName_visible entscheidet, ob das Feld überhaupt erscheint, A-FirstName_text liefert die Beschriftung, A-FirstName_input den technischen Feldnamen, A-FirstName_max die zulässige Länge, A-FirstName den bereits eingegebenen Wert, A-FirstName_required das Pflichtfeld-Sternchen und A-FirstName_error sowie A-FirstName_errormessage die Fehlerbehandlung. Auf der Bestellübersichtsseite (ws_place_order.htm) genügt dann das Wert-Tag allein:

Tags am Eingabefeld

Zulässig sind diese Tags auf der Rechnungs- und Lieferadressseite im Bestellablauf (ws_address_combined.htm) und auf der Verwaltungsseite der Rechnungsadresse im Kundenkonto (ws_address_manage.htm). A-Feldname_hiddeninputflagdeleted und A-Feldname_readonly sind darüber hinaus in allen Templates zulässig.

A-Feldname

Gibt den Wert des Adressdatenfeldes aus, also das, was der Käufer eingegeben hat oder was aus seinem Kundenkonto geladen wurde.
Als Bereichs-Tag geklammert greift der Bereich nur, wenn das Feld gefüllt ist. So lassen sich leere Zeilen in der Adressanzeige vermeiden:

A-Feldname_action

Löst eine Aktion aus, wenn für das Feld im Abschnitt <AddressFields-Actions> der shop.config eine Abhängigkeit hinterlegt ist. Mit der eingabeabhängigen Adressdatensteuerung lassen sich Felder je nach Eingabe ein- und ausblenden oder umbenennen. Damit das wirkt, muss die Adressseite nach der Eingabe nachgeladen werden, und genau diesen Aufruf klammert das Tag ein. Im folgenden Beispiel wird die Rechnungs- und Lieferadresseingabeseite nachgeladen, sobald der Käufer das Feld Company (Firma) verlässt.
Die Klammerung um das onBlur herum ist der Kern der Sache. Ohne sie würde jedes Feld bei jedem Verlassen ein Nachladen auslösen, auch dort, wo gar keine Abhängigkeit definiert ist. Wegweiser: Auswahl zwischen Privat- und Geschäftsadresse

A-Feldname_error

Zeigt an, dass bei der Prüfung dieses Feldes ein Fehler aufgetreten ist. Geprüft wird nach dem Klick auf den Absende-Button. Als Einzel-Tag gibt es im Fehlerfall die Zeichenfolge _error aus und sonst nichts. Dadurch lässt es sich direkt an einen Klassennamen anhängen und das fehlerhafte Feld farblich hervorheben.
Im Fehlerfall steht dort also class="input_error", sonst class="input".

A-Feldname_errormessage

Gibt die Fehlermeldung zu einem Adresseingabefeld aus. Die Meldung wird in der shop.config im Unterabschnitt <ErrorMessages> des Abschnitts <InputCheck> je Eingabefeld und Prüfungsart festgelegt.
Die Klammerung ist nötig, weil das Einzel-Tag ohne Fehler eine leere Zeichenfolge liefert. Ohne sie stünde im fehlerfreien Fall ein leeres Fehler-Element im Quelltext. Referenz: Abschnitt InputCheck

A-Feldname_hiddeninputflagdeleted

Liefert den Namen für ein verstecktes Eingabefeld, mit dem ein geleertes Adressdatenfeld ausdrücklich als gelöscht gekennzeichnet wird. Der Hintergrund: Löscht der Käufer den Inhalt eines Feldes, übernimmt der Shop diese Löschung. An externe Systeme übergebene Leerfelder werden dort aber üblicherweise als “nicht geändert” gewertet, und der alte Wert bleibt stehen. Das versteckte Feld macht aus dem Leerwert eine ausdrückliche Löschanweisung, die in den Bestelldaten der nächsten Bestellung mitgeschickt und vom externen System ausgewertet wird.
Der Shop wertet das versteckte Feld nur aus, wenn das zugehörige Adressdatenfeld tatsächlich leer übergeben wird. Bei einem gefüllten Feld bleibt es wirkungslos, es kann also dauerhaft im Template stehen.
Soll ein leeres Feld übergeben, dabei aber nicht als gelöscht markiert werden, muss value leer sein. Ein beliebiger anderer Inhalt in value wird als Löschanweisung gewertet.

A-Feldname_input

Gibt den technischen Namen des Eingabefeldes aus. Er gehört in name und, wenn Sie mit label arbeiten, auch in id.

A-Feldname_max

Gibt die maximale Eingabelänge des Feldes aus, wie sie im Abschnitt <AddressMaxInputLen> der shop.config festgelegt ist.
Ist ein Feld in <AddressMaxInputLen> nicht aufgeführt, gilt eine voreingestellte Länge. Das Tag liefert also immer einen Wert, auch ohne eigenen Eintrag in der Konfiguration.

A-Feldname_readonly

Der Bereich wird angezeigt, wenn das Adressdatenfeld als “readonly” gekennzeichnet ist, der Käufer es also nicht verändern darf. Festgelegt wird das im Abschnitt <AddressFields-ReadOnly> der shop.config.
Ein als readonly gekennzeichnetes Feld wird beim Absenden des Formulars gar nicht erst eingelesen. Eine Eingabe, die der Käufer über den Browser erzwingt, wirkt sich deshalb nicht aus. Trotzdem gehört das Feld im Template sichtbar als nicht änderbar dargestellt, sonst füllt der Käufer etwas aus, das folgenlos verworfen wird.
Referenz: Abschnitt AddressFields-ReadOnly · Wegweiser: Vom Käufer nicht änderbare Kundendaten festlegen

A-Feldname_required

Der Bereich wird angezeigt, wenn das Adresseingabefeld ein Pflichtfeld ist. Damit kennzeichnen Sie Pflichtfelder, üblicherweise mit einem Sternchen.
Ob ein Feld Pflichtfeld ist, ergibt sich aus den Prüfungen im Abschnitt <InputCheck> und wird für jedes Feld einzeln ausgewertet. Ein ausgeblendetes Feld gilt nie als Pflichtfeld. Die E-Mail-Adresse der Rechnungsadresse ist dagegen immer ein Pflichtfeld, unabhängig von der Konfiguration.

A-Feldname_text

Gibt die Bezeichnung des Eingabefeldes aus, also den Wert, der im Abschnitt <AddressFields-Txt> hinter dem Gleichheitszeichen steht.
Die Beschriftung gehört deshalb in die Konfiguration und nicht fest ins Template: In einem mehrsprachigen Shop wechselt sie so mit der Sprache mit, und die eingabeabhängige Adressdatensteuerung kann sie zur Laufzeit ändern.

A-Feldname_visible

Der Bereich wird angezeigt, wenn das Feld nach den Abhängigkeiten aus dem Abschnitt <AddressFields-Actions> der shop.config sichtbar sein soll. Beschriftung und Eingabefeld gehören gemeinsam in diese Klammerung.
Dieses Tag lässt sich nur als Bereichs-Tag oder negatives Bereichs-Tag verwenden. Als Einzel-Tag geschrieben, also ~A-FirstName_visible~, ist es ungültig.

Tags für Auswahllisten

Einige Adressdaten werden nicht frei eingegeben, sondern aus einer Liste gewählt, etwa das Land oder die Anrede. Die Einträge stammen aus eigenen Konfigurationsdateien wie der Länder-Konfiguration country.dat oder aus der shop.config. Alle vier aktuellen Tags greifen ineinander und ergeben zusammen eine Auswahlliste:
Die Schleife A-Country_data läuft über alle Einträge, A-Country_code liefert je Durchlauf den technischen Wert, A-Country_value die Bezeichnung für den Käufer und A-Country_selected markiert den bereits gewählten Eintrag. Zulässig sind diese Tags auf der Rechnungs- und Lieferadressseite im Bestellablauf (ws_address_combined.htm) und auf der Verwaltungsseite der Rechnungsadresse im Kundenkonto (ws_address_manage.htm).

A-Feldname_code

Gibt den technischen Wert eines Listeneintrags aus, bei der Länderauswahl beispielsweise den dreistelligen ISO-Code. Dieser Wert gehört in das value der Option, denn er wird abgeschickt und weiterverarbeitet.

A-Feldname_data

Schleifen-Tag über alle Einträge einer Auswahlliste. Innerhalb der Schleife stehen A-Feldname_code, A-Feldname_value und A-Feldname_selected für den jeweils aktuellen Eintrag zur Verfügung.

A-Feldname_selected

Setzt für den bereits gewählten Eintrag das Attribut selected. Ohne dieses Tag springt die Auswahlliste nach einem Nachladen der Seite oder beim Aufruf aus dem Kundenkonto wieder auf den ersten Eintrag zurück.

A-Feldname_value

Gibt die Bezeichnung eines Listeneintrags aus, also den Text, den der Käufer in der Auswahlliste liest.

A-Feldname_list

Erzeugt eine vollständige Auswahlliste als fertiges HTML-Element.
Dieses Tag wird künftig nicht mehr unterstützt. Bauen Sie Auswahllisten der Rechnungsadresse stattdessen aus A-Feldname_data, A-Feldname_code, A-Feldname_value und A-Feldname_selected auf. Das kostet ein paar Zeilen mehr im Template, dafür bestimmen Sie Markup und Klassen selbst.
Wegweiser: Adressdaten als Auswahllisten abfragen

Weitere Tags

Diese Tags haben einen festen Namen, sie werden also nicht aus einem Parameternamen gebildet. Sie liefern zusammengesetzte oder kundenbezogene Werte. Keines dieser Tags ist als Schleifen-Tag verwendbar. “Adressseiten” steht für die Rechnungs- und Lieferadressseite im Bestellablauf (ws_address_combined.htm) und die Verwaltungsseite der Rechnungsadresse im Kundenkonto (ws_address_manage.htm).

A-CompleteSalutation

Gibt die vollständige Anrede aus, beispielsweise “Sehr geehrter Herr Meier,”. Die Texte dafür werden in der Anrede-Konfiguration salutation.dat je Land und Geschlecht hinterlegt.
Der negative Bereich lohnt sich hier besonders. Ohne Anrede beginnt ein Anschreiben sonst mit einer leeren Zeile und einem Komma.

A-CountryISO

Gibt den dreistelligen ISO-Ländercode des gewählten Rechnungslandes aus.
Der ISO-Code wird beim Absenden zusammen mit dem Ländernamen übertragen und vom Shop daraus abgeleitet. Für Weitergaben an externe Systeme ist er die verlässlichere Angabe als der Ländername, der je nach Sprache anders lautet.

A-DateOfBirth_list

Erzeugt drei Auswahllisten für Tag, Monat und Jahr, mit denen das Geburtsdatum bei der Rechnungsadresse abgefragt wird.
Der Shop erzeugt die drei Listen vollständig selbst:
  • Die Tagesliste enthält die Werte 01 bis 31, die Monatsliste 01 bis 12.
  • Die Jahresliste reicht 121 Jahre zurück, vom aktuellen Jahr bis zum aktuellen Jahr minus 121.
  • Jede der drei Listen beginnt mit einem leeren Eintrag.
  • Gespeichert wird das Geburtsdatum nur, wenn Tag, Monat und Jahr ausgewählt sind. Fehlt eines davon, bleibt das Feld leer.

Styles

Damit sich die drei Auswahllisten gestalten lassen, weist der Shop ihnen IDs und eine gemeinsame Klasse zu. Diese können Sie in Ihre Styles-Datei übernehmen. Die ID der Jahresliste trägt keinen Zusatz, sie entspricht dem Feldnamen selbst. Das ist kein Fehler in der Dokumentation, sondern die Namensbildung des Shops. Das Gegenstück der Lieferadresse heißt #ws_input_delivery_date_of_birth und folgt demselben Muster.

A-ERPLastOrderDate

Gibt das Datum der letzten Bestellung im Format YYYY-MM-DD aus. Der Wert stammt aus der angeschlossenen Warenwirtschaft.
In der Regel nur für Debug-Zwecke relevant. Ob und wie aktuell der Wert ist, hängt vollständig von der angeschlossenen Warenwirtschaft ab.

A-InterCompanyCustomer

Der Bereich wird angezeigt, wenn der Käufer als “intern verrechnen” gekennzeichnet ist, also zu einer Verrechnung zwischen Kunden oder Firmen innerhalb eines Firmenverbunds gehört. Ist dieses Kennzeichen gesetzt, wird die Mehrwertsteuer immer komplett abgezogen.
Das Kennzeichen lässt sich nur im Online-Servicebereich setzen, und zwar mit zusätzlicher Authentifizierung durch Passworteingabe. Es ist über das Template weder setzbar noch änderbar. Wegweiser: Mehrwertsteuer

A-SalutationCode

Gibt den technischen Code der Anrede aus. Die Codes werden in der Anrede-Konfiguration salutation.dat je Land und Geschlecht hinterlegt, in Abstimmung mit den angeschlossenen ERP-Systemen.
Referenz: Konfiguration salutation.dat

A-TitleCode

Gibt den technischen Wert des Titels aus.

A-UserDeliveryCostDiscount

Der Bereich wird angezeigt, wenn beim Käufer ein Lieferkostenrabatt hinterlegt ist. Das Einzel-Tag gibt den Rabatt in Prozent aus.
Die äußere Klammerung mit ST-LoggedIn gehört dazu. Ein kundenindividueller Rabatt ist erst nach der Anmeldung bekannt, und die Aussage “Für Sie wurde kein Rabatt hinterlegt” wäre gegenüber einem nicht angemeldeten Besucher schlicht falsch. Wegweiser: Versandarten anlegen, kundenindividueller Rabatt und Erlass für Versandkosten

A-UserDeliveryCostFree

Der Bereich wird angezeigt, wenn beim Käufer ein Lieferkostenerlass hinterlegt ist. Er bestellt dann versandkostenfrei.

A-UserIndex

Gibt den Userindex des angemeldeten Käufers aus, also seine interne Kennung in der Shop-Datenbank.
Der Userindex ist eine interne Kennung und gehört nicht in eine für den Käufer sichtbare Ausgabe und auch nicht in eine URL. Verwenden Sie ihn für Schnittstellen und zur Fehlersuche.

A-UserMustChangePW

Der Bereich wird angezeigt, wenn der Käufer sein Passwort ändern muss, etwa nach der Zwangsänderung für Neukunden.
Zulässig ist das Tag nur auf der Loginseite (ws_login.htm). Wegweiser: Zwangsänderung des Passworts bei Neukunden

A-UserPaymentCostDiscount

Der Bereich wird angezeigt, wenn beim Käufer ein Zahlungskostenrabatt hinterlegt ist. Das Einzel-Tag gibt den Rabatt in Prozent aus.
Wegweiser: Zahlungsarten anlegen, kundenindividueller Rabatt und Erlass für Zahlungskosten

A-UserPaymentCostFree

Der Bereich wird angezeigt, wenn beim Käufer ein Zahlungskostenerlass hinterlegt ist.

A-UserSubTotalDiscount()

Der Bereich wird angezeigt, wenn dem Käufer ein Rabatt auf den Warenwert zugewiesen wurde. Das Einzel-Tag gibt den Rabatt in Prozent aus.

Nachkommastellen

Als Einzel-Tag nimmt A-UserSubTotalDiscount() einen Parameter für die Anzahl der Nachkommastellen entgegen. Zulässig sind 2 und 0. Ohne Parameter wird der Rabatt immer ohne Nachkommastellen ausgegeben. Bei einem hinterlegten Rabatt von 10 Prozent:

Die Ersparnis in Euro anzeigen

Ein Prozentwert allein sagt dem Käufer wenig. Interessant wird es, wenn er am Produkt sieht, welchen Betrag er spart. Dafür wird der Rabattsatz auf den Produktpreis gerechnet.
Die innere Prüfung mit DC-CompareDigitGT fängt den Fall ab, dass zwar ein Rabattsatz hinterlegt, dieser aber 0 ist. Ohne sie stünde am Produkt “Ihr Kundenrabatt: 0 %” und “Sie sparen: 0,00”. Wegweiser: Rabatte festlegen · Materialien: Kaufmännische Berechnungen · Referenz: DC-CompareDigitGT() · Referenz: DC-CommercialCalc1…3_set() · Referenz: DC-CommercialCalc1…3_percent() · Referenz: WS-CurrencySymbol

A-WarrantyList

Gibt die Berechtigungscodes aus, die für den angemeldeten Kunden im Kundenkonto hinterlegt sind, als kommaseparierte Zeichenfolge.
Zum Ein- und Ausblenden von Anzeigen oder Bedienelementen eignet sich dieses Tag nicht, dafür gibt es ST-Warranty(). Damit prüfen Sie gezielt einen einzelnen Berechtigungscode, statt die Codeliste als Text auszuwerten. Referenz: ST-Warranty()

Verwandte Themen