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

# general - General shop settings

> The general node holds WEBSALE shop-wide base settings: languages, countries, subshops, customer account, security, test mode and consent management.

export const confTestmodus = "Einstellungen → Shop-Konfiguration → Gruppe „Testmodus\"";

export const confAllgemein = "Einstellungen → Shop-Konfiguration → Gruppe „Allgemein\"";

export const confKundenkonto = "Einstellungen → Shop-Konfiguration → Gruppe „Kundenkonto\"";

export const confSprache = "Einstellungen → Shop-Konfiguration → Gruppe Sprache";

export const confZahlenformatierung = "Einstellungen → Shop-Konfiguration → Gruppe „Zahlenformatierung\"";

export const confSubshops = "Einstellungen → Shop-Konfiguration → Gruppe „Subshops\"";

export const confGarbageCollection = "Einstellungen → Shop-Konfiguration → Gruppe Garbage Collection";

export const confSicherheit = "Einstellungen → Shop-Konfiguration → Gruppe „Sicherheit\"";

export const confSonstige = "Einstellungen → Shop-Konfiguration → Gruppe „Sonstige Module\"";

export const confAdminInterface = "Einstellungen → Shop-Konfiguration → Gruppe „Admin Interface\"";

export const confAdressdaten = "Einstellungen → Shop-Konfiguration → Gruppe „Adressdaten\"";

export const KonfigDeeplink = ({node}) => <>
    You can open this setting directly in the Admin Interface via the following link:{" "}
    <code>{`https://<shop-domain>/admin/config/${node}`}</code>{" "}
    (<a href="/en/admin-interface/konfigurations-deeplinks">Deeplink overview</a>)
  </>;

export const TextbausteinHinweis = () => <>
    Dieser Text wird über einen Textbaustein realisiert.<br />
    Alles zu Textbausteinen in Konfigurationen finden Sie{" "}
    <a href="https://dokumentation.websale.de/konfiguration#verwendung-von-textbausteinen-in-konfigurationen">hier</a>.
  </>;

The `general` node bundles all general, system-wide base settings of the online shop. It is one of the most central and at the same time most extensive configuration areas and contains parameters that affect numerous modules, functions and views of the shop.

In the Admin Interface, the settings consolidated here are not found under a single menu item. They affect different functional areas (e.g. languages, countries, subshops, consent management) and are grouped there thematically.\
The respective location in the Admin Interface is noted in the documentation of each section.

Through this node you can control, among other things, the following aspects:

* Activation status, time zone and base parameters of the shop
* Definition of the available countries, languages, titles and salutations
* Subshop-specific settings (e.g. language, currency, theme)
* Cookie and tracking consent groups including individual services
* Formatting for prices, quantities and weights
* Postal code checks per country
* Settings for test mode, customer account deletion and session validity

The node therefore forms the central configuration base of the entire system and establishes fundamental dependencies for many other nodes such as basket, finance, content or customer.

## `general*` - Basic structure

The basic structure of the `general` node is shown below:

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
  "general": {
    "addressListElements": { },
    "adminAccountSettings": { },
    "asse": { },
    "consentCookieGroup": { },
    "consentCookieService": { },
    "country": { },
    "customerAccountSettings": { },
    "deviceTypes": { },
    "garbageCollection": { },
    "general": { },
    "language": { },
    "numberFormat": { },
    "order": { },
    "orderSortOption": { },
    "productRating": { },
    "salutation": { },
    "sitemap": { },
    "subshop": { },
    "subshopView": { },
    "testMode": { },
    "title": { },
    "zipCodes": { }
  }
}
```

#### Parameter description:

| **Parameter**             | **Description**                                                                                                                                    |
| ------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
| `addressListElements`     | Defines selectable lists (dropdowns/radio lists) for address forms.                                                                                |
| `adminAccountSettings`    | Sign-in policies for the Admin Interface (max. failed attempts, lockout duration).                                                                 |
| `asse`                    | Configuration of the asynchronous server-side events (ASSE) interface for webhooks/integrations.                                                   |
| `consentCookieGroup`      | Groups (categories) in the consent layer that bundle multiple services.                                                                            |
| `consentCookieService`    | Individual definition of the consent-required cookie/tracking services in the consent layer.                                                       |
| `country`                 | Defines the countries selectable in the shop including ISO codes and tax assignment.                                                               |
| `customerAccountSettings` | Behaviour when deleting customer accounts (soft delete, ERP sync).                                                                                 |
| `deviceTypes`             | Definition of the recognised device types (desktop, tablet, smartphone).                                                                           |
| `garbageCollection`       | Validity period of sessions and automatic cleanup of expired sessions.                                                                             |
| `general`                 | General base parameters (status, time zone, URL/referer parameters).                                                                               |
| `language`                | Defines the languages available in the system.                                                                                                     |
| `numberFormat`            | Formatting of prices, quantities and weights (separators, decimal places).                                                                         |
| `order`                   | Defines optional order statuses (e.g. "in processing", "shipped").  <br />Configuration in the Admin Interface directly in the "*Orders*" service. |
| `orderSortOption`         | Individual sort options for the order overview (field + direction).                                                                                |
| `productRating`           | Configuration of the rating system for products in the shop.  <br />Configuration in the Admin Interface under *Marketing → Customer reviews*.     |
| `salutation`              | Defines the available salutations (e.g. Mr, Mrs).                                                                                                  |
| `sitemap`                 | Enables or configures the generation of a sitemap.  <br />Configuration in the Admin Interface under *SEO*.                                        |
| `subshop`                 | Defines the individual subshops (ID, language assignment, storage reference).                                                                      |
| `subshopView`             | Base settings per subshop (language, currency, countries, theme).                                                                                  |
| `testMode`                | Enables and controls the password-protected test mode of the shop.                                                                                 |
| `title`                   | Defines the titles available for the salutation (e.g. Dr., Prof.).                                                                                 |
| `zipCodes`                | Syntactic postal code check per country via regex.                                                                                                 |

## `general.addressListElements` - Address lists

The `general.addressListElements` node defines selectable lists (dropdowns/radio lists) for address forms.

Each list element has a unique ID, a technical name, optionally a scope (billing/delivery address) and the selectable values.

<KonfigDeeplink node="general.addressListElements" />

#### Example configuration (`general.addressListElements.billAddressType`)

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
  "addressType": "both",
  "dataId": "billAddressType",
  "defaultValue": "1",
  "name": "Adresstyp Rechnungsadresse",
  "values": [
    {
      "name": "Privat",
      "value": "1"
    },
    {
      "name": "Firma",
      "value": "2"
    }
  ]
}
```

