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

# Validierungs- und Prüfservices

Diese Seite beschreibt die verfügbaren Services zur Validierung von Benutzereingaben sowie die regelbasierten Prüfungen für Zahlungs- und Versandarten.

Die Services sind keine klassischen Konfigurationsknoten mit eigener Struktur, sondern werden in den jeweiligen Formular- oder Regeldefinitionen referenziert (z. B. in Account-, Checkout- oder Payment-/Shipping-Konfigurationen).

***

## `addressCheck.*` - Adressvalidierungen

`adressCheck.*` enthält Prüfungen für Adressfelder (z.B. Name, Straße, PLZ). Die Prüfungen werden in den jeweiligen Felddefinitionen unter `validations` hinterlegt.

Das Frontend zeigt die Felder wie konfiguriert an und prüft beim Ausfüllen, ob die Eingaben gültig sind. So werden falsche oder unzulässige Werte früh erkannt. \[Link]

### `addressCheck.minLength` - Mindestlänge

Prüft die Mindestlänge der Eingabe bei Adressfeldern.

#### Beispielkonfiguration für (`accounts.addressField.firstName`)

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
  "label": "",
  "name": "firstName",
  "validations": [
    {
      "options": {
        "len": 1
      },
      "service": "addressCheck.minLength"
    }
  ]
}
```

#### Parameterübersicht

| **Parameter** | **Beschreibung**                   |
| ------------- | ---------------------------------- |
| `len`         | Gewünschte Mindestlänge in Zahlen. |

### `addressCheck.maxLength` - Maximallänge

Prüft die Maximallänge der Eingabe bei Adressfeldern.

#### Beispielkonfiguration für (`accounts.addressField.firstName`)

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
  "label": "",
  "name": "firstName",
  "validations": [
    {
      "options": {
        "len": 255
      },
      "service": "addressCheck.maxLength"
    }
  ]
}
```

#### Parameterübersicht

| **Parameter** | **Beschreibung**                   |
| ------------- | ---------------------------------- |
| `len`         | Gewünschte Maximallänge in Zahlen. |

### `addressCheck.numeric` - Nur Ziffern

Prüft, ob die Eingabe bei Adressfelder nur aus Ziffern besteht.

#### Beispielkonfiguration für (`accounts.addressField.phone`)

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
  "label": "",
  "name": "phone",
  "validations": [
    {
      "service": "addressCheck.numeric"
    }
  ]
}
```

#### Parameterübersicht

| **Parameter** | **Beschreibung**              |
| ------------- | ----------------------------- |
| --            | Keine zusätzlichen Parameter. |

### `addressCheck.country` - Ländercode (ISO)

Prüft, ob die Eingabe resp. Auswahl bei Länderlisten der Adressdatenfelder ein im Shop konfigurierter Ländercode ist (ISO-Code: 2-stellig, 3-stellig oder ISO-Nummer).

Die offiziellen ISO-3166-1-Codes (alpha-2, alpha-3 und numerisch) finden sich auf der Website der International Organization for Standardization (ISO): [https://www.iso.org/iso-3166-country-codes.html](https://www.iso.org/iso-3166-country-codes.html)

#### Beispielkonfiguration für (`accounts.addressField.country`)

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
  "label": "",
  "name": "country",
  "validations": [
    {
      "service": "addressCheck.country"
    }
  ]
}
```

#### Parameterübersicht

| **Parameter** | **Beschreibung**              |
| ------------- | ----------------------------- |
| --            | Keine zusätzlichen Parameter. |

### `addressCheck.zip` - Postleitzahl (PLZ)

Prüft, ob die Eingabe eine gültige Postleitzahl (PLZ) für das angegebene Land ist. Die PLZ-Regeln stammen aus der Konfiguration. Das dazugehörige Land muss zwingend im Feld `country` übergeben werden.

#### Beispielkonfiguration für (`accounts.addressField.country`)

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
  "label": "",
  "name": "zip",
  "validations": [
    {
      "service": "addressCheck.zip"
    }
  ]
}
```

#### Parameterübersicht

| **Parameter** | **Beschreibung**              |
| ------------- | ----------------------------- |
| --            | Keine zusätzlichen Parameter. |

### `addressCheck.salutation` - Anrede (Code)

Prüft, ob die Eingabe eine gültige Anrede ist (Code gemäß Konfiguration).

#### Beispielkonfiguration für (`accounts.addressField.salutationCode`)

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
  "label": "",
  "name": "salutationCode",
  "validations": [
    {
      "service": "addressCheck.salutation"
    }
  ]
}
```

#### Parameterübersicht

| **Parameter** | **Beschreibung**              |
| ------------- | ----------------------------- |
| --            | Keine zusätzlichen Parameter. |

### `addressCheck.regex` - Regulärer Ausdruck

Prüft, ob die Eingabe zu einem regulären Ausdruck passt.

#### Beispielkonfiguration für (`accounts.addressField.additionalInfo`)

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
  "label": "",
  "name": "additionalInfo",
  "validations": [
    {
      "options": {
        "expression": "^((?i)(?!Postfach).)*$"
      },
      "service": "addressCheck.regex"
    }
  ]
}
```

#### Parameterübersicht

| **Parameter** | **Beschreibung**                   |
| ------------- | ---------------------------------- |
| `expression`  | Regulärer Ausdruck (Zeichenkette). |

### `addressCheck.phone` - Telefonnummer

rüft, ob die Eingabe eine gültige Telefonnummer ist. Eine gültige Nummer besteht aus Ziffern (ohne Längenbeschränkung) und optional einer internationalen Vorwahl.

Das `+` in der Vorwahl wird **nach** erfolgreicher Validierung durch `00` ersetzt.

#### Beispielkonfiguration für (`accounts.addressField.phone`)

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
  "label": "",
  "name": "phone",
  "validations": [
    {
      "service": "addressCheck.phone"
    }
  ]
}
```

