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

# customer - Kundendaten

> Der customer-Knoten konfiguriert Erfassung von Kundendaten: Adressfelder, Pflichtangaben, Feldgruppen, Validierung sowie Speicherort im Konto oder Bestellung.

export const KonfigDeeplink = ({node}) => <>
    Die Einstellung kann über folgenden Link direkt im Admin-Interface geöffnet werden:{" "}
    <code>{`https://<shop-domain>/admin/config/${node}`}</code>{" "}
    (<a href="/konfiguration/konfigurations-deeplinks">Deeplink-Übersicht</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>.
  </>;

Der Konfigurationsknoten `customer` bündelt alle Einstellungen rund um die Erfassung und Verarbeitung von Kundendaten im Onlineshop.\
Er definiert, welche Informationen im Kundenkonto und im Checkout abgefragt werden, wie diese Felder benannt, gruppiert, validiert und als Pflichtangaben markiert sind – inklusive Steuerung des Speichertyps (im Konto, in der Bestellung oder beides).\
Darüber hinaus ermöglicht er die Strukturierung der Formulare über Feldgruppen sowie globale Anzeige- und Speicherregeln für zusätzliche Kundendatenfelder.

## `customer*` - Grundstruktur

Nachfolgend der Grundaufbau des Knotens `customer`

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
    "customer": {
      "customerDataField": {...},
      "customerDataFieldSettings": {...},
      "customerDataGroup": {...}
    }
}
```

#### Parameterübersicht

| **Parameter**               | **Beschreibung**                                                  |
| --------------------------- | ----------------------------------------------------------------- |
| `customer`                  | Verwaltet Kundendaten und Kontofunktionen im Shop.                |
| `customerDataField`         | Konfigurierbares Kundendatenfeld.                                 |
| `customerDataFieldSettings` | Einstellungen für Anzeige und Speicherung von Kundendatenfeldern. |
| `customerDataGroup`         | Fasst mehrere Kundendatenfelder zu einem Abschnitt zusammen.      |

## `customer.customerDataField` - Kundendatenfelder

Definiert frei konfigurierbare Felder für Kundendaten – inklusive Label, Pflichtstatus und Speicherort. Unterstützt verschiedene Feldtypen (Text, Zahl mit Einheiten, Datum, Checkbox, Auswahl) mit Defaults, Wertebereichen und Validierungen.

<KonfigDeeplink node="customer.customerDataField" />

#### Beispielkonfiguration

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
  "name": "companyName",
  "label": "<Textbaustein>",
  "required": true,
  "uniqueValue": false,
  "storageStrategy": "account",
  "type": {
    "text": {
      "default": ""
    }
  },
  "validations": [
    { "service": "inputValidation.minLength", "options": { "len": 2 } },
    { "service": "inputValidation.maxLength", "options": { "len": 80 } }
  ]
}
```

#### Parameterübersicht

