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

# app - WEBSALE APP

> Konfiguration des app-Knotens für die WEBSALE APP: Aktivierungsstatus, Authentifizierung, Push-Benachrichtigungen sowie zugehörige Service-Accounts.

export const confApp = "Einstellungen → Shop-Konfiguration → Gruppe „App\"";

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>)
  </>;

Der Knoten `app` umfasst alle Konfigurationen für die Anbindung und Steuerung der WEBSALE APP.\
Über diesen Abschnitt werden zentrale App-Parameter wie Aktivierungsstatus, Authentifizierung, Benachrichtigungseinstellungen sowie zugehörige Service-Accounts definiert.

Die Konfiguration kann direkt im Admin Interface unter *Einstellungen → Shop-Konfiguration → Gruppe „App"* oder über die [REST API Konfiguration](/schnittstellen/admin-interface-api/api-referenz-konfiguration) vorgenommen werden.

***

## `app*` - Grundstruktur

Nachfolgend der Grundaufbau des Knotens `app`

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

#### Parameterübersicht

| **Parameter**          | **Beschreibung**                                                                                            |
| ---------------------- | ----------------------------------------------------------------------------------------------------------- |
| `app`                  | Steuert Anbindung und Verhalten der WEBSALE APP (Aktivierung, Token-Prüfung, Verbindungsdaten, Grenzwerte). |
| `googleServiceAccount` | Definiert die Verbindung zu einem Google-Service-Account, z. B. für den Versand von Push-Nachrichten.       |
| `instances`            | Definiert einzelne App-Instanzen (z. B. pro Land, Marke oder Kanal).                                        |

***

## `app.app` - Konfiguration der WEBSALE APP

Der Knoten `app` steuert die Anbindung und das Verhalten der WEBSALE App. Hier wird unter anderem festgelegt, ob die App-Integration aktiv ist, wie Tokens geprüft werden, welche Shop-Verbindungsdaten verwendet werden und welche Daten- und Filtergrenzen gelten.

<KonfigDeeplink node="app.app" />