#### Parameterübersicht

| **Parameter** | **Beschreibung**              |
| ------------- | ----------------------------- |
| --            | Keine zusätzlichen Parameter. |

### `addressCheck.alpha` - Nur Buchstaben (A–Z)

Prüft, ob die Eingabe nur aus lateinischen Buchstaben besteht (Groß-/Kleinschreibung egal).

#### Beispielkonfiguration für (`accounts.addressField.additionalInfo`)

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
  "label": "",
  "name": "additionalInfo",
  "validations": [
    { "service": "addressCheck.alpha" }
  ]
}
```

#### Parameterübersicht

| **Parameter** | **Beschreibung**              |
| ------------- | ----------------------------- |
| --            | Keine zusätzlichen Parameter. |

### `addressCheck.alphanum` - Buchstaben/Ziffern (A–Z/0–9)

Prüft, ob die Eingabe nur aus lateinischen Buchstaben oder Ziffern besteht (Groß-/Kleinschreibung egal).

#### Beispielkonfiguration für (`accounts.addressField.additionalInfo`)

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
  "label": "",
  "name": "additionalInfo",
  "validations": [
    { "service": "addressCheck.alphanum" }
  ]
}
```

#### Parameterübersicht

| **Parameter** | **Beschreibung**              |
| ------------- | ----------------------------- |
| --            | Keine zusätzlichen Parameter. |

### `addressCheck.legalSigns` - Erlaubte Zeichen

Prüft, ob alle Zeichen der Eingabe in der erlaubten Zeichenauswahl enthalten sind (Groß-/Kleinschreibung relevant).

#### Beispielkonfiguration für (`accounts.addressField.additionalInfo`)

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
  "label": "",
  "name": "additionalInfo",
  "validations": [
    { 
      "options": {
        "signs": "123456ABCSDEF"
      },
      "service": "addressCheck.legalSigns" 
    }
  ]
}
```

#### Parameterübersicht

| **Parameter** | **Beschreibung**                 |
| ------------- | -------------------------------- |
| `signs`       | Erlaubte Zeichen (Zeichenkette). |

### `addressCheck.illegalSigns` - Verbotene Zeichen

Gegenteil von `legalSigns`: Die Eingabe darf keines der angegebenen Zeichen enthalten.

#### Beispielkonfiguration für (`accounts.addressField.phone`)

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
  "label": "",
  "name": "phone",
  "validations": [
    { 
      "options": {
        "signs": ""*|~%${};"<>§@ 	()/-_" #*|~%${}	;"<>@§"
      },
      "service": "addressCheck.illegalSigns" 
    }
  ]
}
```

#### Parameterübersicht

| **Parameter** | **Beschreibung**                   |
| ------------- | ---------------------------------- |
| `signs`       | Unerlaubte Zeichen (Zeichenkette). |

### `addressCheck.date` - Datum

Prüft, ob die Eingabe ein gültiges Datum ist, und formatiert die Eingabe bei Bedarf.

#### Beispielkonfiguration für (`accounts.addressField.additionalInfo`)

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
  "label": "",
  "name": "additionalInfo",
  "validations": [
    { 
      "options": {
        "delimeter": -
        "dateformat": DMY
        "formatleadingzero": false
      },
      "service": "addressCheck.legalSigns" 
    }
  ]
}
```

#### Parameterübersicht

| **Parameter**       | **Beschreibung**                                                                                                                                                          |
| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `delimiter`         | Trennzeichen zwischen Tag/Monat/Jahr (z. B. `-` für `15-10-2025`).                                                                                                        |
| `dateformat`        | Beliebige Kombination aus `D`, `M`, `Y` (z. B. `DMY` für `15-10-2025`).                                                                                                   |
| `formatleadingzero` | Wenn aktiv (`true`), werden Tage/Monate zweistellig formatiert (`5 → 05`).  <br />Wenn deaktiviert (`false`), werden führende Nullen entfernt (`05 → 5`). (Wahrheitswert) |

### `addressCheck.allowedSelection` - Auswahl (Listenelement)

Validiert, ob die Eingabe einem vordefinierten Auswahlwert entspricht. Hierzu wird die `dataId` einer Konfiguration aus `general.addressListElements` übergeben.

Typische Anwendung: Prüfung, ob eine Adresse z. B. „Packstation“ oder „Privatadresse“ ist.

#### Beispielkonfiguration für (`accounts.addressField.additionalInfo`)

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
  "label": "",
  "name": "addressType"
  "validations": [
    {
      "options": {
        "listElements": "general.addressListElements.addressType"
      },
      "service": "addressCheck.allowedSelection"
    }
  ]
}
```

#### Parameterübersicht

| **Parameter**  | **Beschreibung**                                            |   |
| -------------- | ----------------------------------------------------------- | - |
| `listElements` | `dataId` einer Definition aus `general.addressListElements` |   |

***

## `dataChecker.*` - Allgemeine Feldvalidierungen