| **Parameter**        | **Typ**         | **Beschreibung**                                                                                                                                                                                                                                                                                                        |
| -------------------- | --------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `name`               | string (unique) | Technischer Name des Feldes. Muss eindeutig sein und ist selbst wählbar.                                                                                                                                                                                                                                                |
| `label`              | string          | Anzeigename auf der Benutzeroberfläche. <br /><br /><TextbausteinHinweis />                                                                                                                                                                                                                                             |
| `required`           | bool            | Markiert das Feld als Pflichtfeld.      <br />Default: **false**                                                                                                                                                                                                                                                        |
| `uniqueValue`        | bool            | Legt fest, ob der Wert des Feldes shopweit eindeutig sein muss (`true`). Ist die Option aktiv, wird das Feld bei der Duplettenprüfung (`accounts.account` → `duplicate`, siehe [accounts - Benutzerkonten](/konfiguration/accounts-benutzerkonten)) herangezogen – z.B. für die USt-IdNr.      <br />Default: **false** |
| `accountMemberField` | bool            | Bestimmt, ob das Feld beim Firmenkonto oder bei Mitarbeiterkonten gespeichert wird.                                                                                                                                                                                                                                     |
| `storageStrategy`    | enum            | Speicherort der Werte - im Konto, nur in der Bestellung oder beides.      <br />Mögliche Werte:  <br />- `account`<br />- `order`<br />- `hybrid`<br />Default: **account**                                                                                                                                             |
| `type`               | oneOf           | Feldtyp für Detailkonfigurationen.                                                                                                                                                                                                                                                                                      |
| `text`               | object          | Texteingabefeld                                                                                                                                                                                                                                                                                                         |
| `default`            | string          | Vorbelegung des Textfelds. **(optional)**                                                                                                                                                                                                                                                                               |
| `number`             | object          | Numerisches Eingabefeld.                                                                                                                                                                                                                                                                                                |
| `default`            | int             | Vorbelegung des Eingabefelds **(optional)**.                                                                                                                                                                                                                                                                            |
| `min`                | int             | Minimal zulässiger Wert. **(optional)**                                                                                                                                                                                                                                                                                 |
| `max`                | int             | Maximal zulässiger Wert. **(optional)**                                                                                                                                                                                                                                                                                 |
| `step`               | int             | Schrittweite des Wertes bei Eingabe      <br />Default: **1**                                                                                                                                                                                                                                                           |
| `numDecimals`        | int             | Anzahl der Nachkommastellen.     <br />Default: **0**                                                                                                                                                                                                                                                                   |
| `unit`               | oneOf           | Einheitsdefinition **(optional)**                                                                                                                                                                                                                                                                                       |
| `constant`           | object          | Feste, nicht veränderbare Einheit.                                                                                                                                                                                                                                                                                      |
| `name`               | string          | Technischer Name der Einheit.                                                                                                                                                                                                                                                                                           |
| `label`              | string          | Anzeige-Label der Einheit. <br /><br /><TextbausteinHinweis />                                                                                                                                                                                                                                                          |
| `dynamic`            | object          | Basiseinheit + auswählbare Einheit.                                                                                                                                                                                                                                                                                     |
| `baseUnitName`       | string          | Name der Basiseinheit.                                                                                                                                                                                                                                                                                                  |
| `unitOptions`        | list (object)   | Liste verfügbarer Einheiten.                                                                                                                                                                                                                                                                                            |
| `name`               | string          | Technischer Name der Einheit.                                                                                                                                                                                                                                                                                           |
| `label`              | string          | Anzeige-Label der Einheit. <br /><br /><TextbausteinHinweis />                                                                                                                                                                                                                                                          |
| `factor`             | float           | Umrechnungsfaktor.                                                                                                                                                                                                                                                                                                      |
| `converter`          | singleService   | Externer Konverter für die Umrechnung **(optional)**.  <br />Aktuell gibt es hier nur den `unitConverter.orderOfMagnitude`.                                                                                                                                                                                             |
| `freeSelection`      | object          | Freie Auswahl an festen Optionen.                                                                                                                                                                                                                                                                                       |
| `unitOptions`        | list (object)   | Wählbare Einheiten.                                                                                                                                                                                                                                                                                                     |
| `name`               | string          | Technischer Name.                                                                                                                                                                                                                                                                                                       |
| `label`              | string          | Anzeige-Label. <br /><br /><TextbausteinHinweis />                                                                                                                                                                                                                                                                      |
| `defaultOptionName`  | string          | Vorbelegung der Einheit.                                                                                                                                                                                                                                                                                                |
| `date`               | object          | Datumsfeld.                                                                                                                                                                                                                                                                                                             |
| `default`            | string          | Vorbelegung (optional).                                                                                                                                                                                                                                                                                                 |
| `checkbox`           | object          | Checkbox.                                                                                                                                                                                                                                                                                                               |
| `default`            | bool            | Vorbelegung der Checkbox.  <br />Default: false                                                                                                                                                                                                                                                                         |
| `select`             | object          | Auswahlliste (Dropdown).                                                                                                                                                                                                                                                                                                |
| `options`            | list (object)   | Verfügbare Auswahlwerte.                                                                                                                                                                                                                                                                                                |
| `value`              | string          | Technischer Wert einer Option.                                                                                                                                                                                                                                                                                          |
| `label`              | string          | Anzeige-Label der Option. <br /><br /><TextbausteinHinweis />                                                                                                                                                                                                                                                           |
| `default`            | string          | Vorbelegte Option **(optional)**                                                                                                                                                                                                                                                                                        |
| `validations`        | multiService    | Liste von Validierungsregeln.  <br />Beispiel:  - `minLength` - `maxLength` - mehr unter [Validierungs- und Prüfservices](/konfiguration/validierungs-und-prufservices)<br />Target: `inputValidation`                                                                                                                  |

