Skip to main content
The tags with the prefix A- access the buyer’s billing address. They generate the input fields on the address pages, output the entered values elsewhere and provide customer-specific values such as discounts or authorization codes.

How the tags are formed

Every address data field of the billing address must be defined in the shop configuration shop.config in the <AddressFields-Txt> section. This applies to standard fields such as first name and last name as well as to the free address data fields (suffix fields). The tag name always consists of two parts: the prefix A- and the parameter name from <AddressFields-Txt>.
The parameter name FirstName thus becomes A-FirstName, and with the suffixes described on this page, for example, A-FirstName_text or A-FirstName_required.
On this page, Feldname stands in for the parameter name from <AddressFields-Txt>. In your templates, you insert the actual name there, i.e. A-FirstName_input instead of A-Feldname_input.
Guide: Requesting the billing address · Reference: AddressFields-Txt section

A complete input field

The suffix tags are described individually, but in practice they always appear together. The following example shows a complete input field for the first name as it appears on the billing and delivery address page in the ordering process (ws_address_combined.htm).
Each tag has its own task here: A-FirstName_visible decides whether the field appears at all, A-FirstName_text provides the label, A-FirstName_input the technical field name, A-FirstName_max the permitted length, A-FirstName the value already entered, A-FirstName_required the required-field asterisk, and A-FirstName_error as well as A-FirstName_errormessage handle errors. On the order overview page (ws_place_order.htm), the value tag alone is then sufficient:

Tags for the input field

These tags are permitted on the billing and delivery address page in the ordering process (ws_address_combined.htm) and on the billing address management page in the customer account (ws_address_manage.htm). A-Feldname_hiddeninputflagdeleted and A-Feldname_readonly are additionally permitted in all templates.

A-Feldname

Outputs the value of the address data field, i.e. what the buyer has entered or what was loaded from their customer account.
When used as a range tag, the range only applies if the field is filled. This lets you avoid empty lines in the address display:

A-Feldname_action

Triggers an action if a dependency is defined for the field in the <AddressFields-Actions> section of the shop.config. With input-dependent address data control, fields can be shown, hidden or renamed depending on the input. For this to take effect, the address page must be reloaded after the input, and this tag brackets exactly that call. In the following example, the billing and delivery address input page is reloaded as soon as the buyer leaves the Company field.
The bracketing around the onBlur is the heart of the matter. Without it, every field would trigger a reload every time it is left, even where no dependency is defined at all.
Guide: Choosing between private and business address

A-Feldname_error

Indicates that an error occurred when checking this field. The check takes place after the submit button is clicked. As a single tag, it outputs the string _error in case of an error and nothing otherwise. This allows it to be appended directly to a class name to highlight the faulty field in color.
In case of an error, the result is class="input_error", otherwise class="input".

A-Feldname_errormessage

Outputs the error message for an address input field. The message is defined in the shop.config in the <ErrorMessages> subsection of the <InputCheck> section per input field and check type.
The bracketing is necessary because the single tag returns an empty string when there is no error. Without it, an empty error element would appear in the source code when there is no error.
Reference: InputCheck section

A-Feldname_hiddeninputflagdeleted

Provides the name for a hidden input field that explicitly marks an emptied address data field as deleted. The background: if the buyer deletes the content of a field, the shop applies this deletion. However, empty fields passed to external systems are usually treated there as “not changed”, and the old value remains. The hidden field turns the empty value into an explicit deletion instruction, which is sent along in the order data of the next order and evaluated by the external system.
The shop only evaluates the hidden field if the associated address data field is actually submitted empty. For a filled field it has no effect, so it can remain in the template permanently.
If an empty field is to be submitted but not marked as deleted, value must be empty. Any other content in value is treated as a deletion instruction.

A-Feldname_input

Outputs the technical name of the input field. It belongs in name and, if you work with label, also in id.

A-Feldname_max

Outputs the maximum input length of the field as defined in the <AddressMaxInputLen> section of the shop.config.
If a field is not listed in <AddressMaxInputLen>, a preset length applies. The tag therefore always returns a value, even without its own entry in the configuration.