`dataChecker.*` enthält Prüfungen für allgemeine Formularfelder, die nicht speziell zu einer Adresse gehören. Die Prüfungen werden in der jeweiligen Felddefinition unter `validations` eingebunden.

Das Frontend übernimmt die Vorgaben aus der Felddefinition und prüft beim Ausfüllen, ob die Eingabe korrekt ist (z.B. Länge, Format oder unerlaubte Zeichen). \[Link]

### `dataChecker.minLength` - Mindestlänge

Prüft die Mindestlänge der Eingaben bei Formular-Eingabefeldern.

#### Beispielkonfiguration für (`inquiry.form.catalogue.fields.firstName`)

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
  {
    "label": "Vorname",
    "name": "firstName",
    "required": true,
    "validations": [
    { "options": { "len": 3 }, "service": "dataChecker.minLength" }
    ]
  }
```

#### Parameterübersicht

| **Parameter** | **Beschreibung**                   |   |
| ------------- | ---------------------------------- | - |
| `len`         | Gewünschte Mindestlänge in Zahlen. |   |

### `dataChecker.maxLength` - Maximallänge

Prüft die Maximallänge der Eingaben bei Formular-Eingabefeldern.

#### Beispielkonfiguration für (`inquiry.form.catalogue.fields.firstName`)

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
    "label": "Vorname",
    "name": "firstName",
    "required": true,
    "validations": [
    { "options": { "len": 255 }, "service": "dataChecker.maxLength" }
    ]
}
```

#### Parameterübersicht

| **Parameter** | **Beschreibung**                   |   |
| ------------- | ---------------------------------- | - |
| `len`         | Gewünschte Maximallänge in Zahlen. |   |

### `dataChecker.numeric` - Nur Ziffern

Prüft, ob die Eingabe bei Formular-Eingabfeldern nur aus Ziffern besteht.

#### Beispielkonfiguration für (`inquiry.form.catalogue.fields.phone`)

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
  {
    "label": "Telefon",
    "name": "phone",
    "validations": [
    { "service": "dataChecker.numeric" }
    ]
  }
```

#### Parameterübersicht

| **Parameter** | **Beschreibung**              |   |
| ------------- | ----------------------------- | - |
| --            | Keine zusätzlichen Parameter. |   |

### `dataChecker.country` - Ländercode (ISO)

Prüft, ob die Eingabe resp. Auswahl bei Länderlisten der Formularfelder ein im Shop konfigurierter Ländercode ist (ISO-Code: 2-stellig, 3-stellig oder ISO-Nummer).

Die offiziellen ISO-3166-1-Codes (alpha-2, alpha-3 und numerisch) finden sich auf der Website der International Organization for Standardization (ISO): [https://www.iso.org/iso-3166-country-codes.html](https://www.iso.org/iso-3166-country-codes.html)

[https://www.iso.org/iso-3166-country-codes.html](https://www.iso.org/iso-3166-country-codes.html)

#### Beispielkonfiguration für (`inquiry.form.catalogue.fields.country`)

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
  {
    "label": "Land",
    "name": "country",
    "validations": [
    { "service": "dataChecker.country" }
    ]
  }
```

#### Parameterübersicht

| **Parameter** | **Beschreibung**              |   |
| ------------- | ----------------------------- | - |
| --            | Keine zusätzlichen Parameter. |   |

### `dataChecker.zip` - Postleitzahl (PLZ)

Prüft, ob die Eingabe eine gültige Postleitzahl (PLZ) für das angegebene Land ist. Die PLZ-Regeln stammen aus der Konfiguration. Das dazugehörige Land muss zwingend im Feld `country` übergeben werden.

#### Beispielkonfiguration für (`inquiry.form.catalogue.fields.zip`)

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
  {
    "label": "Postleitzahl",
    "name": "zip",
    "validations": [
    { "service": "dataChecker.zip" }
    ]
  }
```

#### Parameterübersicht

| **Parameter** | **Beschreibung**                                                                                                       |   |
| ------------- | ---------------------------------------------------------------------------------------------------------------------- | - |
| --            | Keine zusätzlichen Parameter. <br />(Für länderspezifische Prüfung muss das Feld `country` im Kontext verfügbar sein.) |   |

### `dataChecker.salutation` - Anrede (Code)

Prüft, ob die Eingabe eine gültige Anrede ist (Code gemäß Konfiguration).

#### Beispielkonfiguration für (`inquiry.form.catalogue.fields.salutation`)

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
  {
    "label": "Anrede",
    "name": "salutation",
    "validations": [
    { "service": "dataChecker.salutation" }
    ]
  }
```

#### Parameterübersicht

| **Parameter** | **Beschreibung**              |   |
| ------------- | ----------------------------- | - |
| --            | Keine zusätzlichen Parameter. |   |

### `dataChecker.regex` - Regulärer Ausdruck

Prüft, ob die Eingabe zu einem regulären Ausdruck passt.

#### Beispielkonfiguration für (`inquiry.form.catalogue.fields.additionalInfo`)

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
  {
    "label": "Zusatzinformation",
    "name": "additionalInfo",
    "validations": [
    {
      "options": {
        "expression": "^((?i)(?!Postfach).)*$"
      },
      "service": "dataChecker.regex"
    }
  ]
  }