#### Parameter overview

| **Parameter**  | **Type**      | **Description**                                                                                                                                                                                                         |
| -------------- | ------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `addressType`  | enum          | Optional scope of the list.  <br />Allowed values: <br />`"bill"` (billing address only), `"delivery"` (delivery address only), `"both"` (both). <br />Default: if omitted, the list applies wherever it is integrated. |
| `defaultValue` | string        | Optional default value (string). <br />If set, this value is preselected initially. <br />Must match a `values[].value`.                                                                                                |
| `dataId`       | string        | Unique ID of the list (string). <br />Must be unique within all address lists; used for technical identification.                                                                                                       |
| `name`         | string        | Technical name of the list (string). Usually analogous to `dataId`.                                                                                                                                                     |
| `values`       | list (object) | Array of selectable entries. Order = display order.                                                                                                                                                                     |
| `name`         | string        | Visible display name in the UI (e.g. "Private", "Company").                                                                                                                                                             |
| `value`        | string        | Technical value (string) that is stored / transmitted.                                                                                                                                                                  |

## `general.adminAccountSettings` - Sign-in policies for the Admin Interface

The `general.adminAccountSettings` node defines security-relevant settings for the Admin Interface of the shop.

It specifies how many failed sign-in attempts are allowed and how long a user remains blocked after reaching this limit before another login attempt is possible.\
The settings protect against unauthorised access and brute-force attacks.

<KonfigDeeplink node="general.adminAccountSettings" />

#### Example configuration (`general.adminAccountSettings`)

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
  "maxLoginAttempts": 3,
  "minutesToWait": 10
}
```

#### Parameter overview

| **Parameter**      | **Type** | **Description**                                                                                                                                                                       |
| ------------------ | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `maxLoginAttempts` | int      | Maximum number of allowed failed attempts when signing in to the Admin Interface. <br />Once this value is exceeded, the user access is temporarily blocked.     <br />Default: **3** |
| `minutesToWait`    | int      | Duration of the block (in minutes) before another sign-in attempt is possible.      <br />Default: **10**                                                                             |

**Note:** this block applies only to access to the Admin Interface and has no effect on user accounts in the frontend or in the customer area of the shop.

## `general.asse` - Asynchronous Server-Side Events (ASSE) interface

The `general.asse` node defines the configuration of the asynchronous server-side events (ASSE) interface.

This interface allows server-side events to be transmitted automatically to external systems, for example for webhooks, notifications or integrations with third-party systems.

<KonfigDeeplink node="general.asse" />

#### Example configuration (`general.asse.subscribeNewsletter2Go`)

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
  "additionalHTTPHeaders": [
    { "key": "Authorization", "value": "Bearer <API_KEY>" },
    { "key": "Accept", "value": "application/json" }
  ],
  "contentType": "json",
  "id": "sendOrderToERP",
  "numberRetries": 5,
  "requestMethod": "post",
  "retryDelay": 30,
  "successConditions": [
    { "httpStatus": 201 },
    {
      "type": "responseJsonData",
      "jsonPath": "/status",
      "conditionType": "equal",
      "value": {
        "string": "created"
      }
    }
  ],
  "timeout": 15,
  "url": "https://erp.example.com/api/v2/orders"
}
```

#### Parameter overview

| **Parameter**           | **Type**      | **Description**                                                                                                                                                                                                                                                                                                    |
| ----------------------- | ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `additionalHTTPHeaders` | list (object) | List of additional HTTP headers sent with the request to the target URL. <br />Each entry is defined as a key-value pair.  <br />If the external system expects authentication or an API key, this can also be added via `additionalHTTPHeaders`, e.g.:  `{ "key": "Authorization", "value": "Bearer <API_KEY>" }` |
| `contentType`           | enum          | Data format of the request body. <br />Allowed values: `"json"` (default), `"xml"` or `"txt"`.                                                                                                                                                                                                                     |
| `id`                    | string        | Unique identifier of the ASSE configuration, e.g. for the newsletter sign-up process.                                                                                                                                                                                                                              |
| `numberRetries`         | int           | Number of retries if the transmission fails.     <br /> Default: **3**                                                                                                                                                                                                                                             |
| `payloadParameterName`  | string        | Optional parameter name under which the actual payload is transmitted. <br />If empty, the payload is sent directly in the request body.                                                                                                                                                                           |
| `requestMethod`         | enum          | HTTP method for the transmission. <br />Typically `"post"`, alternatively `"put"`, `"patch"`, `"get"` or `"delete"` are possible.                                                                                                                                                                                  |
| `retryDelay`            | int           | Time interval (in seconds) between retries on failure.  <br />Default: **10**                                                                                                                                                                                                                                      |
| `successConditions`     | list (object) | List of conditions that indicate a successful transmission (e.g. expected HTTP status codes or response keywords).                                                                                                                                                                                                 |
| `timeout`               | int           | Maximum waiting time (in seconds) for the server response before the request is aborted and possibly retried.  <br />Default: **10**                                                                                                                                                                               |
| `url`                   | string        | Target URL to which the event is sent. Must be reachable and prepared for POST / PUT requests.                                                                                                                                                                                                                     |

## `general.consentCookie*` - Consent layer