A-Feldname_readonly

The range is displayed if the address data field is marked as “readonly”, meaning the buyer may not change it. This is defined in the <AddressFields-ReadOnly> section of the shop.config.
A field marked as readonly is not read in at all when the form is submitted. An input that the buyer forces via the browser therefore has no effect. Nevertheless, the field should be visibly displayed as non-editable in the template; otherwise the buyer fills in something that is silently discarded.
Reference: AddressFields-ReadOnly section · Guide: Defining customer data that the buyer cannot change

A-Feldname_required

The range is displayed if the address input field is a required field. Use it to mark required fields, usually with an asterisk.
Whether a field is a required field results from the checks in the <InputCheck> section and is evaluated individually for each field. A hidden field is never considered a required field. The email address of the billing address, on the other hand, is always a required field, regardless of the configuration.

A-Feldname_text

Outputs the label of the input field, i.e. the value that follows the equals sign in the <AddressFields-Txt> section.
The label therefore belongs in the configuration and should not be hard-coded in the template: in a multilingual shop, it changes along with the language, and input-dependent address data control can change it at runtime.

A-Feldname_visible

The range is displayed if the field is to be visible according to the dependencies from the <AddressFields-Actions> section of the shop.config. The label and input field belong together inside this bracketing.
This tag can only be used as a range tag or negative range tag. Written as a single tag, i.e. ~A-FirstName_visible~, it is invalid.

Tags for selection lists

Some address data is not entered freely but selected from a list, such as the country or the salutation. The entries come from separate configuration files such as the country configuration country.dat or from the shop.config. All four current tags interlock and together produce a selection list:
The loop A-Country_data runs over all entries; in each iteration A-Country_code provides the technical value, A-Country_value the label for the buyer, and A-Country_selected marks the entry already selected. These tags are permitted on the billing and delivery address page in the ordering process (ws_address_combined.htm) and on the billing address management page in the customer account (ws_address_manage.htm).

A-Feldname_code

Outputs the technical value of a list entry, for example the three-letter ISO code in the country selection. This value belongs in the value of the option, because it is submitted and processed further.

A-Feldname_data

Loop tag over all entries of a selection list. Within the loop, A-Feldname_code, A-Feldname_value and A-Feldname_selected are available for the current entry.

A-Feldname_selected

Sets the selected attribute for the entry already selected. Without this tag, the selection list jumps back to the first entry after the page is reloaded or when it is called from the customer account.

A-Feldname_value

Outputs the label of a list entry, i.e. the text the buyer reads in the selection list.

A-Feldname_list

Generates a complete selection list as a finished HTML element.
This tag will no longer be supported in the future. Instead, build selection lists for the billing address from A-Feldname_data, A-Feldname_code, A-Feldname_value and A-Feldname_selected. This takes a few more lines in the template, but you control the markup and classes yourself.
Guide: Requesting address data as selection lists

Other tags

These tags have a fixed name, so they are not formed from a parameter name. They provide composite or customer-specific values. None of these tags can be used as a loop tag. “Address pages” refers to the billing and delivery address page in the ordering process (ws_address_combined.htm) and the billing address management page in the customer account (ws_address_manage.htm).

A-CompleteSalutation

Outputs the complete salutation, for example “Sehr geehrter Herr Meier,” (“Dear Mr. Meier,”). The texts for this are stored in the salutation configuration salutation.dat per country and gender.
The negative range is particularly worthwhile here. Without a salutation, a letter would otherwise begin with an empty line and a comma.

A-CountryISO

Outputs the three-letter ISO country code of the selected billing country.
The ISO code is transmitted together with the country name on submission and derived from it by the shop. For passing data to external systems, it is more reliable than the country name, which varies depending on the language.

A-DateOfBirth_list

Generates three selection lists for day, month and year, used to request the date of birth for the billing address.
The shop generates the three lists entirely by itself:
  • The day list contains the values 01 to 31, the month list 01 to 12.
  • The year list goes back 121 years, from the current year to the current year minus 121.
  • Each of the three lists begins with an empty entry.
  • The date of birth is only saved if day, month and year are selected. If one of them is missing, the field remains empty.