```

#### Parameterübersicht

| **Parameter** | **Beschreibung**                   |   |
| ------------- | ---------------------------------- | - |
| `expression`  | Regulärer Ausdruck (Zeichenkette). |   |

### `dataChecker.email` - E‑Mail-Adresse

Prüft, ob die Eingabe eine gültige E‑Mail-Adresse ist.

#### Beispielkonfiguration für (`inquiry.form.catalogue.fields.mail`)

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
  {
    "label": "E-Mail-Adresse",
    "name": "mail",
    "validations": [
    { "service": "dataChecker.email" }
  ]
  }
```

#### Parameterübersicht

| **Parameter** | **Beschreibung**              |   |
| ------------- | ----------------------------- | - |
| --            | Keine zusätzlichen Parameter. |   |

### `dataChecker.alphaClass` - Buchstaben (min/verschiedene)

Stellt sicher, dass die Eingabe **mindestens** `minChars` lateinische Buchstaben enthält (Groß-/Kleinschreibung egal); optional Mindestanzahl unterschiedlicher Buchstaben.

#### Beispielkonfiguration für (`inquiry.form.catalogue.fields.additionalInfo`)

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
    "label": "Zusatzinformation",
    "name": "additionalInfo",
    "required": true,
    "validations": [
      { "options": 
        { 
          "minChars": 8,
          "minDifferentChars": 2
          
        },
        "service": "dataChecker.alphaClass" 
      }
    ]
}
```

#### Parameterübersicht

| **Parameter**       | **Beschreibung**                                       |   |
| ------------------- | ------------------------------------------------------ | - |
| `minChars`          | Mindestanzahl an Buchstaben (Zahl ≥ 0).                |   |
| `minDifferentChars` | Mindestanzahl unterschiedlicher Buchstaben (Zahl ≥ 0). |   |

### `dataChecker.lowerAlphaClass` - Kleinbuchstaben

Wie `alphaClass`, jedoch **nur** Kleinbuchstaben.

#### Beispielkonfiguration für (`inquiry.form.catalogue.fields.additionalInfo`)

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
    "label": "Zusatzinformation",
    "name": "additionalInfo",
    "required": true,
    "validations": [
      { "options": 
        { 
          "minChars": 8,
          "minDifferentChars": 2
          
        },
        "service": "dataChecker.lowerAlphaClass" 
      }
    ]
}
```

#### Parameterübersicht

| **Parameter**       | **Beschreibung**                                            |   |
| ------------------- | ----------------------------------------------------------- | - |
| `minChars`          | Mindestanzahl an Kleinbuchstaben (Zahl ≥ 0).                |   |
| `minDifferentChars` | Mindestanzahl unterschiedlicher Kleinbuchstaben (Zahl ≥ 0). |   |

### `dataChecker.upperAlphaClass` - Großbuchstaben

Wie `alphaClass`, jedoch **nur** Großbuchstaben.

#### Beispielkonfiguration für (`inquiry.form.catalogue.fields.additionalInfo`)

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
    "label": "Zusatzinformation",
    "name": "additionalInfo",
    "required": true,
    "validations": [
      { "options": 
        { 
          "minChars": 8,
          "minDifferentChars": 2
          
        },
        "service": "dataChecker.upperAlphaClass" 
      }
    ]
}
```

#### Parameterübersicht

| **Parameter**       | **Beschreibung**                                           |   |
| ------------------- | ---------------------------------------------------------- | - |
| `minChars`          | Mindestanzahl an Großbuchstaben (Zahl ≥ 0).                |   |
| `minDifferentChars` | Mindestanzahl unterschiedlicher Großbuchstaben (Zahl ≥ 0). |   |

### `dataChecker.digitClass` - Ziffern

Wie `alphaClass`, jedoch für Ziffern.

#### Beispielkonfiguration für (`inquiry.form.catalogue.fields.additionalInfo`)

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
    "label": "Zusatzinformation",
    "name": "additionalInfo",
    "required": true,
    "validations": [
      { "options": 
        { 
          "minChars": 4,
          "minDifferentChars": 2
          
        },
        "service": "dataChecker.digitClass" 
      }
    ]
}
```

#### Parameterübersicht

| **Parameter**       | **Beschreibung**                                    |   |
| ------------------- | --------------------------------------------------- | - |
| `minChars`          | Mindestanzahl an Ziffern (Zahl ≥ 0).                |   |
| `minDifferentChars` | Mindestanzahl unterschiedlicher Ziffern (Zahl ≥ 0). |   |

### `dataChecker.specialClass` - Sonderzeichen

Wie `alphaClass`, jedoch für Sonderzeichen.

#### Beispielkonfiguration für (`inquiry.form.catalogue.fields.additionalInfo`)

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
    "label": "Zusatzinformation",
    "name": "additionalInfo",
    "required": true,
    "validations": [
      { "options": 
        { 
          "minChars": 2,
          "minDifferentChars": 1
          
        },
        "service": "dataChecker.specialClass" 
      }
    ]
}
```

#### Parameterübersicht

| **Parameter**       | **Beschreibung**                                          |   |
| ------------------- | --------------------------------------------------------- | - |
| `minChars`          | Mindestanzahl an Sonderzeichen (Zahl ≥ 0).                |   |
| `minDifferentChars` | Mindestanzahl unterschiedlicher Sonderzeichen (Zahl ≥ 0). |   |

### `dataChecker.sequenceOfIdenticalCharacters` - Wiederholte Zeichen (Sequenz)

Prüft, ob dasselbe Zeichen zu oft hintereinander vorkommt.

#### Beispielkonfiguration für (`inquiry.form.catalogue.fields.additionalInfo`)

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
    "label": "Zusatzinformation",
    "name": "additionalInfo",
    "required": true,
    "validations": [
      { "options": 
        { 
          "caseInsensitive": false,
          "maxSequence": 2
          
        },
        "service": "dataChecker.sequenceOfIdenticalCharacters" 
      }
    ]
}
```