## `customer.customerDataFieldSettings` - Feldkonfiguration

Steuert, wie zusätzliche Kundendatenfelder im Shop angezeigt und gespeichert werden. Ungruppierte Felder können optional eingeblendet werden, und Kontofelder lassen sich zusätzlich in der Bestellungen speichern. Darüber hinaus wird hier festgelegt, welche Felder bei der Neu- bzw. Bestandskundenregistrierung abgefragt werden.

<KonfigDeeplink node="customer.customerDataFieldSettings" />

#### Beispielkonfiguration

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
  "showUngroupedFields": true,
  "storeAccountFieldsInOrder": false,
  "newCustomerFields": [
    "customer.customerDataField.neukundenfeld1",
    "customer.customerDataField.neukundenfeld2"
  ],
  "existingCustomerFields": [
    "customer.customerDataField.bestandskundenfeld1",
    "customer.customerDataField.bestandsfeld2"
  ]
}
```

#### Parameterübersicht

| **Parameter**               | **Typ**    | **Beschreibung**                                                                                                                       |
| --------------------------- | ---------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| `showUngroupedFields`       | bool       | Zeigt ungruppierte Kundendatenfelder im Formular an.  <br />Default: **true**                                                          |
| `storeAccountFieldsInOrder` | bool       | Speichert Kontofelder zusätzlich in der Bestellung.  <br />Default: **false**                                                          |
| `newCustomerFields`         | multiAssoc | Liste der Kundendatenfelder, die bei der Neukundenregistrierung abgefragt werden.      <br />Target: `customer.customerDataField`      |
| `existingCustomerFields`    | multiAssoc | Liste der Kundendatenfelder, die bei der Bestandskundenregistrierung abgefragt werden.      <br />Target: `customer.customerDataField` |

## `customer.customerDataGroup` - Gruppierung

Gruppiert frei definierte Kundendatenfelder zu einem Abschnitt (z.B. Rechnungsadresse, Unternehmensangaben). Jede Gruppe hat einen technischen Namen, ein sichtbares Label und verweist auf die enthaltenen Felder.

<KonfigDeeplink node="customer.customerDataGroup" />

#### Beispielkonfiguration

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
  "name": "company_data",
  "label": "<Textbaustein>",
  "fields": [
    "customer.customerDataField.company",
    "customer.customerDataField.vatId",
    "customer.customerDataField.phone"
  ]
}
```

#### Parameterübersicht

| **Parameter** | **Typ**    | **Beschreibung**                                                                                                                    |
| ------------- | ---------- | ----------------------------------------------------------------------------------------------------------------------------------- |
| `name`        | string     | Technischer Name der Gruppe. Selbst wählbar.                                                                                        |
| `label`       | string     | Anzeigename der Gruppe im Formular. <br /><br /><TextbausteinHinweis />                                                             |
| `fields`      | multiAssoc | Liste der zugeordneten Kundendatenfelder, die in dieser Gruppe angezeigt werden sollen.  <br />Target: `customer.customerDataField` |


## Related topics

- [Konfigurations-Deeplinks](/admin-interface/konfigurations-deeplinks.md)
- [Bestellablauf](/frontend/funktionsubersicht/bestellablauf.md)
- [API-Referenz Konfiguration](/schnittstellen/admin-interface-api/api-referenz-konfiguration.md)
- [Übersicht - Konfiguration](/konfiguration.md)
- [API-Referenz Kundendaten](/schnittstellen/admin-interface-api/api-referenz-kundendaten.md)