All settings related to the consent dialogue for cookies, tracking and analytics services are defined here.

This layer is shown on the first visit to the shop and is mandatory according to the GDPR (General Data Protection Regulation) and the ePrivacy directive as soon as the shop collects visitor data or uses external services (e.g. tracking, captcha, media embeds).

In addition to the consent settings configured here, error messages or notification texts can also be defined in the section [actions.consentChange](/en/konfiguration/actions-fehlertexte-e-mails/actions-sicherheit-datenschutz).

### `general.consentCookieGroup` - Grouping of consent-required cookies/trackings

The `general.consentCookieGroup` node defines the groups shown in the consent layer (cookie banner) of the shop — that is, the well-known categories such as necessary cookies, statistics or marketing.

Each group bundles one or more services. These services are created separately under `general.consentCookieService` (section 5.2) and assigned here by reference.

The settings for this section are located in the Admin Interface under *Settings → Shop configuration* and the *Security* group.

**How are groups and services related?**\
A group is the category that the visitor sees in the consent layer (cookie banner) and can accept or reject via a checkbox, e.g. "Marketing".

A service is a concrete tracking or cookie tool that is assigned to this group, e.g. "Google Ads" or "Meta Pixel".

A group can have any number of services assigned. The visitor always consents to the entire group, not to individual services.

**Where do the service names come from?**\
The names under `services` (e.g. `general.consentCookieService.googleads`) always consist of the prefix `general.consentCookieService` and the technical name of the respective service. The following types of services exist:

* Built-in standard services — these are already predefined in the system and can be referenced directly. A list of available standard services is included in section 5.2.
* User-defined services — your own services can be freely created under `general.consentCookieService` (e.g. for your own tracking tool). The `name` assigned there then yields the reference path.

<KonfigDeeplink node="general.consentCookieGroup" />

#### Example configuration for the "Marketing" group (`general.consentCookieGroup.marketing`)

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
  "description": "<Textbaustein>",
  "label": "<Textbaustein>",
  "name": "marketing",
  "services": [
    "general.consentCookieService.awin",
    "general.consentCookieService.googleads",
    "general.consentCookieService.metapixel"
  ]
}
```

Multiple services are entered as a list under `services`. Each entry references a service node created under `general.consentCookieService`.

#### Example configuration for the "Statistics" group (`general.consentCookieGroup.statistics`)

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
  "description": "<Textbaustein>",
  "label": "<Textbaustein>",
  "name": "statistics",
  "services": [
    "general.consentCookieService.googleanalytics",
    "general.consentCookieService.econda"
  ]
}
```

#### Parameter description

| **Parameter** | **Type**   | **Description**                                                                                                                                                                                                                                     |
| ------------- | ---------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `description` | string     | Explanatory text for the group shown to the visitor in the consent layer. <br />A note text that is legally correct from a data protection perspective is recommended here, e.g. with reference to Art. 6 GDPR. <br /><br /><TextbausteinHinweis /> |
| `label`       | string     | Display name of the group in the consent layer, e.g. "Marketing" or "Statistics". <br /><br /><TextbausteinHinweis />                                                                                                                               |
| `name`        | string     | Technical identifier of the group. <br />Used internally for assignment and in the template engine. <br />Lowercase only, no special characters.                                                                                                    |
| `services`    | multiAssoc | List of assigned services. <br />Each entry is a full reference path to a node under `general.consentCookieService`. <br />Multiple services are entered as an array.                                                                               |

### `general.consentCookieService` - Individual definition of consent-required cookies/trackings

The `general.consentCookieService` node contains the definitions of the individual services shown in the consent layer (cookie banner). Each service represents a specific tracking, analytics or embedding tool that the visitor can explicitly consent to or refuse, e.g. Google Ads, Meta Pixel or a captcha service.

Each service node describes exactly one service. For every additional service a separate node is created. The services are then integrated into groups. How this works is described in section 5.1.

The settings for this section are located in the Admin Interface under *Settings → Shop configuration* and the *Security* group.

<KonfigDeeplink node="general.consentCookieService" />

#### Example configuration "Google Ads" (`general.consentCookieService.googleads`)

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
  "description": "<Textbaustein>",
  "label": "<Textbaustein>",
  "name": "googleads",
  "service": {
    "externalService": {},
    "shopService": null
  }
}
```

#### Example configuration "Meta Pixel" (`general.consentCookieService.metapixel`)

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
  "description": "<Textbaustein>",
  "label": "<Textbaustein>",
  "name": "metapixel",
  "service": {
    "externalService": {},
    "shopService": null
  }
}
```

#### Example configuration "Cookie basket" (`general.consentCookieService.cookiebasket`)

For internal shop functions, as in this example, `shopService` is set and `externalService` is set to `null`.

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
  "description": "<Textbaustein>",
  "label": "<Textbaustein>",
  "name": "cookiebasket",
  "service": {
    "externalService": null,
    "shopService": "CookieBasket"
  }
}
```

#### Parameter description

| **Parameter**     | **Type** | **Description**                                                                                                                                                                                                                                                                                                                                                         |
| ----------------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `description`     | string   | Explanatory text for the service shown to the visitor in the consent layer. <br />Should describe in an understandable way what the service is used for. <br /><br /><TextbausteinHinweis />                                                                                                                                                                            |
| `label`           | string   | Display name of the service in the consent layer, e.g. "Google Ads" or "Meta Pixel". <br /><br /><TextbausteinHinweis />                                                                                                                                                                                                                                                |
| `name`            | string   | Technical identifier of the service. <br />Used to assign the service to groups (as part of the reference path `general.consentCookieService.<name>`). <br />Lowercase only, no special characters.                                                                                                                                                                     |
| `service`         | oneOf    | Defines the type of the service. Exactly one of the two sub-parameters is set, the other receives `null`.  <br />Configuration for an external service (third-party tools such as Google Ads):  `"externalService": {},  "shopService": null`<br />Configuration for an internal service (`"CookieBasket"`):  `"externalService": null,  "shopService": "CookieBasket"` |
| `externalService` | object   | For all external third-party services. <br />Specified as an empty object `{}` — no further configuration required.                                                                                                                                                                                                                                                     |
| `shopService`     | enum     | For internal shop functions.   <br />Available value:<br />`"CookieBasket"` (cookie basket).   <br />For external services: `null`.                                                                                                                                                                                                                                     |

## `general.country` - Country definitions

The `general.country` sub-node defines all countries that are available for selection in the online shop — for example for the billing address, delivery address or in forms (e.g. contact or inquiry forms).

Configuration in the Admin Interface under *Settings → Shop configuration → "Address data" group*.

<KonfigDeeplink node="general.country" />

#### Example configuration for the country "Germany" (`general.country.de`)

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
  "active": true,
  "defaultTaxRate": "finance.taxRates.de",
  "isoAlpha2": "DE",
  "isoAlpha3": "DEU",
  "isoNum": "276",
  "name": "<Textbaustein>",
  "usedTaxes": "finance.taxRates.de"
}
```