Styles

So that the three selection lists can be styled, the shop assigns them IDs and a shared class. You can adopt these in your styles file.
The ID of the year list has no suffix; it corresponds to the field name itself. This is not an error in the documentation but the shop’s naming convention. The counterpart for the delivery address is called #ws_input_delivery_date_of_birth and follows the same pattern.

A-ERPLastOrderDate

Outputs the date of the last order in the format YYYY-MM-DD. The value comes from the connected merchandise management system.
Usually only relevant for debugging purposes. Whether the value is present and how up to date it is depends entirely on the connected merchandise management system.

A-InterCompanyCustomer

The range is displayed if the buyer is marked as “intercompany billing”, i.e. belongs to a settlement between customers or companies within a group of companies. If this flag is set, VAT is always deducted completely.
The flag can only be set in the online service area, with additional authentication by entering a password. It can neither be set nor changed via the template.
Guide: VAT

A-SalutationCode

Outputs the technical code of the salutation. The codes are stored in the salutation configuration salutation.dat per country and gender, in coordination with the connected ERP systems.
Reference: salutation.dat configuration

A-TitleCode

Outputs the technical value of the title.

A-UserDeliveryCostDiscount

The range is displayed if a delivery cost discount is stored for the buyer. The single tag outputs the discount as a percentage.
The outer bracketing with ST-LoggedIn is part of it. A customer-specific discount is only known after login, and the statement “Für Sie wurde kein Rabatt hinterlegt” (“No discount has been stored for you”) would simply be wrong for a visitor who is not logged in.
Guide: Creating shipping methods, customer-specific discount and waiver for shipping costs

A-UserDeliveryCostFree

The range is displayed if a delivery cost waiver is stored for the buyer. They then order free of shipping costs.

A-UserIndex

Outputs the user index of the logged-in buyer, i.e. their internal identifier in the shop database.
The user index is an internal identifier and does not belong in any output visible to the buyer, nor in a URL. Use it for interfaces and troubleshooting.

A-UserMustChangePW

The range is displayed if the buyer must change their password, for example after the forced change for new customers.
This tag is only permitted on the login page (ws_login.htm).
Guide: Forced password change for new customers

A-UserPaymentCostDiscount

The range is displayed if a payment cost discount is stored for the buyer. The single tag outputs the discount as a percentage.
Guide: Creating payment methods, customer-specific discount and waiver for payment costs

A-UserPaymentCostFree

The range is displayed if a payment cost waiver is stored for the buyer.

A-UserSubTotalDiscount()

The range is displayed if the buyer has been assigned a discount on the merchandise value. The single tag outputs the discount as a percentage.

Decimal places

As a single tag, A-UserSubTotalDiscount() accepts a parameter for the number of decimal places. Permitted values are 2 and 0. Without a parameter, the discount is always output without decimal places. With a stored discount of 10 percent:

Displaying the savings in euros

A percentage alone tells the buyer little. It becomes interesting when they can see on the product how much they save. For this, the discount rate is applied to the product price.
The inner check with DC-CompareDigitGT catches the case where a discount rate is stored but is 0. Without it, the product would show “Ihr Kundenrabatt: 0 %” and “Sie sparen: 0,00”.
Guide: Defining discounts · Materials: Commercial calculations · Reference: DC-CompareDigitGT() · Reference: DC-CommercialCalc1…3_set() · Reference: DC-CommercialCalc1…3_percent() · Reference: WS-CurrencySymbol

A-WarrantyList

Outputs the authorization codes stored for the logged-in customer in the customer account as a comma-separated string.
This tag is not suitable for showing and hiding content or controls; use ST-Warranty() for that. With it, you check a single authorization code specifically instead of evaluating the code list as text.
Reference: ST-Warranty()
  • Guide: Requesting the billing address
  • Guide: Requesting address data as selection lists
  • Guide: Choosing between private and business address
  • Reference: D- (Delivery address)