#### Beispielkonfiguration

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
  "active": false,
  "applicationId": "",
  "enableTokenValidation": true,
  "filterLimits": {
    "maxEmailListSize": 500000,
    "maxZipCodeListSize": 50000,
    "maxZipCodeRangeSize": 5000
  },
  "googleServiceAccount": null,
  "imageFormats": null,
  "notificationSettings": {
    "defaultSettings": {
      "basketReminder": "undefined",
      "birthdayGreetings": "undefined",
      "deliveryNotification": "undefined",
      "news": "undefined",
      "teaser": "undefined"
    },
    "personalizedMessages": {
      "basketReminder": false,
      "birthdayGreetings": false,
      "deliveryNotification": false
    },
    "pushNotificationBatchSize": 500
  },
  "secret": "",
  "v8": null
}
```

#### Parameterübersicht

| **Parameter**                | **Typ** | **Beschreibung**                                                                                                                                                                                               |
| ---------------------------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `active`                     | bool    | Aktiviert (`true`) oder deaktiviert (`false`) die WEBSALE APP.  <br />Default: `false`                                                                                                                         |
| `applicationId`              | string  | Eindeutige Kennung der App (Application ID).                                                                                                                                                                   |
| `enableTokenValidation`      | bool    | Aktiviert (`true`) oder deaktiviert (`false`) die Tokenprüfung für App-Zugriffe.  <br />Default: `true`                                                                                                        |
| `filterLimits`               | object  | Grenzwerte für App-interne Filterfunktionen.                                                                                                                                                                   |
| `maxEmailListSize`           | uint    | Maximale Anzahl an E-Mail-Adressen in einer Filterliste.  <br />Default: `500000`                                                                                                                              |
| `maxZipCodeListSize`         | uint    | Maximale Anzahl an Postleitzahlen in einer Filterliste.  <br />Default: `500000`                                                                                                                               |
| `maxZipCodeRangeSize`        | uint    | Maximale Anzahl an Postleitzahlenbereichen.  <br />Default: `5000`                                                                                                                                             |
| `googleServiceAccount`       | assoc   | Verweis auf das konfigurierte Google-Servicekonto (siehe Abschnitt `app.googleServiceAccount`).                                                                                                                |
| `oAuthKey`                   | --      | `authentication.googleOAuthKey.FCMKey`                                                                                                                                                                         |
| `scopes`                     | --      | [https://www.googleapis.com/auth/firebase.messaging](https://www.googleapis.com/auth/firebase.messaging)                                                                                                       |
| `imageFormats`               | list    | Definiert die im App-Frontend verwendeten Bildformate (Mehrfachzuordnung über `content.imageFormat`).  <br />→ [content - Katalog (Kategorien & Produkte)](/konfiguration/content-katalog-kategorien-produkte) |
| `notificationSettings`       | object  | Einstellungen für Standard- und personalisierte Push-Benachrichtigungen.                                                                                                                                       |
| `defaultSettings`            | object  | Standardwerte für Benachrichtigungstypen (z. B. Warenkorberinnerung, Lieferstatus) beim Start der App.                                                                                                         |
| `basketReminder`             | enum    | Aktiviert (`true`) oder deaktiviert (`false`) die Benachrichtigung bei stehengelassenen Warenkörben.                                                                                                           |
| `birthdayGreetings`          | enum    | Aktiviert (`true`) oder deaktiviert (`false`) die Geburtstags-Benachrichtigung. <br />Um Geburtstagsbenachrichtigungen zu versenden, muss der Empfänger ein Geburtsdatum angegeben haben                       |
| `deliveryNotification`       | enum    | Standardvorgabe für Versand-/-Lieferbenachrichtigungen.                                                                                                                                                        |
| `news`                       | enum    | Standardvorgabe für Newsletter-Benachrichtigungen.      Werte: `undefined`, `enabled`, `disabled`                                                                                                              |
| `teaser`                     | enum    | Standardvorgabe für Marketing-Nachrichten.                                                                                                                                                                     |
| `personalizedMessages`       | object  | Aktiviert/deaktiviert personalisierte Nachrichten-Typen.                                                                                                                                                       |
| `basketReminder`             | enum    | Standardvorgabe für die Erinnerung an liegengelassene Warenkörbe.                                                                                                                                              |
| `birthdayGreetings`          | enum    | Standardvorgabe für Geburtstagsgrüße.                                                                                                                                                                          |
| `deliveryNotification`       | enum    | Standardvorgabe für Versand-/-Lieferbenachrichtigungen.                                                                                                                                                        |
| `pushNotificationBatchSize`  | uint    | Anzahl an Push-Nachrichten, die in einem Batch verarbeitet/versendet werden.  <br />Beispiel: `500`                                                                                                            |
| `secret`                     | string  | Geheimer Schlüssel zur Validierung von Tokens für die App-Kommunikation.                                                                                                                                       |
| `v8`                         | object  | Optionale Detailkonfiguration für die Kopplung an den V8-Shop.                                                                                                                                                 |
| `osbAuth`                    | object  | Zugangsdaten für die OSB-/Backend-Kommunikation der App.                                                                                                                                                       |
| `username`                   | string  | Technischer Benutzername für die OSB-/Backend-Anbindung.                                                                                                                                                       |
| `password`                   | string  | Passwort für diesen technischen Benutzer.                                                                                                                                                                      |
| `shopId`                     | string  | Kennung des angebundenen Shops im Backend.                                                                                                                                                                     |
| `shopUrl`                    | string  | Basis-URL des Shops, der von der App verwendet wird.                                                                                                                                                           |
| `shopPassword`               | string  | Passwort für die Shop-Anbindung.                                                                                                                                                                               |
| `personalizedDataFetchLimit` | uint    | Max. Anzahl personalisierter Datensätze, die pro Abruf geladen werden dürfen.  <br />Default: `500`                                                                                                            |
| `voucherCodesFetchLimit`     | uint    | Max. Anzahl Gutscheincodes, die pro Abruf geladen werden dürfen.  <br />Default: `200`                                                                                                                         |

***

## `app.googleServiceAccount` - Push-Nachrichten

Der Knoten `googleServiceAccount` definiert die Verbindung zu einem Google-Service-Account, beispielsweise für den Versand von Push-Nachrichten.

<KonfigDeeplink node="app.googleServiceAccount" />

#### Beispielkonfiguration

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
  "oAuthKey": "authentication.googleOAuthKey.FCMKey",
  "scopes": [
    "https://www.googleapis.com/auth/firebase.messaging"
  ]
}
```