#### Example configuration for the country "Poland" (`general.country.pl`)

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
  "active": true,
  "defaultTaxRate": "finance.taxRates.pl",
  "isoAlpha2": "PL",
  "isoAlpha3": "POL",
  "isoNum": "616",
  "name": "<Textbaustein>",
  "usedTaxes": "finance.taxRates.pl"
}
```

#### Parameter description

| **Parameter**    | **Type**    | **Description**                                                                                                                                                                                                                                                          |
| ---------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `active`         | bool        | Enables (`true`) or disables (`false`) the country for selection in address forms and checkout processes.                                                                                                                                                                |
| `isoAlpha2`      | string      | Two-letter ISO country code (according to ISO 3166-1 alpha-2), e.g. "DE" for Germany.                                                                                                                                                                                    |
| `isoAlpha3`      | string      | Three-letter ISO country code (according to ISO 3166-1 alpha-3), e.g. "DEU" for Germany.                                                                                                                                                                                 |
| `isoNum`         | string      | Numeric ISO code (according to ISO 3166-1 numeric), e.g. "276" for Germany.                                                                                                                                                                                              |
| `name`           | string      | Full name of the country as displayed in the shop in the country selection. <br /><br /><TextbausteinHinweis />                                                                                                                                                          |
| `defaultTaxRate` | singleAssoc | Links the country to a default tax rate from `finance.taxRates`. <br />This tax rate is primarily used for tax calculation in this delivery country.                                                                                                                     |
| `usedTaxes`      | singleAssoc | Specifies the allowed tax rate group.  <br />The entry references configurations in `finance.taxRates` or `finance.taxRatesAddition`.  <br />If `defaultTaxRate` and `usedTaxes` are not set, the shop automatically uses the global configuration from `finance.taxes`. |

<Info>
  The official ISO-3166-1 codes (alpha-2, alpha-3 and numeric) can be found on the website of the International Organization for Standardization (ISO): [https://www.iso.org/iso-3166-country-codes.html](https://www.iso.org/iso-3166-country-codes.html)
</Info>

<Info>
  In order to exclude countries, GeoIP from [IPLocate.io](http://IPLocate.io) is used.
</Info>

## `general.customerAccountSettings` - Behaviour when deleting customer accounts

The `general.customerAccountSettings` sub-node defines how the system handles customer accounts when they are to be deleted. The setting is particularly relevant when the shop is connected to an ERP system.

If soft delete is enabled, an account deleted by the customer is not removed completely immediately but initially only marked as "deleted".

The actual deletion takes place only after the ERP has also deleted the customer. This way, data consistency between shop and ERP is preserved.

If soft delete is disabled (`softDelete = false`), the deletion takes place immediately in the shop, before the ERP has been informed of it. This can lead to inconsistencies or missing synchronisations.

Configuration in the Admin Interface under *Settings → Shop configuration → "Customer account" group*.

<KonfigDeeplink node="general.customerAccountSettings" />

#### Example configuration for all subshops (`general.customerAccountSettings`)

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

#### Parameter description

| **Parameter** | **Type** | **Description**                                                                                                                                                    |
| ------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `softDelete`  | bool     | Defines whether customer accounts are only deactivated (`true`) or completely removed (`false`) on deletion. <br />This setting is relevant when an ERP is in use. |

## `general.deviceTypes` - Device types

The `general.deviceTypes` node is intended for the definition and management of device types that can be distinguished or specifically targeted in the shop system (e.g. desktop, tablet, smartphone).

<KonfigDeeplink node="general.deviceTypes" />

#### Example configuration (`general.deviceTypes`)

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
  "deviceTypes": [
    {
      "name": "mobile",
      "keywords": [
        "iPhone",
        "Android Mobile",
        "Mobile",
        "Windows Phone",
        "Opera Mini"
      ]
    },
    {
      "name": "tablet",
      "keywords": [
        "iPad",
        "Android Tablet",
        "Tablet",
        "Kindle",
        "Silk"
      ]
    },
    {
      "name": "desktop",
      "keywords": [
        "Windows NT",
        "Mac OS X",
        "X11",
        "Linux x86_64",
        "Chrome Desktop"
      ]
    }
  ]
}
```

#### Parameter overview

| **Parameter** | **Type**      | **Description**                                                                                                     |
| ------------- | ------------- | ------------------------------------------------------------------------------------------------------------------- |
| `deviceTypes` | list (object) | List of device classes to be detected. <br />Each device class has a name and associated detection characteristics. |
| `name`        | enum          | Name of the device classes:   <br />`mobile`, `tablet` or `desktop`.                                                |
| `keywords`    | list (string) | Freely selectable keywords for detecting the device classes. (optional)                                             |

## `general.garbageCollection` - Session management and automatic cleanup processes

