> ## Documentation Index
> Fetch the complete documentation index at: https://dokumentation.websale.de/llms.txt
> Use this file to discover all available pages before exploring further.

# A- (Rechnungsadresse)

> Alle Tags mit dem Präfix A- für die Abfrage und Anzeige der Rechnungsadresse: Eingabefelder, Auswahllisten und kundenbezogene Werte.

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>`.

```ini theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<AddressFields-Txt>
   ...
   FirstName = Vorname
   ...
</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](https://dokumentation.websale.de/v8s/adressdaten/rechnungsadresse-abfragen.md) · Referenz: [Abschnitt AddressFields-Txt](https://dokumentation.websale.de/v8s/referenz/konfigurationen/shopkonfiguration-shop-config/adressen-und-eingabepruefung.md#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.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{A-FirstName_visible}

   <label for="~A-FirstName_input~" class="~A-FirstName_error~">
      ~A-FirstName_text~{A-FirstName_required} *{/A-FirstName_required}
   </label>

   <input type="text"
          name="~A-FirstName_input~"
          id="~A-FirstName_input~"
          maxlength="~A-FirstName_max~"
          value="~A-FirstName~"
          class="~A-FirstName_error~">

   {A-FirstName_errormessage}~A-FirstName_errormessage~{/A-FirstName_errormessage}

{/A-FirstName_visible}
```

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:

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<h2>Ihre Rechnungsadresse</h2>

~A-FirstName~ ~A-LastName~
~A-Street1~
~A-Zip~ ~A-City~
```

## Tags am Eingabefeld

| Tag | Einzel-Tag | Bereichs-Tag | negatives Bereichs-Tag | Schleifen-Tag |
| - | - | - | - | - |
| `A-Feldname` | ja | ja | ja | – |
| `A-Feldname_action` | – | ja | ja | – |
| `A-Feldname_error` | ja | ja | ja | – |
| `A-Feldname_errormessage` | ja | ja | ja | – |
| `A-Feldname_hiddeninputflagdeleted` | ja | – | – | – |
| `A-Feldname_input` | ja | ja | ja | – |
| `A-Feldname_max` | ja | ja | ja | – |
| `A-Feldname_readonly` | – | ja | ja | – |
| `A-Feldname_required` | – | ja | ja | – |
| `A-Feldname_text` | ja | ja | ja | – |
| `A-Feldname_visible` | – | ja | ja | – |

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.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<input type="text" name="~A-FirstName_input~" value="~A-FirstName~">
```

Als Bereichs-Tag geklammert greift der Bereich nur, wenn das Feld gefüllt ist. So lassen sich leere Zeilen in der Adressanzeige vermeiden:

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{A-Company}~A-Company~<br>{/A-Company}
~A-FirstName~ ~A-LastName~
```

### 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.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<form action="~FORM-Addr~">
   ...
   <input type="text"
          name="~A-Company_input~"
          value="~A-Company~"
          {A-Company_action}onBlur="ws_AJAXRefreshAddressInput('addressform','~BT-Addr_refresh~','~WS-Charset~')"{/A-Company_action}>
   ...
</form>
```

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](https://dokumentation.websale.de/v8s/adressdaten/auswahl-zwischen-privat-und-geschaeftsadresse.md)

### 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.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<input type="text" name="~A-FirstName_input~" value="~A-FirstName~" class="input~A-FirstName_error~">
{A-FirstName_error}Bei der Eingabe Ihres Vornamens ist ein Fehler aufgetreten.{/A-FirstName_error}
```

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.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{A-FirstName_errormessage}~A-FirstName_errormessage~{/A-FirstName_errormessage}
```

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](https://dokumentation.websale.de/v8s/referenz/konfigurationen/shopkonfiguration-shop-config/adressen-und-eingabepruefung.md#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.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<input type="hidden" name="~A-Suffix1_hiddeninputflagdeleted~" value="true">
```

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.

> [!WARNING]
>
> 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`.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<input type="text" name="~A-FirstName_input~" value="~A-FirstName~">
```

### A-Feldname\_max

Gibt die maximale Eingabelänge des Feldes aus, wie sie im Abschnitt `<AddressMaxInputLen>` der `shop.config` festgelegt ist.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<input type="text" name="~A-FirstName_input~" value="~A-FirstName~" maxlength="~A-FirstName_max~">
```

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`.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{A-Number_readonly}
   <!-- Nicht änderbares Feld, beispielsweise die Kundennummer -->
{/A-Number_readonly}

{!A-FirstName_readonly}
   <!-- Änderbares Feld, beispielsweise der Vorname -->
{/!A-FirstName_readonly}
```

> [!WARNING]
>
> 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](https://dokumentation.websale.de/v8s/referenz/konfigurationen/shopkonfiguration-shop-config/adressen-und-eingabepruefung.md#addressfields-readonly) · Wegweiser: [Vom Käufer nicht änderbare Kundendaten festlegen](https://dokumentation.websale.de/v8s/adressdaten/vom-kaeufer-nicht-aenderbare-kundendaten-festlegen.md)

### A-Feldname\_required

Der Bereich wird angezeigt, wenn das Adresseingabefeld ein Pflichtfeld ist. Damit kennzeichnen Sie Pflichtfelder, üblicherweise mit einem Sternchen.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
~A-FirstName_text~ {A-FirstName_required}*{/A-FirstName_required}:
<input type="text" name="~A-FirstName_input~" value="~A-FirstName~">
```

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.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
~A-FirstName_text~:
<input type="text" name="~A-FirstName_input~" value="~A-FirstName~">
```

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.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{A-FirstName_visible}
   ~A-FirstName_text~ {A-FirstName_required}*{/A-FirstName_required}:
   <input type="text" name="~A-FirstName_input~" value="~A-FirstName~">
{/A-FirstName_visible}
```

> [!WARNING]
>
> 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`.

| Tag | Einzel-Tag | Bereichs-Tag | negatives Bereichs-Tag | Schleifen-Tag |
| - | - | - | - | - |
| `A-Feldname_code` | ja | – | – | – |
| `A-Feldname_data` | – | – | – | ja |
| `A-Feldname_selected` | ja | – | – | – |
| `A-Feldname_value` | ja | – | – | – |
| `A-Feldname_list` (veraltet) | ja | – | – | – |

Alle vier aktuellen Tags greifen ineinander und ergeben zusammen eine Auswahlliste:

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<select name="~A-Country_input~">
   {@A-Country_data}
      <option value="~A-Country_code~" ~A-Country_selected~>~A-Country_value~</option>
   {/@A-Country_data}
</select>
```

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.

> [!WARNING]
>
> **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](https://dokumentation.websale.de/v8s/adressdaten/auswahllisten-der-adressdaten.md)

## Weitere Tags

Diese Tags haben einen festen Namen, sie werden also nicht aus einem Parameternamen gebildet. Sie liefern zusammengesetzte oder kundenbezogene Werte.

| Tag | Einzel-Tag | Bereichs-Tag | negatives Bereichs-Tag | Zulässig in |
| - | - | - | - | - |
| `A-CompleteSalutation` | ja | ja | ja | allen Templates |
| `A-CountryISO` | ja | – | – | allen Templates |
| `A-DateOfBirth_list` | ja | – | – | Adressseiten |
| `A-ERPLastOrderDate` | ja | ja | ja | allen Templates |
| `A-InterCompanyCustomer` | – | ja | ja | allen Templates |
| `A-SalutationCode` | ja | ja | ja | allen Templates |
| `A-TitleCode` | ja | ja | ja | allen Templates |
| `A-UserDeliveryCostDiscount` | ja | ja | ja | allen Templates |
| `A-UserDeliveryCostFree` | – | ja | ja | allen Templates |
| `A-UserIndex` | ja | – | – | allen Templates |
| `A-UserMustChangePW` | – | ja | ja | Loginseite |
| `A-UserPaymentCostDiscount` | ja | ja | ja | allen Templates |
| `A-UserPaymentCostFree` | – | ja | ja | allen Templates |
| `A-UserSubTotalDiscount()` | ja | ja | ja | allen Templates |
| `A-WarrantyList` | ja | ja | ja | allen Templates |

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.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{A-CompleteSalutation}
   ~A-CompleteSalutation~
{/A-CompleteSalutation}

{!A-CompleteSalutation}
   Der Kunde hat keine Anrede gewählt.
{/!A-CompleteSalutation}
```

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.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{A-Country}
   Gewähltes Rechnungsland: ~A-Country~ (Ländercode: ~A-CountryISO~)
{/A-Country}
```

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.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
~A-DateOfBirth_text~: ~A-DateOfBirth_list~
```

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.

| Style | Bedeutung |
| - | - |
| `#ws_input_date_of_birth_day` | Auswahlliste des Geburtstages |
| `#ws_input_date_of_birth_month` | Auswahlliste des Geburtsmonats |
| `#ws_input_date_of_birth` | Auswahlliste des Geburtsjahres |
| `.select_date_of_birth` | Klasse, die allen drei Auswahllisten zugewiesen ist |

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.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{A-ERPLastOrderDate}
   ~A-ERPLastOrderDate~
{/A-ERPLastOrderDate}
```

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.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{A-InterCompanyCustomer}
   Intern verrechnen, MwSt. wird abgezogen.
{/A-InterCompanyCustomer}

{!A-InterCompanyCustomer}
   Nicht intern verrechnen, MwSt. wird grundsätzlich berechnet.
{/!A-InterCompanyCustomer}
```

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](https://dokumentation.websale.de/v8s/preise/mehrwertsteuer.md)

### 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.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{A-SalutationCode}
   ~A-SalutationCode~
{/A-SalutationCode}

{!A-SalutationCode}
   Der Kunde hat keine Anrede gewählt.
{/!A-SalutationCode}
```

Referenz: [Konfiguration salutation.dat](https://dokumentation.websale.de/v8s/referenz/konfigurationen/konfiguration-salutation-dat.md)

### A-TitleCode

Gibt den technischen Wert des Titels aus.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{A-TitleCode}
   ~A-TitleCode~
{/A-TitleCode}

{!A-TitleCode}
   Der Kunde hat keinen Titel gewählt.
{/!A-TitleCode}
```

### A-UserDeliveryCostDiscount

Der Bereich wird angezeigt, wenn beim Käufer ein Lieferkostenrabatt hinterlegt ist. Das Einzel-Tag gibt den Rabatt in Prozent aus.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{ST-LoggedIn}

   {A-UserDeliveryCostDiscount}
      Für Sie wurde ein Lieferkostenrabatt in Höhe von ~A-UserDeliveryCostDiscount~ % hinterlegt.
   {/A-UserDeliveryCostDiscount}

   {!A-UserDeliveryCostDiscount}
      Für Sie wurde kein Rabatt hinterlegt.
   {/!A-UserDeliveryCostDiscount}

{/ST-LoggedIn}
```

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](https://dokumentation.websale.de/v8s/versandarten-anlegen/versandarten-anlegen.md)

### A-UserDeliveryCostFree

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

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{ST-LoggedIn}

   {A-UserDeliveryCostFree}
      Für Sie wurde ein Lieferkostenerlass hinterlegt. Sie bestellen versandkostenfrei.
   {/A-UserDeliveryCostFree}

   {!A-UserDeliveryCostFree}
      Für Sie wurde kein Erlass hinterlegt.
   {/!A-UserDeliveryCostFree}

{/ST-LoggedIn}
```

### A-UserIndex

Gibt den Userindex des angemeldeten Käufers aus, also seine interne Kennung in der Shop-Datenbank.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{ST-LoggedIn}
   UserIndex: ~A-UserIndex~
{/ST-LoggedIn}
```

> [!WARNING]
>
> 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.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{A-UserMustChangePW}
   Bitte vergeben Sie ein neues Passwort, bevor Sie fortfahren.
{/A-UserMustChangePW}
```

Zulässig ist das Tag nur auf der Loginseite (`ws_login.htm`).

Wegweiser: [Zwangsänderung des Passworts bei Neukunden](https://dokumentation.websale.de/v8s/kundenkonto/anmeldung-registrierung.md#zwangsanderung-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.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{ST-LoggedIn}

   {A-UserPaymentCostDiscount}
      Für Sie wurde ein Zahlungskostenrabatt in Höhe von ~A-UserPaymentCostDiscount~ % hinterlegt.
   {/A-UserPaymentCostDiscount}

   {!A-UserPaymentCostDiscount}
      Für Sie wurde kein Rabatt hinterlegt.
   {/!A-UserPaymentCostDiscount}

{/ST-LoggedIn}
```

Wegweiser: [Zahlungsarten anlegen, kundenindividueller Rabatt und Erlass für Zahlungskosten](https://dokumentation.websale.de/v8s/zahlungsarten-anlegen/zahlungsarten-anlegen.md)

### A-UserPaymentCostFree

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

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{ST-LoggedIn}

   {A-UserPaymentCostFree}
      Für Sie wurde ein Zahlungskostenerlass hinterlegt.
   {/A-UserPaymentCostFree}

   {!A-UserPaymentCostFree}
      Für Sie wurde kein Erlass hinterlegt.
   {/!A-UserPaymentCostFree}

{/ST-LoggedIn}
```

### 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.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{ST-LoggedIn}

   {A-UserSubTotalDiscount}
      Für Sie wurde ein Rabatt in Höhe von ~A-UserSubTotalDiscount(2)~ % hinterlegt.
   {/A-UserSubTotalDiscount}

   {!A-UserSubTotalDiscount}
      Für Sie wurde kein Rabatt hinterlegt.
   {/!A-UserSubTotalDiscount}

{/ST-LoggedIn}
```

#### 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:

| Tag | Ausgabe |
| - | - |
| `~A-UserSubTotalDiscount~` | 10 |
| `~A-UserSubTotalDiscount(0)~` | 10 |
| `~A-UserSubTotalDiscount(2)~` | 10.00 |

#### 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.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{A-UserSubTotalDiscount}
   {DC-CompareDigitGT($A-UserSubTotalDiscount$,0)}

      <div>Ihr Kundenrabatt: ~A-UserSubTotalDiscount~ %</div>

      <!-- Normalpreis setzen und den Rabattbetrag daraus berechnen -->
      ~DC-CommercialCalc1_set($PR-Price$)~
      ~DC-CommercialCalc1_percent($A-UserSubTotalDiscount$)~

      <!-- Rabattbetrag vom Normalpreis abziehen: der Preis für diesen Kunden -->
      ~DC-CommercialCalc2_set($PR-Price$)~
      ~DC-CommercialCalc2_sub($DC-CommercialCalc1$)~
      <div>Ihr Preis: ~DC-CommercialCalc2~ ~WS-CurrencySymbol~</div>

      <!-- Differenz zwischen Normalpreis und Kundenpreis: die Ersparnis -->
      ~DC-CommercialCalc3_set($PR-Price$)~
      ~DC-CommercialCalc3_sub($DC-CommercialCalc2$)~
      <div>Sie sparen: ~DC-CommercialCalc3~ ~WS-CurrencySymbol~</div>

   {/DC-CompareDigitGT($A-UserSubTotalDiscount$,0)}
{/A-UserSubTotalDiscount}
```

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](https://dokumentation.websale.de/v8s/weitere-funktionen-im-bestellprozess-kontext/rabatte-festlegen.md) · Materialien: [Kaufmännische Berechnungen](https://dokumentation.websale.de/v8s/referenz/tags/dc/rechnen.md) · Referenz: [DC-CompareDigitGT()](https://dokumentation.websale.de/v8s/anwendungsbeispiele/appex-rechnen-und-vergleichen.md#die-vergleichs-tags-im-uberblick) · Referenz: [DC-CommercialCalc1…3\_set()](https://dokumentation.websale.de/v8s/referenz/tags/dc/parameter.md) · Referenz: DC-CommercialCalc1…3\_percent() · Referenz: [WS-CurrencySymbol](https://dokumentation.websale.de/v8s/suche/erweiterte-suche.md#schritt-3-das-suchformular-aufbauen)

### A-WarrantyList

Gibt die Berechtigungscodes aus, die für den angemeldeten Kunden im Kundenkonto hinterlegt sind, als kommaseparierte Zeichenfolge.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{A-WarrantyList}
   Folgende Berechtigungscodes sind in Ihrem Kundenkonto hinterlegt: ~A-WarrantyList~
{/A-WarrantyList}

{!A-WarrantyList}
   In Ihrem Kundenkonto sind noch keine Berechtigungscodes hinterlegt.
{/!A-WarrantyList}
```

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()](https://dokumentation.websale.de/v8s/referenz/tags/a-rechnungsadresse.md#a-warrantylist)

## Verwandte Themen

* Wegweiser: [Rechnungsadresse abfragen](https://dokumentation.websale.de/v8s/adressdaten/rechnungsadresse-abfragen.md)
* Wegweiser: Adressdaten als Auswahllisten abfragen
* Wegweiser: [Auswahl zwischen Privat- und Geschäftsadresse](https://dokumentation.websale.de/v8s/adressdaten/auswahl-zwischen-privat-und-geschaeftsadresse.md)
* Referenz: [D- (Lieferadresse)](https://dokumentation.websale.de/v8s/referenz/tags/d-lieferadresse.md)


## Related topics

- [Rechnungsadresse abfragen](https://dokumentation.websale.de/v8s/adressdaten/rechnungsadresse-abfragen.md)
- [PayPal Checkout](https://dokumentation.websale.de/v8s/zahlungsarten-anlegen/paypal-checkout.md)
- [Schaltflächen für die Adressen](https://dokumentation.websale.de/v8s/referenz/tags/bt/adressen.md)
- [Felder und Beispiele](https://dokumentation.websale.de/v8s/schnittstellen/bestellungen/ws-bestellgenerator/felder-und-beispiele.md)
- [$wsAccount - Account & Adressdaten](https://dokumentation.websale.de/frontend/referenz/module/wsAccount.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.