#### Parameterübersicht

| **Parameter**     | **Beschreibung**                                          |
| ----------------- | --------------------------------------------------------- |
| `caseInsensitive` | Groß-/Kleinschreibung ignorieren (Wahrheitswert).         |
| `maxSequence`     | Maximale erlaubte Wiederholung eines Zeichens (Zahl ≥ 0). |

### `dataChecker.consecutiveNumbers` - Fortlaufende Zahlen

Prüft auf auf- oder absteigende Zahlenketten (z. B. `12345` oder `54321`).

#### Beispielkonfiguration für (`inquiry.form.catalogue.fields.additionalInfo`)

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
    "label": "Zusatzinformation",
    "name": "additionalInfo",
    "required": true,
    "validations": [
      { "options": 
        { 
          "maxConsecutive": 2
        },
        "service": "dataChecker.consecutiveNumbers" 
      }
    ]
}
```

#### Parameterübersicht

| **Parameter**    | **Beschreibung**                           |
| ---------------- | ------------------------------------------ |
| `maxConsecutive` | Maximale Länge der Zahlenkette (Zahl ≥ 0). |

### `dataChecker.consecutiveLetters` - Fortlaufende Buchstaben

Prüft auf auf- oder absteigende Buchstabenkombinationen (z. B. `abcd` oder `dcba`).

#### Beispielkonfiguration für (`inquiry.form.catalogue.fields.additionalInfo`)

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
    "label": "Zusatzinformation",
    "name": "additionalInfo",
    "required": true,
    "validations": [
      { "options": 
        { 
          "maxConsecutive": 2,
          "caseInsensitive": false
        },
        "service": "dataChecker.consecutiveLetters" 
      }
    ]
}
```

#### Parameterübersicht

| **Parameter**     | **Beschreibung**                                  |
| ----------------- | ------------------------------------------------- |
| `maxConsecutive`  | Maximale Länge der Buchstabenkette (Zahl ≥ 0).    |
| `caseInsensitive` | Groß-/Kleinschreibung ignorieren (Wahrheitswert). |

### `dataChecker.palindrome` - Palindrom

Prüft, ob die Eingabe ein Palindrom ist (vorwärts/rückwärts identisch, z. B. „Otto“).

#### Beispielkonfiguration für (`inquiry.form.catalogue.fields.additionalInfo`)

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
    "label": "Zusatzinformation",
    "name": "additionalInfo",
    "required": true,
    "validations": [
      { "options": 
        { 
          "caseInsensitive": false
        },
        "service": "dataChecker.palindrome" 
      }
    ]
}
```

#### Parameterübersicht

| **Parameter**     | **Beschreibung**                                  |
| ----------------- | ------------------------------------------------- |
| `caseInsensitive` | Groß-/Kleinschreibung ignorieren (Wahrheitswert). |

***

## `paymentValidation.*` - Zahlungsarten-Validierung

`paymentValidation.*` enthält Regeln, mit denen festgelegt wird, ob eine Zahlungsart im Checkout erlaubt ist. Die Prüfung kann z.B. vom Land der Rechnungs- oder Lieferadresse, vom Kundentyp, vom Warenkorb oder vom Bestellwert abhängen.

Diese Regeln können in der Konfiguration der jeweiligen Zahlungsart unter `validations` eingetragen werden. Das Frontend zeigt dann nur passenden Zahlungsarten an oder verhindert die Auswahl, wenn die Bedingungen nicht erfüllt sind. Hier geht es zum zugehörigen Konfigurationsknoten `payment`: [payment - Zahlungsmethoden](/konfiguration/payment-zahlungsmethoden)

### `paymentValidation.billCountry` - Validierung des Landes (Rechnungsadresse) für Zahlungsarten

Prüft, ob das Land der Rechnungsadresse entsprechend einer “Allow/Deny”-Liste für eine Zahlungsart zulässig ist. Über die Optionen kann festgelegt werden, für welche Länder die Regel greift und ob diese Lister Länder erlaubt oder verbietet.

**Beispielkonfiguration**

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
"validations": [
  {
    "options": {
      "countryList": [
        "general.country.de",
        "general.country.at",
        "general.country.ch"
      ],
      "rule": "allow"
    },
    "service": "paymentValidation.billCountry"
  }
]
```

**Parameterübersicht**

| **Parameter** | **Beschreibung**                                                                                                                                                                          |
| ------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `counryList`  | Liste der Länder, auf die diese Regel angewendet werden soll. <br />(ISO-Länderkennungen, z.B. “`DE`”, “`AT`”, “`CH`”)                                                                    |
| `rule`        | Steuerung der Regel. <br />Mögliche Werte:  <br />- `allow` - Länder, die in `countryList` stehen, sind erlaubt. <br />- `deny`- Länder, die in `countryList` stehen, sind nicht erlaubt. |

### `paymentValidation.billPhone` - Validierung der Telefonnummer

Prüft, ob für die Rechnungsadresse eine Telefonnummer angegeben ist (das Feld darf nicht leer sein).