The `general.garbageCollection` sub-node defines the validity period of user sessions and specifies when expired or incomplete sessions are automatically deleted.\
This ensures that outdated session data is regularly cleaned up and the system performance remains stable.

These parameters also let you control how long active and pending sessions may exist before they are removed from the system.

Configuration in the Admin Interface under *Settings → Shop configuration → "Garbage collection" group*.

<KonfigDeeplink node="general.garbageCollection" />

#### Example configuration for all subshops (`general.garbageCollection`)

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
  "pendingSessionAgeInHours": 72,
  "sessionAgeInMinutes": 120
}
```

#### Parameter description

| **Parameter**              | **Type** | **Description**                                                                                                                                                                             |
| -------------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `sessionAgeInMinutes`      | int      | Maximum validity period of an active session in minutes. <br />After this time the session is automatically ended.  <br />Default: **120**                                                  |
| `pendingSessionAgeInHours` | int      | Maximum lifetime of an unconfirmed or inactive session in hours (e.g. for abandoned order processes). After that, the session is ended and a new session is started.  <br />Default: **72** |

## `general.general` - General base settings

The `general.general` sub-node contains central base parameters that control the general behaviour of the online shop. Basic technical settings such as the activation status, allowed parameter limits, the time zone, or URL parameters for referer and subreferer detection are defined here.

Configuration in the Admin Interface under *Settings → Shop configuration → "General" group*.

<KonfigDeeplink node="general.general" />

#### Example configuration for all subshops (`general.general`)

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
  "maxParamCount": 1000,
  "maxParamLength": 10000,
  "refererUrlParameter": "ref",
  "setRefererByUrl": true,
  "setSubrefererByUrl": true,
  "status": "active",
  "subrefererUrlParameter": "subref",
  "timeZone": ""
}
```

#### Parameter description

| **Parameter**            | **Type** | **Description**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| ------------------------ | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `maxParamCount`          | uint     | Defines the maximum number of URL parameters the shop processes in a request. <br />This limit serves to control the system load and to avoid overload by very large requests.  <br />Default: **1000**                                                                                                                                                                                                                                                                                                                                                 |
| `maxParamLength`         | uint     | Maximum character length of individual URL parameters.  <br />Default: **10000**                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| `refererUrlParameter`    | string   | Defines the URL parameter used to detect a referer (e.g. partner link).  <br />Default: `ref`.                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| `setRefererByUrl`        | bool     | Enables (`true`) or disables (`false`) automatic detection of the referer based on the `refererUrlParameter` parameter.  <br />Default: `true`                                                                                                                                                                                                                                                                                                                                                                                                          |
| `setSubrefererByUrl`     | bool     | Enables (`true`) or disables (`false`) detection of the subreferer via the `subrefererUrlParameter` parameter.  <br />Default: `true`                                                                                                                                                                                                                                                                                                                                                                                                                   |
| `status`                 | enum     | Operating status of the shop. <br />Controls whether and for whom a subshop is publicly reachable. <br />The configuration can also be done via Admin → Configuration → Subshops.<br /><br />Possible values: <br />- `active`  (shop is live and reachable for all visitors).<br />- `testmode` (shop is only reachable via the [test mode login](/en/konfiguration/general-allgemeine-shopeinstellungen#general-testmode-testmodus); products marked as "test" become visible).<br />- `inactive` (every request is redirected to the inactive page). |
| `subrefererUrlParameter` | bool     | Defines the URL parameter used to detect a subreferer.  <br />Default: `subref`.                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| `timeZone`               | string   | Defines the time zone of the shop (e.g. `Europe/Berlin`).                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |

<Info>
  When setting `status` directly via the configuration (Admin Interface or API), no readiness check takes place. The switch to `active` is also applied if active online payment methods are still running in sandbox mode.\
  \
  For a secured go-live, use the workflow under *Admin → Configuration → Subshops* ("Go live" action) or call the `GET /shopStatus/goLive/{subshopId}` endpoint in advance. See details [here](/en/frontend/funktionsubersicht/inaktiv-seite).
</Info>

## `general.language` - Language definitions

The `general.language` sub-node defines all languages available in the system.

These languages can then be used in subshops, text snippets and language-dependent content.

Configuration in the Admin Interface under *Settings → Shop configuration → "Language" group*.

<KonfigDeeplink node="general.language" />

#### Example configuration for the "German" language (`general.language.de`)

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
  "isoCode": "DE",
  "name": "Deutsch"
}
```

#### Example configuration for the "English" language (`general.language.en`)

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
  "isoCode": "EN",
  "name": "English"
}
```

#### Parameter description

| **Parameter** | **Type** | **Description**                                                                                 |
| ------------- | -------- | ----------------------------------------------------------------------------------------------- |
| `isoCode`     | string   | ISO-639-1 code of the language (e.g. "DE" for German, "EN" for English).                        |
| `name`        | string   | Display name of the language in the shop. <br />Used in selection lists and language switchers. |

## `general.numberFormat` - Number and price formatting

The `general.numberFormat` sub-node defines the formatting of numeric values throughout the shop. These settings specify how prices, weights, quantities or ratings are presented in the frontend — e.g. which decimal separator is used, how many decimal places are shown or whether thousands separators are used.

These formatting rules affect all output generated by the *prepared format* template language.

Configuration in the Admin Interface under *Settings → Shop configuration → "Number formatting" group*.

<KonfigDeeplink node="general.numberFormat" />

#### Example configuration for the "German" language (`general.numberFormat.price`)

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
  "decimalPlaces": 2,
  "decimalSeparator": ",",
  "name": "price",
  "prefix": null,
  "suffix": null,
  "thousandsSeparator": null
}
```

#### Example configuration for the "German" language (`general.numberFormat.weight`)

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
  "decimalPlaces": 2,
  "decimalSeparator": ",",
  "name": "weight",
  "prefix": null,
  "suffix": null,
  "thousandsSeparator": null
}
```

#### Parameter description