#### Parameterübersicht

| **Parameter** | **Typ**       | **Beschreibung**                                                                                                                                                     |
| ------------- | ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `oAuthKey`    | singleAssoc   | Verweist auf einen hinterlegten Google OAuth-Schlüssel, der die Zugangsdaten (Key/JSON) des Service Accounts enthält.  <br />Target: `authentication.googleOAuthKey` |
| `scopes`      | list (string) | Liste der OAuth-Scopes, die für den Service Account angefordert werden.                                                                                              |

***

## `app.instances` - APP-Instanzen

Der Knoten `instances` definiert einzelne App-Instanzen der WEBSALE App, typischer pro Land, Marke oder Kanal. Für jede Instanz können unter anderem Basis-URLs, Länderinformationen und abweichende Benachrichtigungseinstellungen konfiguriert werden.

<KonfigDeeplink node="app.instances" />

#### Beispielkonfiguration `app.instances.deutsch`

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
  "base_url": "",
  "country": "",
  "country_code": "",
  "id": "",
  "label": "",
  "notificationSettings": {
    "defaultSettings": {
      "basketReminder": "undefined",
      "birthdayGreetings": "undefined",
      "deliveryNotification": "undefined",
      "news": "undefined",
      "teaser": "undefined"
    },
    "personalizedMessages": {
      "basketReminder": false,
      "birthdayGreetings": false,
      "deliveryNotification": false
    }
  },
  "shop_url": "",
  "v8": {
    "base_url": ""
  }
}
```

#### Parameterübersicht

| **Parameter**          | **Typ** | **Beschreibung**                                                                                    |
| ---------------------- | ------- | --------------------------------------------------------------------------------------------------- |
| `base_url`             | string  | Basis-URL der App-Instanz.                                                                          |
| `country`              | string  | Name des Landes, dem die Instanz zugeordnet ist.                                                    |
| `country_code`         | string  | Ländercode der Instanz (z.B. `DE`, `AT`).                                                           |
| `id`                   | string  | Eindeutige Kennung der App-Instanz (z.B. `de_shop`, `eu_shop`).                                     |
| `label`                | string  | Lesbarer Name der Instanz (z.B. “Deutschland-Shop”, “EU-App”).                                      |
| `notificationSettings` | object  | Optionale Benachrichtigungseinstellungen, die die globalen App-Defaults überschreiben können.       |
| `defaultSettings`      | object  | Definiert die Standard-Voreinstellungen für Benachrichtigungen in dieser Instanz.                   |
| `basketReminder`       | bool    | Aktiviert/Deaktiviert personalisierte Warenkorberinnerungen.                                        |
| `birthdayGreetings`    | bool    | Aktiviert/Deaktiviert personalisierte Geburtstagsgrüße.                                             |
| `deliveryNotification` | bool    | Aktiviert/Deaktiviert personalisierte Liefer-/Versandbenachrichtigungen.                            |
| `news`                 | enum    | Standardvorgabe für Newsletter-Benachrichtigungen.  <br />Werte: `undefined`, `enabled`, `disabled` |
| `teaser`               | enum    | Standardvorgabe für Werbehinweise.                                                                  |
| `personalizedMessages` | object  | Aktiviert/Deaktiviert bestimmte personalisierte Nachrichten für diese Instanz.                      |
| `basketReminder`       | bool    | Aktiviert/Deaktiviert personalisierte Warenkorberinnerungen.                                        |
| `birthdayGreetings`    | bool    | Aktiviert/Deaktiviert personalisierte Geburtstagsgrüße.                                             |
| `deliveryNotification` | bool    | Aktiviert/Deaktiviert personalisierte Liefer-/Versandbenachrichtigungen.                            |
| `shop_url`             | string  | URL des zugehörigen Onlineshops, die in der App verwendet wird.                                     |
| `v8`                   | object  | Optionale V8-spezifische Konfiguration für diese Instanz.                                           |
| `base_url`             | string  | Basis-URL der angebundenen V8-Shop-Instanz für diese App-Instanz.                                   |

***