**Beispielkonfiguration:**

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
"validations": [
  {
    "service": "paymentValidation.billPhone"
  }
]
```

Für diesen Service sind keine Parameter vorhanden.

### `paymentValidation.billDateOfBirth` - Validierung des Geburtsdatums

Prüft, ob für die Rechnungsadresse ein Geburtsdatum angegeben ist (das Feld darf nicht leer sein).

**Beispielkonfiguration**

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
"validations": [
  {
    "service": "paymentValidation.billDateOfBirth"
  }
]
```

Für diesen Service sind keine Parameter vorhanden.

### `paymentValidation.shippingCountry` - Validierung des Landes (Lieferadresse)

Prüft, ob das Land der Lieferadresse entsprechend einer “Allow/Deny”-Liste zulässig ist. Über die Optionen kann festgelegt werden, für welche Länder die Regel greift und ob diese Lister Länder erlaubt oder verbietet.

**Beispielkonfiguration**

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
"validations": [
  {
    "options": {
      "countryList": [
        "general.country.gb"
      ],
      "rule": "deny"
    },
    "service": "paymentValidation.shippingCountry"
  }
]
```

**Parameterübersicht**

| **Parameter** | **Beschreibung**                                                                                                                                                                          |
| ------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `countryList` | Liste der Länder, auf die diese Regel angewendet werden soll. <br />(ISO-Länderkennungen, z.B. “`DE`”, “`AT`”, “`CH`”)                                                                    |
| `rule`        | Steuerung der Regel. <br />Mögliche Werte: <br /> - `allow` - Länder, die in `countryList` stehen, sind erlaubt. <br />- `deny`- Länder, die in `countryList` stehen, sind nicht erlaubt. |

### `paymentValidation.shippingMethod` - Validierung der Versandart für Zahlungsarten

Prüft, ob die gewählte Zahlart nur mit bestimmten Versandarten verwendet werden darf.

**Beispielkonfiguration**

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
"validations": [
  {
    "options": {
      "shippingMethods": [
        "shipping.method.dhl",
        "shipping.method.pickup"
      ],
      "rule": "allow"
    },
    "service": "paymentValidation.shippingMethod"
  }
]
```

**Parameterübersicht**

| **Parameter**     | **Beschreibung**                                                                                                                                                                                              |
| ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `shippingMethods` | Liste der Versandarten-IDs, auf die diese Regel angewendet werden soll. <br />Die IDs entsprechen den internen Namen der Versandarten (z.B. `shipping.method.dhl`).                                           |
| `rule`            | Steuerung der Regel. <br />Mögliche Werte:  <br />- `allow` - Versandarten, die in `shippingMethods` stehen, sind erlaubt. <br />- `deny`- Versandarten, die in `shippingMethods` stehen, sind nicht erlaubt. |

### `paymentValidation.accountType` - Validierung des Kundentyps für Zahlungsarten

Prüft, ob die gewählte Zahlart nur für bestimmte Kundentypen verwendet werden darf (Gast, Neukunde oder Bestandskunde).

**Beispielkonfiguration**

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
"validations": [
  {
    "options": {
      "deny": [
        "guest",
        "newCustomer"
      ]
    },
    "service": "paymentValidation.accountType"
  }
]
```

**Parameterübersicht**

| **Parameter** | **Beschreibung**                                                                                                                                                                           |
| ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `deny`        | Liste an Kundentypen, für die die Zahlart gesperrt ist.   <br />Mögliche Werte:  <br />- “`guest`” - Gastbesteller <br />- “`newCustomer`” - Neukunde <br />- “`customer`” - Bestandskunde |

### `paymentValidation.denyDifferingShippingAddress` - Validierung abweichender Lieferadressen für Zahlungsarten

Prüft, ob Rechnungsadresse und Lieferadresse identisch sind.\
Die Zahlart ist nur erlaubt, wenn keine abweichende Lieferadresse verwendet wird.

**Beispielkonfiguration**

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
"validations": [
  {
    "service": "paymentValidation.denyDifferingShippingAddress"
  }
]
```

**Parameterübersicht**

| **Parameter** | **Beschreibung**              |
| ------------- | ----------------------------- |
| --            | Keine zusätzlichen Parameter. |

### `paymentValidation.voucherDeny` - Validierung von Gutscheinprodukten für Zahlungsarten

Prüft, ob Gutscheinprodukte im Warenkorb sind. Wenn Gutscheinprodukte im Warenkorb sind, ist diese Zahlart nicht erlaubt.

**Beispielkonfiguration**

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
"validations": [
  {
    "service": "paymentValidation.voucherDeny"
  }
]
```

**Parameterübersicht**

| **Parameter** | **Beschreibung**              |
| ------------- | ----------------------------- |
| --            | Keine zusätzlichen Parameter. |

### `paymentValidation.total `- Validierung von Mindest - / Maximalbestellwert für Zahlungsarten

Prüft, ob die Zahlart nur verwendet werden darf, wenn ein bestimmter Mindest- oder Maximalbestellwert erreicht bzw. überschritten wird.

**Beispielkonfiguration**

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
"validations": [
  {
    "options": {
      "total": 600,
      "type": "max"
    },
    "service": "paymentValidation.total"
  }
]
```

**Parameterübersicht**

| **Parameter** | **Beschreibung**                                                                                                                                                                                                                            |
| ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `total`       | Grenzwert der Gesamtsumme (Warenwert), ab bzw. bis zu der die Zahlart erlaubt ist.                                                                                                                                                          |
| `type`        | Art der Prüfung.   <br />Mögliche Werte:  <br />- “`min`” - Die Zahlart ist nur erlaubt, wenn der Bestellwert mindestens `total` erreicht. <br />- “`max`” - Die Zahlart ist nur erlaubt, wenn der Bestellwert `total` nicht überschreitet. |