| **Parameter**        | **Type** | **Description**                                                                                                                                                                                       |
| -------------------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `decimalPlaces`      | uint     | Number of decimal places to be displayed.  <br />Default: **2**                                                                                                                                       |
| `decimalSeparator`   | string   | Character used as the decimal separator (e.g. `,` or `.`).  <br />Default: `"."`                                                                                                                      |
| `name`               | string   | Internal name of the format (e.g. `price`, `amount`, `weight`). Used for system-wide assignment.                                                                                                      |
| `prefix`             | string   | Character or text shown before the numeric value (e.g. currency symbol, because for some currencies it is more common to place the symbol before the amount — example: £12 vs. 12 €). <br />Optional. |
| `suffix`             | string   | Character or text shown after the numeric value (e.g. "kg" or "€"). <br />Optional.                                                                                                                   |
| `thousandsSeparator` | string   | Character used to separate thousands (e.g. `.` or `,`). Can be `null` if no separator is desired. <br />Optional.                                                                                     |

## `general.order` - Display of the order history

The `general.order` sub-node controls the display and sorting of the order history in the customer account of the online shop. It defines how orders are listed, sorted and paginated, as well as which status values are shown to the customer.

This way you can configure default sorting, the number of orders per page and the display mode of the order history (e.g. subshop-related or global). In addition, you can define your own status definitions with icons and labels for display in the storefront.

<KonfigDeeplink node="general.order" />

#### Example configuration for order statuses (`general.order`)

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
  "defaultResultsPerPage": 20,
  "defaultSortOption": "general.orderSortOption.dateDesc",
  "maxResults": 1000,
  "orderHistoryDisplay": "currentSubShop",
  "resultsPerPageOptions": [
    5,
    10,
    20,
    25,
    30
  ],
  "sortOptions": [
    "general.orderSortOption.dateDesc",
    "general.orderSortOption.dateAsc"
  ],
  "states": [
    { "id": 1, "caption": "In Bearbeitung", "icon": "clock", "action": "process" },
    { "id": 2, "caption": "Versendet",       "icon": "truck", "action": "ship" },
    { "id": 3, "caption": "Storniert",       "icon": "ban",   "action": "cancel" }
  ]
}
```

#### Parameter description

| **Parameter**           | **Type**      | **Description**                                                                                                                          |
| ----------------------- | ------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
| `defaultResultsPerPage` | int           | Defines how many orders are shown per page by default.  <br />Default: **20**                                                            |
| `defaultSortOption`     | singleAssoc   | Determines the preset sorting of the order list (e.g. by date descending). <br />Optional.                                               |
| `maxResults`            | int           | Defines the maximum number of orders that may be retrieved or displayed at the same time.  <br />Default: **1000**                       |
| `orderHistoryDisplay`   | enum          | Defines whether the order history is shown for all subshops or only for the currently active subshop (`allSubShops` / `currentSubShop`). |
| `resultsPerPageOptions` | list (uint)   | Contains the selectable values for the number of orders displayed per page.  <br />Default: `[20, 50, 100, 200]`                         |
| `sortOptions`           | multiAssoc    | List of available sort options (e.g. by date ascending or descending). <br />References to `general.orderSortOption.*`. <br />Optional.  |
| `states`                | list (object) | List of available order statuses (array of objects).                                                                                     |
| `id`                    | uint          | Unique numerical ID of the status (unsigned integer). Used for technical reference in processes / integrations.                          |
| `caption`               | text          | Display / plain-text label of the status (e.g. "Shipped").                                                                               |
| `icon`                  | text          | Icon name for UI display (e.g. `truck`, `clock`). The specific icon library depends on the frontend.                                     |
| `action`                | text          | Technical action shortcut that triggers, for example, workflows or buttons (e.g. `ship`, `cancel`).                                      |

## `general.orderSortOption` - Sorting of the order history

Defines individual sort options for the order overview — for example by date, total amount or status. Each option has a freely selectable, unique name and references a field that is available in the order list.

<KonfigDeeplink node="general.orderSortOption" />

#### Example configuration

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
  "name": "date_desc",
  "fieldName": "dateCreated",
  "direction": "desc"
}
```

#### Parameter overview

| **Parameter** | **Type**        | **Description**                                                                                                                 |
| ------------- | --------------- | ------------------------------------------------------------------------------------------------------------------------------- |
| `name`        | string (unique) | Unique name of the sort option. <br />Can be chosen freely.                                                                     |
| `fieldName`   | string          | Data field to sort by (e.g. `dateCreated`, `totalPrice`, `status`). <br />Must be a sortable field available in the order list. |
| `direction`   | enum            | Specifies the sort direction. <br />`asc` = ascending, `desc` = descending.                                                     |

## `general.productRating` - Product review

The `general.productRating` node controls the rating system for products in the shop.\
It defines the framework conditions for product reviews (rating scale, required fields, text lengths, multiple reviews) as well as the settings for automatic review reminders by email.

<KonfigDeeplink node="general.productRating" />

