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 configurationshop.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>.
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.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).
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.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.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.
class="input_error", otherwise class="input".
A-Feldname_errormessage
Outputs the error message for an address input field. The message is defined in theshop.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.
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.
A-Feldname_input
Outputs the technical name of the input field. It belongs inname 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-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.
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 configurationcountry.dat or from the shop.config.
All four current tags interlock and together produce a selection list:
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 thevalue 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 theselected 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. Guide: Requesting address data as selection listsOther 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 configurationsalutation.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 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.
A-SalutationCode
Outputs the technical code of the salutation. The codes are stored in the salutation configurationsalutation.dat per country and gender, in coordination with the connected ERP systems.
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.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.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).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.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”.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.Related topics
- Guide: Requesting the billing address
- Guide: Requesting address data as selection lists
- Guide: Choosing between private and business address
- Reference: D- (Delivery address)