Hinweis: Wenn Mindest- und Maximalbestellwert gleichzeitig geprüft werden sollen, muss diese Prüfung zweimal mit unterschiedlichen Optionen konfiguriert werden.

### `paymentValidation.inventoryState` - Validierung des Langerbestandes für Zahlungsarten

Prüft, ob sich im Warenkorb Produkte mit einem bestimmten Lagerbestand befinden. Wenn ein Produkt im Warenkorb einen in `deny` konfigurierten Status hat, ist die Zahlungsart nicht erlaubt.

**Beispielkonfiguration**

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
"validations": [
  {
    "options": {
      "deny": [
        "red",
        "yellow"
      ]
    },
    "service": "paymentValidation.inventoryState"
  }
]
```

**Parameterübersicht:**

| **Parameter** | **Beschreibung**                                                                                                                                                                                                                                                                                                                                                                                           |
| ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `deny`        | Liste an Lagerbestandsdaten, bei denen die Zahlungsart verboten ist.   <br />Mögliche Werte:  <br />- “`red`” - ausverkauft <br />- “`yellow`” - nur noch wenige vorhanden <br />- “`green`” - viele vorhanden  <br />Die Grenzwerte der einzelnen Lagerbestände werden in `content.inventory` festgelegt: [content - Katalog (Kategorien & Produkte)](/konfiguration/content-katalog-kategorien-produkte) |

### `paymentValidation.userAgent` - Validierung des User-Agents für Zahlungsarten

Prüft, ob eine Zahlungsart basierend auf dem genutzten Gerät oder Browser des Kunden angezeigt wird. Geräte und Browser übermitteln beim Seitenaufruf automatisch eine technische Kennung, den sogenannten User-Agent. Anhand dieser Kennung lässt sich z.B. erkennen, ob jemand ein IPhone, ein IPad oder einen Mac verwendet.

Die in `userAgents` eingetragenen Begriffe werden gegen diese Kennung geprüft, ein Treffer genügt. So lässt sich eine Zahlungsart gezielt nur für bestimmte Geräte oder Browser freischalten oder sperren, z.B. wenn Apple-Pay nur für Kunden angezeigt werden soll, die ein Apple-Gerät oder einen kompatiblen Browser verwenden.

**Beispielkonfiguration**

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
"validations": [
  {
    "options": {
      "userAgents": [
        "Macintosh",
        "Mac OS X",
        "iPhone",
        "iPad"
      ],
      "rule": "allow"
    },
    "service": "paymentValidation.userAgent"
  }
]
```

**Parameterübersicht**

| **Parameter** | **Beschreibung**                                                                                                                                                                                                                                                                                                                                                                         |
| ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `userAgents`  | Liste von Begriffen, die in der Gerät-/Browser-Kennung des Kunden gesucht werden. <br />Ein Treffer genügt. <br />Die Werte sind nicht durch WEBSALE vorgegeben, sondern entsprechen den tatsächlichen Zeichenketten, die das jeweilige Gerät oder der Browser übermittelt. <br />Die korrekten Werte müssen selbst am jeweiligen Gerät ermittelt werden, z.B. über die Browser-Konsole. |
| `rule`        | Steuerung der Regel.      <br />Mögliche Werte:  <br />- `allow` - Zahlart wird nur angezeigt, wenn mindestens ein Begriff aus `userAgents` erkannt wird. <br />- `deny` - Zahlart wird ausgeblendet, wenn ein Treffer gefunden wird.                                                                                                                                                    |

***

## `shippingMethodValidation.*` - Versandarten-Validierung

`shippingMethodValidation.*` enthält Regeln, mit denen festgelegt wird, ob eine Versandart im Checkout erlaubt ist. Die Prüfung kann z.B. vom Lieferland, vom Warenwert, von Produkttypen oder von der gewählten Zahlungsart abhängen.

Diese Regeln können in der Konfiguration der jeweiligen Versandart unter `validations` eingetragen werden. Das Frontend stellt dann nur die Versandarten bereit, die zu den aktuellen Bedingungen passen.

### `shippingMethodValidation.shippingCountry` - Validierung des Landes (Rechnungsadresse)

Prüft, ob das Land der Rechnungsadresse entsprechend einer “Allow/Deny”-Liste zulässig ist. Über die Optionen kann festgelegt werden, für welche Länder die Regel greift und ob diese Lister Länder erlaubt oder verbietet.

**Beispielkonfiguration**

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
"validations": [
  {
    "options": {
      "countryList": [
        "general.country.de",
        "general.country.at"
      ],
      "rule": "allow"
    },
    "service": "shippingMethodValidation.shippingCountry"
  }
]
```

**Parameterübersicht**

| **Parameter** | **Beschreibung**                                                                                                                                                                          |
| ------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `countryList` | Liste der Länder, auf die diese Regel angewendet werden soll. <br />(ISO-Länderkennungen, z.B. “`DE`”, “`AT`”, “`CH`”)                                                                    |
| `rule`        | Steuerung der Regel. <br />Mögliche Werte:  <br />- `allow` - Länder, die in `countryList` stehen, sind erlaubt. <br />- `deny`- Länder, die in `countryList` stehen, sind nicht erlaubt. |

### `shippingMethodValidation.paymentMethod` - Validierung der Versandart für Zahlungsarten

Prüft, ob eine Versandart nur mit bestimmten Zahlungsarten verwendet werden darf.

**Beispielkonfiguration**

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
"validations": [
  {
    "options": {
      "paymentMethods": [
        "payment.method.invoice",
        "payment.method.prepayment"
      ],
      "rule": "allow"
    },
    "service": "shippingMethodValidation.paymentMethod"
  }
]
```