#### Example configuration (`general.productRating`)

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
  "maximumRating": 5,
  "minimumRating": 1,
  "allowRatingAfterEachOrder": false,
  "ratingFields": {
    "descriptionMaxLength": 1000,
    "descriptionRequired": true,
    "pointsRequired": true,
    "subjectMaxLength": 100,
    "subjectRequired": true
  },
  "reminderEmail": {
    "active": true,
    "consentRequired": true,
    "consentService": "ratereminder",
    "intervalInDays": 1,
    "templateEmail": {
      "senderAddress": "noreply@websale.de",
      "subject": "Bewerten Sie die von Ihnen bestellten Produkte!",
      "template": "rateReminder.htm"
    }
  }
}
```

#### Parameter overview

| **Parameter**               | **Type** | **Description**                                                                                                                          |
| --------------------------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
| `maximumRating`             | int      | Maximum value of the rating scale (e.g. 5 for a 5-star system).  <br />Default: **5**                                                    |
| `minimumRating`             | int      | Lowest rating value.  <br />Default: **1**                                                                                               |
| `allowRatingAfterEachOrder` | bool     | Allows multiple reviews of the same product by the same user<br /> (`true` = multiple reviews allowed, `false` = not allowed / default). |
| `ratingFields`              | object   | Object with specifications for the input fields in the review form.                                                                      |
| `descriptionMaxLength`      | int      | Maximum number of characters for the free text of the review.  <br />Default: **1000**                                                   |
| `descriptionRequired`       | bool     | Indicates whether the description field is required (`true`/`false`).  <br />Default: `true`                                             |
| `pointsRequired`            | bool     | Defines whether providing a score is mandatory (`true`/`false`).  <br />Default: `true`                                                  |
| `subjectMaxLength`          | int      | Maximum number of characters for the subject/title of a review.  <br />Default: **100**                                                  |
| `subjectRequired`           | bool     | Indicates whether the subject/title is required (`true`/`false`).  <br />Default: `true`                                                 |
| `reminderEmail`             | object   | Object with settings for the automatic review reminder email.                                                                            |
| `active`                    | bool     | Enables (`true`) or disables (`false`) automatic sending of review reminders.  <br />Default: `false`                                    |
| `consentRequired`           | bool     | Defines whether customer consent is required for the review reminder.                                                                    |
| `consentService`            | string   | Name of the associated consent service used to manage the consent (e.g. `ratereminder`).                                                 |
| `intervalInDays`            | int      | Time interval (in days) between the order and sending the review reminder.  <br />Default: **14**                                        |
| `templateEmail`             | object   | Email template for sending the review reminder.                                                                                          |
| `senderAddress`             | string   | Sender email address of the review reminder.                                                                                             |
| `subject`                   | string   | Subject line of the email.                                                                                                               |
| `template`                  | string   | File name of the email template used (e.g. `rateReminder.htm`).                                                                          |

## `general.salutation` - Salutations

The `general.salutation` sub-node defines all available salutations shown in the shop — for example in address forms, registrations or contact forms.

Each salutation consists of a technical code and a displayed text.\
The order of the entries matches the display in the frontend.

Configuration in the Admin Interface under *Settings → Shop configuration → "Address data" group*.

<KonfigDeeplink node="general.salutation" />

#### Example configuration (`general.salutation`)

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
  "codeList": [
    {
      "code": "1",
      "text": "Herr"
    },
    {
      "code": "2",
      "text": "Frau"
    },
    {
      "code": "3",
      "text": "Familie"
    },
    {
      "code": "4",
      "text": "Firma"
    }
  ]
}
```

#### Parameter description

| **Parameter** | **Type**      | **Description**                                                                                       |
| ------------- | ------------- | ----------------------------------------------------------------------------------------------------- |
| `codeList`    | list (object) | List of all available salutations. <br />Each entry contains a technical code and the displayed text. |
| `code`        | string        | Technical code of the salutation. <br />Used internally for identification.                           |
| `text`        | string        | Display text of the salutation in the frontend (e.g. "Mr", "Mrs").                                    |

## `general.sitemap` - Sitemap activation

The `general.sitemap` sub-node controls the base path of the sitemap.

Via this parameter you can configure where the base path or the parent node is located, below which the sitemaps are stored.

The configuration is done in the Admin Interface under SEO.

<KonfigDeeplink node="general.sitemap" />

#### Example configuration (`general.sitemap`)

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

#### Parameter description

| **Parameter**   | **Type** | **Description**                                                                                 |
| --------------- | -------- | ----------------------------------------------------------------------------------------------- |
| `baseDirectory` | string   | Defines where the base path or the parent node is located, below which the sitemaps are stored. |

## `general.subshop` - Subshop definitions

The `general.subshop` sub-node defines the individual subshops within the platform.

Each subshop entry contains a unique ID, an optional language assignment and a technical storage reference.

Configuration in the Admin Interface under *Settings → Shop configuration → "Subshops" group*.

<KonfigDeeplink node="general.subshop" />

#### Example configuration for the "deutsch" subshop (`general.subshop.deutsch`)

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
  "dataSubshop": null,
  "language": "general.language.de",
  "storageId": ""
}
```

#### Example configuration for the "english" subshop (`general.subshop.englisch`)

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
  "dataSubshop": null,
  "language": "general.language.en",
  "storageId": ""
}
```

#### Parameter description

| **Parameter** | **Type**                    | **Description**                                                                                                                                               |
| ------------- | --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `name`        | string (`unique, readonly`) | System name of the subshop. <br />Assigned automatically and cannot be changed.                                                                               |
| `dataSubshop` | singleAssoc                 | Reference to the associated data subshop (e.g. DE shop). <br />Determines from which subshop context data is read / written.  <br />Target: `general.subshop` |
| `language`    | singleAssoc                 | Links the subshop to a language (e.g. `general.language.en`).  <br />Target: `general.language`                                                               |
| `storageId`   | string                      | Internal storage ID under which the subshop's data is stored. <br />Used by the system for data separation and indexing.                                      |

## `general.subshopView` - Subshop configurations

The `general.subshopView` sub-node defines the base settings for each individual subshop.

Among other things, language, currency, country assignment, the theme used and the default product type of the respective subshop are defined here.

This configuration determines how the subshop is displayed in the frontend and which framework conditions (e.g. valid countries, language, price formatting) apply. It builds on the subshop definitions from `general.subshop`.

Configuration in the Admin Interface under *Settings → Shop configuration → "Subshops" group*.

<KonfigDeeplink node="general.subshopView" />

#### Example configuration for the "deutsch" subshop (`general.subshopView.deutsch`)

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
  "countries": [
    "general.country.de",
    "general.country.at",
    "general.country.ch",
    "general.country.be",
    "general.country.it",
    "general.country.pl",
    "general.country.nl"
  ],
  "currency": "finance.currency.euro",
  "defaultProductType": "content.productType.standard",
  "language": "general.language.de",
  "theme": "default"
}
```

#### Example configuration for the "english" subshop (`general.subshopView.english`)

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
  "countries": [
    "general.country.us",
    "general.country.gb",
    "general.country.au",
    "general.country.ca"
  ],
  "currency": "finance.currency.dollar",
  "defaultProductType": "content.productType.standard",
  "language": "general.language.en",
  "theme": "default"
}
```

#### Parameter description

| **Parameter**        |             | **Description**                                                                                                                                                   |
| -------------------- | ----------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `countries`          | multiAssoc  | List of countries available for selection in the respective subshop (e.g. for delivery and billing addresses).  <br />References entries under `general.country`. |
| `currency`           | singleAssoc | Linked currency of the subshop.  <br />References entries under `finance.currency.[name]`.                                                                        |
| `defaultProductType` | singleAssoc | Default product type used for the display and processing of items (e.g. `content.productType.standard`).                                                          |
| `language`           | singleAssoc | Defines the language of the subshop.  <br />References entries under `general.language.[name]`.                                                                   |
| `theme`              | string      | Designates the template set used in the subshop.  <br />Default: `default`                                                                                        |

## `general.testMode` - Test mode

The `general.testMode` sub-node enables and controls the test mode of the shop.

The test mode is accessed via a special shop URL with parameters. On access, an input mask appears in which a predefined password must be entered to unlock access. Only after successful authentication is the shop usable via the URL.

This function serves to check changes, new content or layout adjustments without giving regular visitors access.

<Note>
  Test mode (including `basicAuthActive` / `basicAuthUsers`) only protects the **test environment** from regular visitors. To restrict a **live shop** to logged-in customers (e.g. a closed B2B shop), use the [B2B access restriction](/en/konfiguration/b2b-business-to-business-b2b) instead.
</Note>

Configuration in the Admin Interface under *Settings → Shop configuration → "Test mode" group*.

<KonfigDeeplink node="general.testMode" />

#### Example configuration for all subshops (`general.testMode`)

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
  "allowedUserAgents": null,
  "basicAuthActive": false,
  "basicAuthUsers": null,
  "password": "test",
  "template": "testMode.htm",
  "userAgentBypassActive": false
}
```

#### Parameter description

| **Parameter**           | **Type**      | **Description**                                                                                                                                    |
| ----------------------- | ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
| `allowedUserAgents`     | list (string) | List of user agents (e.g. browsers, test systems) that may enter test mode without entering a password.                                            |
| `basicAuthActive`       | bool          | Enables (`true`) or disables (`false`) an additional HTTP Basic authentication.                                                                    |
| `basicAuthUsers`        | list (object) | List of users authorised to access via HTTP Basic auth. <br />Only relevant if `basicAuthActive = true`.                                           |
| `username`              | string        | Username of the HTTP Basic auth user.                                                                                                              |
| `password`              | string        | Password of the HTTP Basic auth user.                                                                                                              |
| `password`              | string        | Password that must be entered when accessing the test mode URL to unlock the shop.                                                                 |
| `template`              | string        | Template file for the password prompt (e.g. `testMode.htm`).                                                                                       |
| `userAgentBypassActive` | bool          | Enables (`true`) or disables (`false`) whether certain user agents may bypass the test mode without a password (depending on `allowedUserAgents`). |

## `general.title` - Titles for the salutation

The `general.title` sub-node defines all available **titles** that can be selected in the shop — for example in address forms, registrations or contact forms.

Each entry consists of a technical code and the displayed title text (e.g. *Dr.*, *Prof.*). These values are shown in the frontend in the title selection list and can be extended or adjusted if needed.

Configuration in the Admin Interface under *Settings → Shop configuration → "Address data" group*.

<KonfigDeeplink node="general.title" />

#### Example configuration for all subshops (`general.title`)

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
  "codeList": [
    {
      "code": "1",
      "text": ""
    },
    {
      "code": "2",
      "text": "Dr."
    },
    {
      "code": "3",
      "text": "Prof."
    }
  ]
}
```

#### Parameter description

| **Parameter** | **Type**      | **Description**                                                                                |
| ------------- | ------------- | ---------------------------------------------------------------------------------------------- |
| `codeList`    | list (object) | List of all available titles. Each entry consists of a technical code and the associated text. |
| `code`        | string        | Technical code of the title. Used internally for identification.                               |
| `text`        | string        | Display text of the title in the frontend (e.g. "Dr." or "Prof.").                             |

## `general.zipCodes` - Postal code checks

The `general.zipCodes` sub-node defines the **syntactic check of postal codes** for individual countries.

For each country a regular expression (regex) can be stored to check whether an entered postal code matches the country-specific format. This validation is performed, for example, in forms or during the checkout process to avoid faulty inputs.

Configuration in the Admin Interface under *Settings → Shop configuration → "Address data" group*.

<KonfigDeeplink node="general.zipCodes" />

#### Example configuration for all subshops (`general.zipCodes`)

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
  "zipCodes": [
    {
      "country": "general.country.de",
      "zipRegex": "^[0-9]{5}$"
    },
    {
      "country": "general.country.at",
      "zipRegex": "^[0-9]{4}$"
    },
    {
      "country": "general.country.ch",
      "zipRegex": "^[0-9]{4}$"
    }
  ]
}
```

#### Parameter description

| **Parameter** | **Type**      | **Description**                                                                                                           |
| ------------- | ------------- | ------------------------------------------------------------------------------------------------------------------------- |
| `zipCodes`    | list (object) | List of all postal code rules. Each entry defines a country and the associated check regex.                               |
| `country`     | singleAssoc   | Reference to the country for which the rule applies (e.g. `general.country.de`).                                          |
| `zipRegex`    | string        | Regular expression that describes the valid postal code format of the respective country (e.g. `^[0-9]{5}$` for Germany). |