**Parameterübersicht**

| **Parameter**    | **Beschreibung**                                                                                                                                                                                             |
| ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `paymentMethods` | Liste der Zahlungsarten-IDs, die auf diese Regel angewendet werden. <br />Die IDs entsprechen den internen Namen der Zahlungsarten (z.B. `payment.method.invoice`)                                           |
| `rule`           | Steuerung der Regel. <br />Mögliche Werte:  <br />- `allow` - Zahlungsarten, die in `paymentMethods`stehen, sind erlaubt. <br />- `deny`- Zahlungsarten, die in `paymentMethods` stehen, sind nicht erlaubt. |

### `shippingMethodValidation.valueOfGoods` - Validierung des Mindest- Maximalbestellwerts für Versandarten

Prüft, ob die Versandart nur verwendet werden darf, wenn ein bestimmter Mindest- oder Maximalbestellwert erreicht bzw. überschritten wird.

**Beispielkonfiguration**

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
"validations": [
  {
    "options": {
      "valueOfGoods": 100,
      "type": "min"
    },
    "service": "shippingMethodValidation.valueOfGoods"
  }
]
```

**Parameterübersicht**

| **Parameter**  | **Beschreibung**                                                                                                                                                                                                                            |
| -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `valueofGoods` | Grenzwert der Gesamtsumme (Warenwert), ab bzw. bis zu der die Versandart erlaubt ist.                                                                                                                                                       |
| `type`         | Art der Prüfung.   <br />Mögliche Werte:  <br />- “`min`” - Die Zahlart ist nur erlaubt, wenn der Bestellwert mindestens `total` erreicht. <br />- “`max`” - Die Zahlart ist nur erlaubt, wenn der Bestellwert `total` nicht überschreitet. |

### `shippingMethodValidation.productType` - Validierung des Produkttyps für Versandarten

Prüft, ob alle Produkte im Warenkorb einen passenden Produkttyp haben.

**Beispielkonfiguration**

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
"validations": [
  {
    "options": {
      "rule": "allow",
      "ruleList": [
        "productType.digital"
      ],
      "includeList": [
        "productType.service"
      ]
    },
    "service": "shippingMethodValidation.productType"
  }
]
```

**Parameterübersicht**

| **Parameter** | **Beschreibung**                                                                                                                                                                                                                                           |
| ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `rule`        | Art der Prüfung.   <br />Mögliche Werte: <br />- “`allow`” - Nur Produkttypen aus `ruleList` und `includeList` sind erlaubt. <br />- “`deny`” - Produkttypen aus `ruleList`sind nicht erlaubt. Ausnahme: Produkttypen aus `includeList`sind immer erlaubt. |
| `ruleList`    | Liste der Produkttypen die - abhängig von `rule`- erlaubt oder nicht erlaubt sind.                                                                                                                                                                         |
| `includeList` | Liste der Produkttypen, die immer erlaubt sind.                                                                                                                                                                                                            |

### `shippingMethodValidation.productDependency` - Validierung der Produkt-Abhängigkeiten für Versandarten

Prüft die Produkte im Warenkorb anhand der Konfiguration `checkout.productDependency`.

**Beispielkonfiguration**

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
"validations": [
  {
    "options": {
      "list": [
        "checkout.productDependency.digitalOnly",
        "checkout.productDependency.noBulkyGoods"
      ]
    },
    "service": "shippingMethodValidation.productDependency"
  }
]
```

**Parameterübersicht**

| **Parameter** | **Beschreibung**                                                                                                                                                                             |
| ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `list`        | Liste mit IDs der Konfigurationen aus `checkout.productDependency`, die geprüft werden sollen. <br />Damit die Validierung erfolgreich ist, müssen alle hier angegebenen Werte erfüllt sein. |

### `shippingMethodValidation.expressCheckout` - Validierung des Express-Checkout für Versandarten

Prüft, ob eine Versandart im Express-Checkout erlaubt ist, abhängig von der gewählten Zahlungsart. Ist der Express-Checkout nicht aktiv, ist die Versandart immer erlaubt.

**Beispielkonfiguration**

```text theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
"validations": [
  {
    "options": {
      "rule": "allow",
      "ruleList": [
        "payment.method.paypal",
        "payment.method.creditcard"
      ]
    },
    "service": "shippingMethodValidation.expressCheckout"
  }
]
```

**Parameterübersicht**

| **Parameter** | **Beschreibung**                                                                                                                                                                                                         |
| ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `rule`        | Art der Prüfung.   <br />Mögliche Werte:  <br />- “`allow`” - Nur Zahlungsarten aus `ruleList` sind im Express-Checkout erlaubt. <br />- “`deny`” - Zahlungsarten aus `ruleList` sind im Express-Checkout nicht erlaubt. |
| `ruleList`    | Liste der Zahlungsarten-IDs, die - abhängig von `rule` - im Express-Checkout erlaubt bzw. verboten sind. <br />Die IDs entsprechen den internen Namen der Zahlungsarten (z.B. `payment.method.paypal`).                  |

***
