> ## Documentation Index
> Fetch the complete documentation index at: https://help.mathership.com/llms.txt
> Use this file to discover all available pages before exploring further.

# POS-Zuordnung

> Ordne POS-Artikel Zutaten oder Rezepten zu, damit Verkäufe Bestandsbewegungen erstellen können

# POS-Zuordnung

POS-Zuordnungen sagen Mathership, was passieren soll, wenn ein POS-Artikel verkauft wird.

Ein POS-Artikel kann zugeordnet werden zu:

* Einer Zutat
* Einem Rezept

Zuordnungen werden von allen POS-Integrationen verwendet:

* Lightspeed K-Series
* SIDES POS

Ohne POS-Zuordnungen kann Mathership Verkaufsdaten empfangen oder importieren, diese Verkäufe aber nicht zuverlässig in Bestandsbewegungen umwandeln.

<CardGroup cols={3}>
  <Card title="Zutaten zuordnen" icon="carrot">
    Buche eine einzelne Zutat direkt ab, wenn ein einfacher POS-Artikel verkauft wird.
  </Card>

  <Card title="Rezepte zuordnen" icon="utensils">
    Löse einen verkauften POS-Artikel in Rezeptzutaten auf und buche diese vom Bestand ab.
  </Card>

  <Card title="Nicht zugeordnete Artikel prüfen" icon="magnifying-glass">
    Nutze nicht zugeordnete POS-Artikel als Arbeitsliste für fehlende Zuordnungen.
  </Card>
</CardGroup>

<CardGroup cols={3}>
  <Card title="Zutaten zuordnen" icon="carrot">
    Buche eine einzelne Zutat direkt ab, wenn ein einfacher POS-Artikel verkauft wird.
  </Card>

  <Card title="Rezepte zuordnen" icon="utensils">
    Löse einen verkauften POS-Artikel in Rezeptzutaten auf und buche diese vom Bestand ab.
  </Card>

  <Card title="Nicht zugeordnete Artikel prüfen" icon="magnifying-glass">
    Nutze nicht zugeordnete POS-Artikel als Arbeitsliste für fehlende Zuordnungen.
  </Card>
</CardGroup>

<CardGroup cols={3}>
  <Card title="Zutaten zuordnen" icon="carrot">
    Buche eine einzelne Zutat direkt ab, wenn ein einfacher POS-Artikel verkauft wird.
  </Card>

  <Card title="Rezepte zuordnen" icon="utensils">
    Löse einen verkauften POS-Artikel in Rezeptzutaten auf und buche diese vom Bestand ab.
  </Card>

  <Card title="Nicht zugeordnete Artikel prüfen" icon="magnifying-glass">
    Nutze nicht zugeordnete POS-Artikel als Arbeitsliste für fehlende Zuordnungen.
  </Card>
</CardGroup>

<CardGroup cols={3}>
  <Card title="Zutaten zuordnen" icon="carrot">
    Buche eine einzelne Zutat direkt ab, wenn ein einfacher POS-Artikel verkauft wird.
  </Card>

  <Card title="Rezepte zuordnen" icon="utensils">
    Löse einen verkauften POS-Artikel in Rezeptzutaten auf und buche diese vom Bestand ab.
  </Card>

  <Card title="Nicht zugeordnete Artikel prüfen" icon="magnifying-glass">
    Nutze nicht zugeordnete POS-Artikel als Arbeitsliste für fehlende Zuordnungen.
  </Card>
</CardGroup>

## Was die POS-Zuordnung macht

Wenn ein POS-Transfer ausgeführt wird, liest Mathership die verkauften POS-Artikel und prüft, ob jeder Artikel eine Zuordnung hat.

<CardGroup cols={3}>
  <Card title="Zutaten zuordnen" icon="carrot">
    Buche eine einzelne Zutat direkt ab, wenn ein einfacher POS-Artikel verkauft wird.
  </Card>

  <Card title="Rezepte zuordnen" icon="utensils">
    Löse einen verkauften POS-Artikel in Rezeptzutaten auf und buche diese vom Bestand ab.
  </Card>

  <Card title="Nicht zugeordnete Artikel prüfen" icon="magnifying-glass">
    Nutze nicht zugeordnete POS-Artikel als Arbeitsliste für fehlende Zuordnungen.
  </Card>
</CardGroup>

<CardGroup cols={3}>
  <Card title="Zutaten zuordnen" icon="carrot">
    Buche eine einzelne Zutat direkt ab, wenn ein einfacher POS-Artikel verkauft wird.
  </Card>

  <Card title="Rezepte zuordnen" icon="utensils">
    Löse einen verkauften POS-Artikel in Rezeptzutaten auf und buche diese vom Bestand ab.
  </Card>

  <Card title="Nicht zugeordnete Artikel prüfen" icon="magnifying-glass">
    Nutze nicht zugeordnete POS-Artikel als Arbeitsliste für fehlende Zuordnungen.
  </Card>
</CardGroup>

## Was die POS-Zuordnung macht

Wenn ein POS-Transfer ausgeführt wird, liest Mathership die verkauften POS-Artikel und prüft, ob jeder Artikel eine Zuordnung hat.

Wenn eine Zuordnung existiert, erstellt Mathership Bestandsbewegungeneine Zuordnung existiert, erstellt Mathership Bestandsbewegungen.

| POS-Artikel | Zuordnung             | Bestandsergebnis            |
| ----------- | --------------------- | --------------------------- |
| Espresso    | Zutat: Kaffeebohnen   | Kaffeebohnen abbuchen       |
| Cola 0.33 l | Zutat: Cola-Flasche   | Flaschen abbuchen           |
| Burger      | Rezept: Burger-Rezept | Alle Rezeptzutaten abbuchen |

Wenn keine Zuordnung existiert, wird der Artikel übersprungen oder als nicht zugeordnet gemeldet.

| POS-Artikel | Zuordnung             | Bestandsergebnis            |
| ----------- | --------------------- | --------------------------- |
| Espresso    | Zutat: Kaffeebohnen   | Kaffeebohnen abbuchen       |
| Cola 0.33 l | Zutat: Cola-Flasche   | Flaschen abbuchen           |
| Burger      | Rezept: Burger-Rezept | Alle Rezeptzutaten abbuchen |

Wenn keine Zuordnung existiert, wird der Artikel übersprungen oder als nicht zugeordnet gemeldet.

Der Verkauf kann im Transferergebnis sichtbar sein, reduziert den Bestand aber erst, wenn eine Zuordnung existiertDer Verkauf kann im Transferergebnis sichtbar sein, reduziert den Bestand aber erst, wenn eine Zuordnung existiert.

## Warum Zuordnungen erforderlich sind

## Warum Zuordnungen erforderlich sind

POS-Systeme wissen normalerweise, was verkauft wurde. Mathership muss wissen, welcher Bestand sich durch diesen Verkauf ändern sollPOS-Systeme wissen normalerweise, was verkauft wurde. Mathership muss wissen, welcher Bestand sich durch diesen Verkauf ändern soll.

| POS-Verkauf     | Was Mathership wissen muss                            |
| --------------- | ----------------------------------------------------- |
| 1 × Espresso    | Wie viele kg Kaffeebohnen abgebucht werden sollen     |
| 1 × Cola 0.33 l | Welche Flaschenzutat abgebucht werden soll            |
| 1 × Burger      | Welches Rezept in Zutaten aufgeschlüsselt werden soll |

Der POS-Artikelname allein reicht nicht aus. Eine Zuordnung verbindet den externen POS-Artikel mit dem richtigen Mathership-Bestandsobjekt.

## Zuordnungstypen

| Zuordnungstyp | Verwenden, wenn                                                    |
| ------------- | ------------------------------------------------------------------ |
| Zutat         | Der verkaufte POS-Artikel eine einzelne Zutat direkt abbuchen soll |
| Rezept        | Der verkaufte POS-Artikel aus mehreren Zutaten besteht             |

Verwende Zutat-Zuordnungen für einfache Artikel.

| POS-Verkauf     | Was Mathership wissen muss                            |
| --------------- | ----------------------------------------------------- |
| 1 × Espresso    | Wie viele kg Kaffeebohnen abgebucht werden sollen     |
| 1 × Cola 0.33 l | Welche Flaschenzutat abgebucht werden soll            |
| 1 × Burger      | Welches Rezept in Zutaten aufgeschlüsselt werden soll |

Der POS-Artikelname allein reicht nicht aus. Eine Zuordnung verbindet den externen POS-Artikel mit dem richtigen Mathership-Bestandsobjekt.

## Zuordnungstypen

| Zuordnungstyp | Verwenden, wenn                                                    |
| ------------- | ------------------------------------------------------------------ |
| Zutat         | Der verkaufte POS-Artikel eine einzelne Zutat direkt abbuchen soll |
| Rezept        | Der verkaufte POS-Artikel aus mehreren Zutaten besteht             |

Verwende Zutat-Zuordnungen für einfache Artikel.

Verwende Rezeptzuordnungen für vorbereitete Gerichte, Getränke, Menüs oder alles, was aus mehreren Zutaten bestehtRezeptzuordnungen für vorbereitete Gerichte, Getränke, Menüs oder alles, was aus mehreren Zutaten besteht.

## Einer Zutat zuordnen

## Einer Zutat zuordnen

Verwende eine Zutat-Zuordnung, wenn ein verkaufter POS-Artikel eine einzelne Zutat direkt abbuchen sollVerwende eine Zutat-Zuordnung, wenn ein verkaufter POS-Artikel eine einzelne Zutat direkt abbuchen soll.

| POS-Artikel    | Zutat        | Menge |
| -------------- | ------------ | ----: |
| Cola 0.33 l    | Cola-Flasche |     1 |
| Espresso       | Kaffeebohnen | 0.009 |
| Weinglas 0.2 l | Hauswein     |   0.2 |

| POS-Artikel    | Zutat        | Menge |
| -------------- | ------------ | ----: |
| Cola 0.33 l    | Cola-Flasche |     1 |
| Espresso       | Kaffeebohnen | 0.009 |
| Weinglas 0.2 l | Hauswein     |   0.2 |

Die Menge definiert, wie viel von der Zutat pro verkauftem POS-Artikel abgebucht wird.Die Menge definiert, wie viel von der Zutat pro verkauftem POS-Artikel abgebucht wird.

**Verkaufte Menge × Zuordnungsmenge = Zutatenabbuchung**

Wenn **Espresso** mit der Menge `0.009` der Zutat **Kaffeebohnen** zugeordnet ist:

| Verkauft      | Zuordnungsmenge | Abbuchung |
| ------------- | --------------: | --------: |
| 1 × Espresso  |        0.009 kg |  0.009 kg |
| 5 × Espresso  |        0.009 kg |  0.045 kg |
| 20 × Espresso |        0.009 kg |   0.18 kg |

## Einem Rezept zuordnen

**Verkaufte Menge × Zuordnungsmenge = Zutatenabbuchung**

Wenn **Espresso** mit der Menge `0.009` der Zutat **Kaffeebohnen** zugeordnet ist:

| Verkauft      | Zuordnungsmenge | Abbuchung |
| ------------- | --------------: | --------: |
| 1 × Espresso  |        0.009 kg |  0.009 kg |
| 5 × Espresso  |        0.009 kg |  0.045 kg |
| 20 × Espresso |        0.009 kg |   0.18 kg |

## Einem Rezept zuordnen

Verwende eine Rezeptzuordnung, wenn ein verkaufter POS-Artikel aus mehreren Zutaten bestehtVerwende eine Rezeptzuordnung, wenn ein verkaufter POS-Artikel aus mehreren Zutaten besteht.

| POS-Artikel                      | RezeptRezept                                   |
| -------------------------------- | ---------------------------------------------- |
| BurgerBurger                     | Burger-RezeptBurger-Rezept                     |
| Pizza MargheritaPizza Margherita | Pizza-Margherita-RezeptPizza-Margherita-Rezept |
| Caesar SaladCaesar Salad         | Caesar-SaladCaesar-Salad-Rezept                |
| Espresso Martini                 | Espresso-Martini-Rezept                        |
| Espresso Martini                 | Espresso-Martini-Rezept                        |

Wenn der POS-Artikel verkauft wird, löst Mathership das Rezept auf und bucht alle Zutaten aus den Rezeptzeilen ab. Dies unterstützt auch Unterrezepteder POS-Artikel verkauft wird, löst Mathership das Rezept auf und bucht alle Zutaten aus den Rezeptzeilen ab. Dies unterstützt auch Unterrezepte.

| POS-Artikel | Zuordnung             | Bestandsergebnis            |
| ----------- | --------------------- | --------------------------- |
| Espresso    | Zutat: Kaffeebohnen   | Kaffeebohnen abbuchen       |
| Cola 0.33 l | Zutat: Cola-Flasche   | Flaschen abbuchen           |
| Burger      | Rezept: Burger-Rezept | Alle Rezeptzutaten abbuchen |

Wenn keine Zuordnung existiert, wird der Artikel übersprungen oder als nicht zugeordnet gemeldet.

| POS-Artikel | Zuordnung             | Bestandsergebnis            |
| ----------- | --------------------- | --------------------------- |
| Espresso    | Zutat: Kaffeebohnen   | Kaffeebohnen abbuchen       |
| Cola 0.33 l | Zutat: Cola-Flasche   | Flaschen abbuchen           |
| Burger      | Rezept: Burger-Rezept | Alle Rezeptzutaten abbuchen |

Wenn keine Zuordnung existiert, wird der Artikel übersprungen oder als nicht zugeordnet gemeldet.

Der Verkauf kann im Transferergebnis sichtbar sein, reduziert den Bestand aber erst, wenn eine Zuordnung existiertDer Verkauf kann im Transferergebnis sichtbar sein, reduziert den Bestand aber erst, wenn eine Zuordnung existiert.

## Warum Zuordnungen erforderlich sind

## Warum Zuordnungen erforderlich sind

POS-Systeme wissen normalerweise, was verkauft wurde. Mathership muss wissen, welcher Bestand sich durch diesen Verkauf ändern sollPOS-Systeme wissen normalerweise, was verkauft wurde. Mathership muss wissen, welcher Bestand sich durch diesen Verkauf ändern soll.

| POS-Verkauf     | Was Mathership wissen muss                            |
| --------------- | ----------------------------------------------------- |
| 1 × Espresso    | Wie viele kg Kaffeebohnen abgebucht werden sollen     |
| 1 × Cola 0.33 l | Welche Flaschenzutat abgebucht werden soll            |
| 1 × Burger      | Welches Rezept in Zutaten aufgeschlüsselt werden soll |

Der POS-Artikelname allein reicht nicht aus. Eine Zuordnung verbindet den externen POS-Artikel mit dem richtigen Mathership-Bestandsobjekt.

## Zuordnungstypen

| Zuordnungstyp | Verwenden, wenn                                                    |
| ------------- | ------------------------------------------------------------------ |
| Zutat         | Der verkaufte POS-Artikel eine einzelne Zutat direkt abbuchen soll |
| Rezept        | Der verkaufte POS-Artikel aus mehreren Zutaten besteht             |

Verwende Zutat-Zuordnungen für einfache Artikel.

| POS-Verkauf     | Was Mathership wissen muss                            |
| --------------- | ----------------------------------------------------- |
| 1 × Espresso    | Wie viele kg Kaffeebohnen abgebucht werden sollen     |
| 1 × Cola 0.33 l | Welche Flaschenzutat abgebucht werden soll            |
| 1 × Burger      | Welches Rezept in Zutaten aufgeschlüsselt werden soll |

Der POS-Artikelname allein reicht nicht aus. Eine Zuordnung verbindet den externen POS-Artikel mit dem richtigen Mathership-Bestandsobjekt.

## Zuordnungstypen

| Zuordnungstyp | Verwenden, wenn                                                    |
| ------------- | ------------------------------------------------------------------ |
| Zutat         | Der verkaufte POS-Artikel eine einzelne Zutat direkt abbuchen soll |
| Rezept        | Der verkaufte POS-Artikel aus mehreren Zutaten besteht             |

Verwende Zutat-Zuordnungen für einfache Artikel.

Verwende Rezeptzuordnungen für vorbereitete Gerichte, Getränke, Menüs oder alles, was aus mehreren Zutaten bestehtRezeptzuordnungen für vorbereitete Gerichte, Getränke, Menüs oder alles, was aus mehreren Zutaten besteht.

## Einer Zutat zuordnen

## Einer Zutat zuordnen

Verwende eine Zutat-Zuordnung, wenn ein verkaufter POS-Artikel eine einzelne Zutat direkt abbuchen sollVerwende eine Zutat-Zuordnung, wenn ein verkaufter POS-Artikel eine einzelne Zutat direkt abbuchen soll.

| POS-Artikel    | Zutat        | Menge |
| -------------- | ------------ | ----: |
| Cola 0.33 l    | Cola-Flasche |     1 |
| Espresso       | Kaffeebohnen | 0.009 |
| Weinglas 0.2 l | Hauswein     |   0.2 |

| POS-Artikel    | Zutat        | Menge |
| -------------- | ------------ | ----: |
| Cola 0.33 l    | Cola-Flasche |     1 |
| Espresso       | Kaffeebohnen | 0.009 |
| Weinglas 0.2 l | Hauswein     |   0.2 |

Die Menge definiert, wie viel von der Zutat pro verkauftem POS-Artikel abgebucht wird.Die Menge definiert, wie viel von der Zutat pro verkauftem POS-Artikel abgebucht wird.

**Verkaufte Menge × Zuordnungsmenge = Zutatenabbuchung**

Wenn **Espresso** mit der Menge `0.009` der Zutat **Kaffeebohnen** zugeordnet ist:

| Verkauft      | Zuordnungsmenge | Abbuchung |
| ------------- | --------------: | --------: |
| 1 × Espresso  |        0.009 kg |  0.009 kg |
| 5 × Espresso  |        0.009 kg |  0.045 kg |
| 20 × Espresso |        0.009 kg |   0.18 kg |

## Einem Rezept zuordnen

**Verkaufte Menge × Zuordnungsmenge = Zutatenabbuchung**

Wenn **Espresso** mit der Menge `0.009` der Zutat **Kaffeebohnen** zugeordnet ist:

| Verkauft      | Zuordnungsmenge | Abbuchung |
| ------------- | --------------: | --------: |
| 1 × Espresso  |        0.009 kg |  0.009 kg |
| 5 × Espresso  |        0.009 kg |  0.045 kg |
| 20 × Espresso |        0.009 kg |   0.18 kg |

## Einem Rezept zuordnen

Verwende eine Rezeptzuordnung, wenn ein verkaufter POS-Artikel aus mehreren Zutaten bestehtVerwende eine Rezeptzuordnung, wenn ein verkaufter POS-Artikel aus mehreren Zutaten besteht.

| POS-Artikel      | Rezept                  |
| ---------------- | ----------------------- |
| Burger           | Burger-Rezept           |
| Pizza Margherita | Pizza-Margherita-Rezept |
| Caesar Salad     | Caesar-Salad-Rezept     |
| Espresso Martini | Espresso-Martini-Rezept |

| POS-Artikel      | Rezept                  |
| ---------------- | ----------------------- |
| Burger           | Burger-Rezept           |
| Pizza Margherita | Pizza-Margherita-Rezept |
| Caesar Salad     | Caesar-Salad-Rezept     |
| Espresso Martini | Espresso-Martini-Rezept |

Wenn der POS-Artikel verkauft wird, löst Mathership das Rezept auf und bucht alle Zutaten aus den Rezeptzeilen ab. Dies unterstützt auch Unterrezepte.Wenn der POS-Artikel verkauft wird, löst Mathership das Rezept auf und bucht alle Zutaten aus den Rezeptzeilen ab. Dies unterstützt auch Unterrezepte.

| POS-Artikel | Zuordnung             | Bestandsergebnis            |
| ----------- | --------------------- | --------------------------- |
| Espresso    | Zutat: Kaffeebohnen   | Kaffeebohnen abbuchen       |
| Cola 0.33 l | Zutat: Cola-Flasche   | Flaschen abbuchen           |
| Burger      | Rezept: Burger-Rezept | Alle Rezeptzutaten abbuchen |

Wenn keine Zuordnung existiert, wird der Artikel übersprungen oder als nicht zugeordnet gemeldet.

| POS-Artikel | Zuordnung             | Bestandsergebnis            |
| ----------- | --------------------- | --------------------------- |
| Espresso    | Zutat: Kaffeebohnen   | Kaffeebohnen abbuchen       |
| Cola 0.33 l | Zutat: Cola-Flasche   | Flaschen abbuchen           |
| Burger      | Rezept: Burger-Rezept | Alle Rezeptzutaten abbuchen |

Wenn keine Zuordnung existiert, wird der Artikel übersprungen oder als nicht zugeordnet gemeldet.

Der Verkauf kann im Transferergebnis sichtbar sein, reduziert den Bestand aber erst, wenn eine Zuordnung existierter Verkauf kann im Transferergebnis sichtbar sein, reduziert den Bestand aber erst, wenn eine Zuordnung existiert.

## Warum Zuordnungen erforderlich sind

## Warum Zuordnungen erforderlich sind

POS-Systeme wissen normalerweise, was verkauft wurde. Mathership muss wissen, welcher Bestand sich durch diesen Verkauf ändern sollPOS-Systeme wissen normalerweise, was verkauft wurde. Mathership muss wissen, welcher Bestand sich durch diesen Verkauf ändern soll.

| POS-Verkauf     | Was Mathership wissen muss                            |
| --------------- | ----------------------------------------------------- |
| 1 × Espresso    | Wie viele kg Kaffeebohnen abgebucht werden sollen     |
| 1 × Cola 0.33 l | Welche Flaschenzutat abgebucht werden soll            |
| 1 × Burger      | Welches Rezept in Zutaten aufgeschlüsselt werden soll |

| POS-Verkauf     | Was Mathership wissen muss                            |
| --------------- | ----------------------------------------------------- |
| 1 × Espresso    | Wie viele kg Kaffeebohnen abgebucht werden sollen     |
| 1 × Cola 0.33 l | Welche Flaschenzutat abgebucht werden soll            |
| 1 × Burger      | Welches Rezept in Zutaten aufgeschlüsselt werden soll |

Der POS-Artikelname allein reicht nicht aus. Eine Zuordnung verbindet den externen POS-Artikel mit dem richtigen Mathership-BestandsobjekDer POS-Artikelname allein reicht nicht aus. Eine Zuordnung verbindet den externen POS-Artikel mit dem richtigen Mathership-Bestandsobjekt.

## ZuordnungstypZuordnungstypen

| Zuordnungstyp | Verwenden, wenn                                                    |
| ------------- | ------------------------------------------------------------------ |
| Zutat         | Der verkaufte POS-Artikel eine einzelne Zutat direkt abbuchen soll |
| Rezept        | Der verkaufte POS-Artikel aus mehreren Zutaten besteht             |

| Zuordnungstyp | Verwenden, wenn                                                    |
| ------------- | ------------------------------------------------------------------ |
| Zutat         | Der verkaufte POS-Artikel eine einzelne Zutat direkt abbuchen soll |
| Rezept        | Der verkaufte POS-Artikel aus mehreren Zutaten besteht             |

Verwende Zutat-Zuordnungen für einfache ArtikelVerwende Zutat-Zuordnungen für einfache Artikel.

Verwende Rezeptzuordnungen für vorbereitete Gerichte, Getränke, Menüs oder alles, was aus mehreren Zutaten bestehtVerwende Rezeptzuordnungen für vorbereitete Gerichte, Getränke, Menüs oder alles, was aus mehreren Zutaten besteht.

## Einer Zutat zuordnen

## Einer Zutat zuordnen

Verwende eine Zutat-Zuordnung, wenn ein verkaufter POS-Artikel eine einzelne Zutat direkt abbucheine Zutat-Zuordnung, wenn ein verkaufter POS-Artikel eine einzelne Zutat direkt abbuchen soll.

| POS-Artikel    | Zutat        | Menge |
| -------------- | ------------ | ----: |
| Cola 0.33 l    | Cola-Flasche |     1 |
| Espresso       | Kaffeebohnen | 0.009 |
| Weinglas 0.2 l | Hauswein     |   0.2 |

Die Menge definiert, wie viel von der Zutat pro verkauftem POS-Artikel abgebucht wird.

| POS-Artikel    | Zutat        | Menge |
| -------------- | ------------ | ----: |
| Cola 0.33 l    | Cola-Flasche |     1 |
| Espresso       | Kaffeebohnen | 0.009 |
| Weinglas 0.2 l | Hauswein     |   0.2 |

Die Menge definiert, wie viel von der Zutat pro verkauftem POS-Artikel abgebucht wird.

**Verkaufte Menge × Zuordnungsmenge = ZutatenabbuchungVerkaufte Menge × Zuordnungsmenge = Zutatenabbuchung**

Wenn **Espresso** mit der Menge `0.009` der Zutat **Kaffeebohnen** zugeordnet ist:Wenn **Espresso** mit der Menge `0.009` der Zutat **Kaffeebohnen** zugeordnet ist:

| Verkauft      | Zuordnungsmenge | Abbuchung |
| ------------- | --------------: | --------: |
| 1 × Espresso  |        0.009 kg |  0.009 kg |
| 5 × Espresso  |        0.009 kg |  0.045 kg |
| 20 × Espresso |        0.009 kg |   0.18 kg |

## Einem Rezept zuordnen

Verwende eine Rezeptzuordnung, wenn ein verkaufter POS-Artikel aus mehreren Zutaten besteht.

| POS-Artikel      | Rezept                  |
| ---------------- | ----------------------- |
| Burger           | Burger-Rezept           |
| Pizza Margherita | Pizza-Margherita-Rezept |
| Caesar Salad     | Caesar-Salad-Rezept     |
| Espresso Martini | Espresso-Martini-Rezept |

Wenn der POS-Artikel verkauft wird, löst Mathership das Rezept auf und bucht alle Zutaten aus den Rezeptzeilen ab. Dies unterstützt auch Unterrezepte.

| POS-Artikel | Zuordnung             | Bestandsergebnis            |
| ----------- | --------------------- | --------------------------- |
| Espresso    | Zutat: Kaffeebohnen   | Kaffeebohnen abbuchen       |
| Cola 0.33 l | Zutat: Cola-Flasche   | Flaschen abbuchen           |
| Burger      | Rezept: Burger-Rezept | Alle Rezeptzutaten abbuchen |

| Verkauft      | Zuordnungsmenge | Abbuchung |
| ------------- | --------------: | --------: |
| 1 × Espresso  |        0.009 kg |  0.009 kg |
| 5 × Espresso  |        0.009 kg |  0.045 kg |
| 20 × Espresso |        0.009 kg |   0.18 kg |

## Einem Rezept zuordnen

Verwende eine Rezeptzuordnung, wenn ein verkaufter POS-Artikel aus mehreren Zutaten besteht.

| POS-Artikel      | Rezept                  |
| ---------------- | ----------------------- |
| Burger           | Burger-Rezept           |
| Pizza Margherita | Pizza-Margherita-Rezept |
| Caesar Salad     | Caesar-Salad-Rezept     |
| Espresso Martini | Espresso-Martini-Rezept |

Wenn der POS-Artikel verkauft wird, löst Mathership das Rezept auf und bucht alle Zutaten aus den Rezeptzeilen ab. Dies unterstützt auch Unterrezepte.

| POS-Artikel | Zuordnung             | Bestandsergebnis            |
| ----------- | --------------------- | --------------------------- |
| Espresso    | Zutat: Kaffeebohnen   | Kaffeebohnen abbuchen       |
| Cola 0.33 l | Zutat: Cola-Flasche   | Flaschen abbuchen           |
| Burger      | Rezept: Burger-Rezept | Alle Rezeptzutaten abbuchen |

Wenn keine Zuordnung existiert, wird der Artikel übersprungen oder als nicht zugeordnet gemeldeWenn keine Zuordnung existiert, wird der Artikel übersprungen oder als nicht zugeordnet gemeldet.

Der Verkauf kann im Transferergebnis sichtbar sein, reduziert den Bestand aber erst, wenn eine Zuordnung existiertDer Verkauf kann im Transferergebnis sichtbar sein, reduziert den Bestand aber erst, wenn eine Zuordnung existiert.

## Warum Zuordnungen erforderlich sind

POS-Systeme wissen normalerweise, was verkauft wurde. Mathership muss wissen, welcher Bestand sich durch diesen Verkauf ändern soll.

| POS-Verkauf     | Was Mathership wissen muss                            |
| --------------- | ----------------------------------------------------- |
| 1 × Espresso    | Wie viele kg Kaffeebohnen abgebucht werden sollen     |
| 1 × Cola 0.33 l | Welche Flaschenzutat abgebucht werden soll            |
| 1 × Burger      | Welches Rezept in Zutaten aufgeschlüsselt werden soll |

## Warum Zuordnungen erforderlich sind

POS-Systeme wissen normalerweise, was verkauft wurde. Mathership muss wissen, welcher Bestand sich durch diesen Verkauf ändern soll.

| POS-Verkauf     | Was Mathership wissen muss                            |
| --------------- | ----------------------------------------------------- |
| 1 × Espresso    | Wie viele kg Kaffeebohnen abgebucht werden sollen     |
| 1 × Cola 0.33 l | Welche Flaschenzutat abgebucht werden soll            |
| 1 × Burger      | Welches Rezept in Zutaten aufgeschlüsselt werden soll |

Der POS-Artikelname allein reicht nicht aus. Eine Zuordnung verbindet den externen POS-Artikel mit dem richtigen Mathership-BestandsobjektDer POS-Artikelname allein reicht nicht aus. Eine Zuordnung verbindet den externen POS-Artikel mit dem richtigen Mathership-Bestandsobjekt.

## Zuordnungstypen

| Zuordnungstyp | Verwenden, wenn                                                    |
| ------------- | ------------------------------------------------------------------ |
| Zutat         | Der verkaufte POS-Artikel eine einzelne Zutat direkt abbuchen soll |
| Rezept        | Der verkaufte POS-Artikel aus mehreren Zutaten besteht             |

## Zuordnungstypen

| Zuordnungstyp | Verwenden, wenn                                                    |
| ------------- | ------------------------------------------------------------------ |
| Zutat         | Der verkaufte POS-Artikel eine einzelne Zutat direkt abbuchen soll |
| Rezept        | Der verkaufte POS-Artikel aus mehreren Zutaten besteht             |

Verwende Zutat-Zuordnungen für einfache ArtikelVerwende Zutat-Zuordnungen für einfache Artikel.

Verwende Rezeptzuordnungen für vorbereitete Gerichte, Getränke, Menüs oder alles, was aus mehreren Zutaten bestehtVerwende Rezeptzuordnungen für vorbereitete Gerichte, Getränke, Menüs oder alles, was aus mehreren Zutaten besteht.

## Einer Zutat zuordnr Zutat zuordnen

Verwende eine Zutat-Zuordnung, wenn ein verkaufter POS-Artikel eine einzelne Zutat direkt abbuchen sollVerwende eine Zutat-Zuordnung, wenn ein verkaufter POS-Artikel eine einzelne Zutat direkt abbuchen soll.

| POS-Artikel    | Zutat        | Menge |
| -------------- | ------------ | ----: |
| Cola 0.33 l    | Cola-Flasche |     1 |
| Espresso       | Kaffeebohnen | 0.009 |
| Weinglas 0.2 l | Hauswein     |   0.2 |

| POS-Artikel    | Zutat        | Menge |
| -------------- | ------------ | ----: |
| Cola 0.33 l    | Cola-Flasche |     1 |
| Espresso       | Kaffeebohnen | 0.009 |
| Weinglas 0.2 l | Hauswein     |   0.2 |

Die Menge definiert, wie viel von der Zutat pro verkauftem POS-Artikel abgebuchDie Menge definiert, wie viel von der Zutat pro verkauftem POS-Artikel abgebucht wird.

**Verkaufte Menge × Zuordnungsmenge = Zutatenabbuchung**

**Verkaufte Menge × Zuordnungsmenge = Zutatenabbuchung**

Wenn **Espresso** mit der Menge `0.009` der Zutat **Kaffeebohnen** zugeordnet ist:Wenn **Espresso** mit der Menge `0.009` der Zutat **Kaffeebohnen** zugeordnet ist:

| Verkauft      | Zuordnungsmenge | Abbuchung |
| ------------- | --------------: | --------: |
| 1 × Espresso  |        0.009 kg |  0.009 kg |
| 5 × Espresso  |        0.009 kg |  0.045 kg |
| 20 × Espresso |        0.009 kg |   0.18 kg |

| Verkauft      | Zuordnungsmenge | Abbuchung |
| ------------- | --------------: | --------: |
| 1 × Espresso  |        0.009 kg |  0.009 kg |
| 5 × Espresso  |        0.009 kg |  0.045 kg |
| 20 × Espresso |        0.009 kg |   0.18 kg |

## Einem Rezept zuordnenEinem Rezept zuordnen

Verwende eine Rezeptzuordnung, wenn ein verkaufter POS-Artikel aus mehreren Zutaten besteht.

| POS-Artikel      | Rezept                  |
| ---------------- | ----------------------- |
| Burger           | Burger-Rezept           |
| Pizza Margherita | Pizza-Margherita-Rezept |
| Caesar Salad     | Caesar-Salad-Rezept     |
| Espresso Martini | Espresso-Martini-Rezept |

Verwende eine Rezeptzuordnung, wenn ein verkaufter POS-Artikel aus mehreren Zutaten besteht.

| POS-Artikel      | Rezept                  |
| ---------------- | ----------------------- |
| Burger           | Burger-Rezept           |
| Pizza Margherita | Pizza-Margherita-Rezept |
| Caesar Salad     | Caesar-Salad-Rezept     |
| Espresso Martini | Espresso-Martini-Rezept |

Wenn der POS-Artikel verkauft wird, löst Mathership das Rezept auf und bucht alle Zutaten aus den Rezeptzeilen ab. Dies unterstützt auch UnterrezepteWenn der POS-Artikel verkauft wird, löst Mathership das Rezept auf und bucht alle Zutaten aus den Rezeptzeilen ab. Dies unterstützt auch Unterrezepte.

Beispiel:

Beispiel:

**Burger → Burger-Rezept → Brötchen, Patty, Käse, Sauce, SalatBurger → Burger-Rezept → Brötchen, Patty, Käse, Sauce, Salat**

Wenn 3 Burger verkauft werden, berechnet Mathership den Zutatenbedarf für 3 Rezeptportionen und erstellt Bestandsabbuchungen für jede Zutat.Wenn 3 Burger verkauft werden, berechnet Mathership den Zutatenbedarf für 3 Rezeptportionen und erstellt Bestandsabbuchungen für jede Zutat.

## Mengenmultiplikator

## Mengenmultiplikator

Das Mengenfeld ist ein MultiplikatorDas Mengenfeld ist ein Multiplikator.

Bei Zutat-Zuordnungen legt es fest, wie viel von der Zutat pro verkauftem POS-Artikel abgebucht wird.

Bei Zutat-Zuordnungen legt es fest, wie viel von der Zutat pro verkauftem POS-Artikel abgebucht wird.

Bei Rezeptzuordnungen legt es fest, wie viele Rezeptportionen pro verkauftem POS-Artikel verwendet werdBei Rezeptzuordnungen legt es fest, wie viele Rezeptportionen pro verkauftem POS-Artikel verwendet werden.

<Tabs>
  <Tab title="Zutatenmenge">
    **Verkaufte Menge × Zuordnungsmenge = Zutatenabbuchung**

    | Verkauft      | Zuordnungsmenge |  Abbuchung |
    | ------------- | --------------: | ---------: |
    | 3 × Cola      |       1 Flasche | 3 Flaschen |
    | 5 × Espresso  |        0.009 kg |   0.045 kg |
    | 10 × Weinglas |           0.2 l |        2 l |
  </Tab>

  <Tab title="Rezeptmenge">
    **Verkaufte Menge × Zuordnungsmenge = Rezeptportionen**

    | Verkauft          | Zuordnungsmenge | Rezeptportionen |
    | ----------------- | --------------: | --------------: |
    | 2 × Burger        |               1 |     2 Portionen |
    | 1 × Partyplatte   |               4 |     4 Portionen |
    | 3 × Kleiner Salat |             0.5 |   1.5 Portionen |
  </Tab>
</Tabs>

<Tabs>
  <Tab title="Zutatenmenge">
    **Verkaufte Menge × Zuordnungsmenge = Zutatenabbuchung**

    | Verkauft      | Zuordnungsmenge |  Abbuchung |
    | ------------- | --------------: | ---------: |
    | 3 × Cola      |       1 Flasche | 3 Flaschen |
    | 5 × Espresso  |        0.009 kg |   0.045 kg |
    | 10 × Weinglas |           0.2 l |        2 l |
  </Tab>

  <Tab title="Rezeptmenge">
    **Verkaufte Menge × Zuordnungsmenge = Rezeptportionen**

    | Verkauft          | Zuordnungsmenge | Rezeptportionen |
    | ----------------- | --------------: | --------------: |
    | 2 × Burger        |               1 |     2 Portionen |
    | 1 × Partyplatte   |               4 |     4 Portionen |
    | 3 × Kleiner Salat |             0.5 |   1.5 Portionen |
  </Tab>
</Tabs>

Verwende `1`, wenn ein verkaufter POS-Artikel einer Rezeptportion entspricht. Verwende einen anderen Wert, wenn der POS-Artikel mehr oder weniger als eine Rezeptportion darstelltVerwende `1`, wenn ein verkaufter POS-Artikel einer Rezeptportion entspricht. Verwende einen anderen Wert, wenn der POS-Artikel mehr oder weniger als eine Rezeptportion darstellt.

## Subtraktions-Zuordnungen

Zuordnungen können `is_subtraction` verwenden.

## Subtraktions-Zuordnungen

Zuordnungen können `is_subtraction` verwenden.

Im Zuordnungs-Sheet erscheint dies als Toggle **Is subtraction**Im Zuordnungs-Sheet erscheint dies als Toggle **Is subtraction**.

Dies wird für Entfernungs-Modifikatoren verwendet — also Artikel, die anzeigen, dass etwas nicht in einem Verkauf enthalten war.Dies wird für Entfernungs-Modifikatoren verwendet — also Artikel, die anzeigen, dass etwas nicht in einem Verkauf enthalten war.

| POS-Artikel     | Anwendungsfall                                                           |
| --------------- | ------------------------------------------------------------------------ |
| No chips        | Eine Chips-Abbuchung rückgängig machen, wenn keine Chips serviert wurden |
| Refund item     | Eine frühere Abbuchung rückgängig machen                                 |
| Correction item | Eine POS-Menge reduzieren oder ausgleichen                               |

| POS-Artikel     | Anwendungsfall                                                           |
| --------------- | ------------------------------------------------------------------------ |
| No chips        | Eine Chips-Abbuchung rückgängig machen, wenn keine Chips serviert wurden |
| Refund item     | Eine frühere Abbuchung rückgängig machen                                 |
| Correction item | Eine POS-Menge reduzieren oder ausgleichen                               |

Verwende dies nur, wenn sich der POS-Artikel nicht wie eine normale Verkaufsabbuchung verhalten sollVerwende dies nur, wenn sich der POS-Artikel nicht wie eine normale Verkaufsabbuchung verhalten soll.

<Warning>
  Prüfe Subtraktions-Zuordnungen sorgfältig. Eine falsche Subtraktionslogik kann Bestandsbewegungen in die falsche Richtung erzeugen.
</Warning>

## Wo Zuordnungen erstellt werden

Zuordnungen werden direkt aus der Artikel- oder Produktliste innerhalb jeder Integration erstellt.

<Warning>
  Prüfe Subtraktions-Zuordnungen sorgfältig. Eine falsche Subtraktionslogik kann Bestandsbewegungen in die falsche Richtung erzeugen.
</Warning>

## Wo Zuordnungen erstellt werden

Zuordnungen werden direkt aus der Artikel- oder Produktliste innerhalb jeder Integration erstellt.

Es gibt keine separate Verwaltungsseite für ZuordnungeEs gibt keine separate Verwaltungsseite für Zuordnungen.

## Das Zuordnungs-SheetDas Zuordnungs-Sheet

Das Zuordnungs-Sheet öffnet sich als Seitenpanel. Die Kopfzeile zeigt den aktuellen Zuordnungsstatus und Artikeldetails aus dem POS-SystemDas Zuordnungs-Sheet öffnet sich als Seitenpanel. Die Kopfzeile zeigt den aktuellen Zuordnungsstatus und Artikeldetails aus dem POS-System.

| Integration | In der Kopfzeile angezeigte Felder                      |
| ----------- | ------------------------------------------------------- |
| Lightspeed  | Artikelname, Artikel-ID, SKU, Preis                     |
| SIDES       | Produktname, externe ID, Artikelnummer, Typ, Küchenname |

### Formularfelder der Zuordnung

| Feld           | Beschreibung                                                                                   |
| -------------- | ---------------------------------------------------------------------------------------------- |
| Zuordnungstyp  | Umschalten zwischen **Rezept** und **Zutat** — beim Wechsel wird die Zielauswahl zurückgesetzt |
| Ziel           | Zutat oder Rezept suchen und auswählen, dem zugeordnet werden soll                             |
| Menge          | Wie viel Bestand pro verkaufter Einheit betroffen ist — Standard ist `1.0`                     |
| Is subtraction | Toggle für Entfernungs-Modifikatoren — kehrt die Bestandsrichtung um                           |

## Lightspeed-Artikelzuordnungen

Lightspeed-Artikel werden aus Lightspeed K-Series synchronisiert.

| Integration | In der Kopfzeile angezeigte Felder                      |
| ----------- | ------------------------------------------------------- |
| Lightspeed  | Artikelname, Artikel-ID, SKU, Preis                     |
| SIDES       | Produktname, externe ID, Artikelnummer, Typ, Küchenname |

### Formularfelder der Zuordnung

| Feld           | Beschreibung                                                                                   |
| -------------- | ---------------------------------------------------------------------------------------------- |
| Zuordnungstyp  | Umschalten zwischen **Rezept** und **Zutat** — beim Wechsel wird die Zielauswahl zurückgesetzt |
| Ziel           | Zutat oder Rezept suchen und auswählen, dem zugeordnet werden soll                             |
| Menge          | Wie viel Bestand pro verkaufter Einheit betroffen ist — Standard ist `1.0`                     |
| Is subtraction | Toggle für Entfernungs-Modifikatoren — kehrt die Bestandsrichtung um                           |

## Lightspeed-Artikelzuordnungen

Lightspeed-Artikel werden aus Lightspeed K-Series synchronisiert.

Mathership speichert die Zuordnung über den Lightspeed-ArtikelnamMathership speichert die Zuordnung über den Lightspeed-Artikelnamen.

| Lightspeed-Artikel | Zuordnungstyp | Zugeordnet zu         | Menge |
| ------------------ | ------------- | --------------------- | ----: |
| Espresso           | Zutat         | Kaffeebohnen          | 0.009 |
| Cola 0.33 l        | Zutat         | Cola-Flasche          |     1 |
| Classic Burger     | Rezept        | Classic-Burger-Rezept |     1 |

| Lightspeed-Artikel | Zuordnungstyp | Zugeordnet zu         | Menge |
| ------------------ | ------------- | --------------------- | ----: |
| Espresso           | Zutat         | Kaffeebohnen          | 0.009 |
| Cola 0.33 l        | Zutat         | Cola-Flasche          |     1 |
| Classic Burger     | Rezept        | Classic-Burger-Rezept |     1 |

## SIDES-ProduktzuordnungenSIDES-Produktzuordnungen

SIDES-Produkte werden aus der SIDES-Produkt-API synchronisiert.

Zuordnungen werden auf Integrationsebene gespeichert, nicht pro Filiale. Eine Produktzuordnung gilt für alle Filialen derselben Integration.

| SIDES-Produkt | Zuordnungstyp | Zugeordnet zu       | Menge |
| ------------- | ------------- | ------------------- | ----: |
| Cheeseburger  | Rezept        | Cheeseburger-Rezept |     1 |
| Fries         | Rezept        | Pommes-Rezept       |     1 |
| Bottle Water  | Zutat         | Wasserflasche       |     1 |

## Eine Zuordnung bearbeiten

Klicke auf eine bereits zugeordnete Artikelzeile. Das Zuordnungs-Sheet öffnet sich mit den aktuellen Werten vorausgefüllt.

SIDES-Produkte werden aus der SIDES-Produkt-API synchronisiert.

Zuordnungen werden auf Integrationsebene gespeichert, nicht pro Filiale. Eine Produktzuordnung gilt für alle Filialen derselben Integration.

| SIDES-Produkt | Zuordnungstyp | Zugeordnet zu       | Menge |
| ------------- | ------------- | ------------------- | ----: |
| Cheeseburger  | Rezept        | Cheeseburger-Rezept |     1 |
| Fries         | Rezept        | Pommes-Rezept       |     1 |
| Bottle Water  | Zutat         | Wasserflasche       |     1 |

## Eine Zuordnung bearbeiten

Klicke auf eine bereits zugeordnete Artikelzeile. Das Zuordnungs-Sheet öffnet sich mit den aktuellen Werten vorausgefüllt.

Aktualisiere ein beliebiges Feld und klicke auf **Save changes**.Aktualisiere ein beliebiges Feld und klicke auf **Save changes**.

## Eine Zuordnung löschen

Klicke auf die zugeordnete Artikelzeile und dann unten links im Sheet auf **Delete mapping**.

## Eine Zuordnung löschen

Klicke auf die zugeordnete Artikelzeile und dann unten links im Sheet auf **Delete mapping**.

Bestätige die Löschung im DialogBestätige die Löschung im Dialog.

Nach dem Löschen wirken sich zukünftige Verkäufe dieses Artikels nicht mehr auf den Bestand aus, bis er erneut zugeordneNach dem Löschen wirken sich zukünftige Verkäufe dieses Artikels nicht mehr auf den Bestand aus, bis er erneut zugeordnet wird.

<Warning>
  Das Löschen einer Zuordnung macht vergangene Bestandsbewegungen nicht rückgängig. Um frühere Buchungen zu korrigieren, führe den betroffenen Transfer erneut aus oder erstelle korrigierende Bestandsbewegungen.
</Warning>

Prüfe vor dem Löschen einer Zuordnung, ob der POS-Artikel weiterhin verkauft wird.

<Warning>
  Das Löschen einer Zuordnung macht vergangene Bestandsbewegungen nicht rückgängig. Um frühere Buchungen zu korrigieren, führe den betroffenen Transfer erneut aus oder erstelle korrigierende Bestandsbewegungen.
</Warning>

Prüfe vor dem Löschen einer Zuordnung, ob der POS-Artikel weiterhin verkauft wird.

Wenn er weiterhin aktiv ist, führt das Löschen der Zuordnung dazu, dass zukünftige Verkäufe nicht zugeordnet sindWenn er weiterhin aktiv ist, führt das Löschen der Zuordnung dazu, dass zukünftige Verkäufe nicht zugeordnet sind.

## Zuordnungsstatus in der ArtikellisteZuordnungsstatus in der Artikelliste

| Status           | Bedeutung                                                                |
| ---------------- | ------------------------------------------------------------------------ |
| Zugeordnet       | Der Artikel hat eine aktive Zuordnung                                    |
| Nicht zugeordnet | Der Artikel hat keine Zuordnung und wirkt sich nicht auf den Bestand aus |

| Status           | Bedeutung                                                                |
| ---------------- | ------------------------------------------------------------------------ |
| Zugeordnet       | Der Artikel hat eine aktive Zuordnung                                    |
| Nicht zugeordnet | Der Artikel hat keine Zuordnung und wirkt sich nicht auf den Bestand aus |

Die Spalte **Mapped to** zeigt den Namen der Zielzutat oder des Zielrezepts, die Menge und, falls zutreffend, einen SubtraktionsindikatorDie Spalte **Mapped to** zeigt den Namen der Zielzutat oder des Zielrezepts, die Menge und, falls zutreffend, einen Subtraktionsindikator.

Verwende den Filter **Mapped** in der Toolbar, um nur nicht zugeordnete Artikel anzuzeigenVerwende den Filter **Mapped** in der Toolbar, um nur nicht zugeordnete Artikel anzuzeigen.

## Auswahl der Lagereinheit

## Auswahl der Lagereinheit

Die Zuordnung definiert, was abgebucht werden soll. Die Lagereinheit definiert, wo es abgebucht werdDie Zuordnung definiert, was abgebucht werden soll. Die Lagereinheit definiert, wo es abgebucht werden soll.

Je nach Integration kommt die Lagereinheit aus:

* Dem verknüpften Lightspeed-Standort
* Der verknüpften SIDES-Filiale
* Dem Ausgabelager des Rezepts
* Dem Ausgabelager der Zutat
* Der Fallback-Logik für Lagereinheiten

Je nach Integration kommt die Lagereinheit aus:

* Dem verknüpften Lightspeed-Standort
* Der verknüpften SIDES-Filiale
* Dem Ausgabelager des Rezepts
* Dem Ausgabelager der Zutat
* Der Fallback-Logik für Lagereinheiten

Stelle bei Lightspeed und SIDES sicher, dass der Standort oder die Filiale vor der Aktivierung oder dem Transfer mit der richtigen Lagereinheit verknüpft isStelle bei Lightspeed und SIDES sicher, dass der Standort oder die Filiale vor der Aktivierung oder dem Transfer mit der richtigen Lagereinheit verknüpft ist.

| Externer Standort | Lagereinheit   | Ergebnis                                         |
| ----------------- | -------------- | ------------------------------------------------ |
| Bar POS           | Barlager       | Getränke werden aus dem Barbestand abgebucht     |
| Restaurant POS    | Hauptküche     | Speisen werden aus dem Küchenbestand abgebucht   |
| Terrace POS       | Terrassenlager | Terrassenverkäufe buchen den Terrassenbestand ab |

Wenn keine Lagereinheit ermittelt werden kann, kann Mathership keine korrekte Bestandsabbuchung erstellen.

## Rezeptverarbeitung

Wenn ein POS-Artikel einem Rezept zugeordnet ist, berechnet Mathership die benötigten Zutatenmengen aus den Rezeptzeilen.

Die Rezeptlogik berücksichtigt:

* Menge pro Portion
* Zuordnungsmenge
* Verkaufte Menge
* Verlustprozentsatz
* Unterrezepte
* Lagerregeln der Zutaten

Wenn ein Rezept ein weiteres Rezept enthält, löst Mathership auch das Unterrezept auf.

| Externer Standort | Lagereinheit   | Ergebnis                                         |
| ----------------- | -------------- | ------------------------------------------------ |
| Bar POS           | Barlager       | Getränke werden aus dem Barbestand abgebucht     |
| Restaurant POS    | Hauptküche     | Speisen werden aus dem Küchenbestand abgebucht   |
| Terrace POS       | Terrassenlager | Terrassenverkäufe buchen den Terrassenbestand ab |

Wenn keine Lagereinheit ermittelt werden kann, kann Mathership keine korrekte Bestandsabbuchung erstellen.

## Rezeptverarbeitung

Wenn ein POS-Artikel einem Rezept zugeordnet ist, berechnet Mathership die benötigten Zutatenmengen aus den Rezeptzeilen.

Die Rezeptlogik berücksichtigt:

* Menge pro Portion
* Zuordnungsmenge
* Verkaufte Menge
* Verlustprozentsatz
* Unterrezepte
* Lagerregeln der Zutaten

Wenn ein Rezept ein weiteres Rezept enthält, löst Mathership auch das Unterrezept auf.

Beispiel:Beispiel:

<Info>
  Burger-Rezept → Burgerbrötchen → Beef Patty → Saucenrezept → Mayonnaise, Ketchup, Gewürze
</Info>

Wenn der Burger verkauft wird, verarbeitet Mathership auch das Saucenrezept.

<Info>
  Burger-Rezept → Burgerbrötchen → Beef Patty → Saucenrezept → Mayonnaise, Ketchup, Gewürze
</Info>

Wenn der Burger verkauft wird, verarbeitet Mathership auch das Saucenrezept.

## VerlustprozentsatzVerlustprozentsatz

Rezeptzeilen können einen Verlust- oder Putzprozentsatz enthalten. Dieser wird verwendet, wenn mehr Rohzutat benötigt wird als die am Ende nutzbare MengeRezeptzeilen können einen Verlust- oder Putzprozentsatz enthalten. Dieser wird verwendet, wenn mehr Rohzutat benötigt wird als die am Ende nutzbare Menge.

| Zutat   | Benötigte nutzbare Menge | Verlustprozentsatz | Bestandsabbuchung |
| ------- | -----------------------: | -----------------: | ----------------: |
| Tomate  |                   1.0 kg |                10% |          1.111 kg |
| Zwiebel |                   1.0 kg |                20% |           1.25 kg |

Wenn der Verlustprozentsatz falsch konfiguriert ist, meldet der Transfer eine `invalid_trim_pct`-Exception.

| Zutat   | Benötigte nutzbare Menge | Verlustprozentsatz | Bestandsabbuchung |
| ------- | -----------------------: | -----------------: | ----------------: |
| Tomate  |                   1.0 kg |                10% |          1.111 kg |
| Zwiebel |                   1.0 kg |                20% |           1.25 kg |

Wenn der Verlustprozentsatz falsch konfiguriert ist, meldet der Transfer eine `invalid_trim_pct`-Exception.

## Rezeptzyklen verhinderRezeptzyklen verhindern

Rezepte sollten weder direkt noch indirekt auf sich selbst verweisenRezepte sollten weder direkt noch indirekt auf sich selbst verweisen.

<Warning>
  Schlechtes Beispiel: Burger-Rezept → Saucenrezept → Burger-Rezept
</Warning>

Dies erzeugt einen Rezeptzyklus. Ein Rezeptzyklus würde zu einer endlosen Auflösung führen, daher stoppt Mathership die Verarbeitung und zeichnet eine `recipe_cycle`-Exception auf.

## Nicht zugeordnete POS-Artikel

<Warning>
  Schlechtes Beispiel: Burger-Rezept → Saucenrezept → Burger-Rezept
</Warning>

Dies erzeugt einen Rezeptzyklus. Ein Rezeptzyklus würde zu einer endlosen Auflösung führen, daher stoppt Mathership die Verarbeitung und zeichnet eine `recipe_cycle`-Exception auf.

## Nicht zugeordnete POS-Artikel

Ein nicht zugeordneter POS-Artikel ist ein verkaufter Artikel, der keine Zuordnung hatEin nicht zugeordneter POS-Artikel ist ein verkaufter Artikel, der keine Zuordnung hat.

| Verkaufte POS-Artikel | Ergebnis                                 |
| --------------------- | ---------------------------------------- |
| Espresso              | Wird verarbeitet, wenn zugeordnet        |
| Cola 0.33 l           | Wird verarbeitet, wenn zugeordnet        |
| Neuer Saisonartikel   | Wird übersprungen, wenn nicht zugeordnet |

Nicht zugeordnete Artikel sind während der Einrichtung üblich. Nutze sie als Arbeitsliste für fehlende Zuordnungen.

| Verkaufte POS-Artikel | Ergebnis                                 |
| --------------------- | ---------------------------------------- |
| Espresso              | Wird verarbeitet, wenn zugeordnet        |
| Cola 0.33 l           | Wird verarbeitet, wenn zugeordnet        |
| Neuer Saisonartikel   | Wird übersprungen, wenn nicht zugeordnet |

Nicht zugeordnete Artikel sind während der Einrichtung üblich. Nutze sie als Arbeitsliste für fehlende Zuordnungen.

Nachdem fehlende Zuordnungen erstellt wurden, verarbeite das betroffene Datum erneut oder führe eine Migration erneut ausNachdem fehlende Zuordnungen erstellt wurden, verarbeite das betroffene Datum erneut oder führe eine Migration erneut aus.

## Häufige Zuordnungsfehler

| Fehler                 | Bedeutung                                                         |
| ---------------------- | ----------------------------------------------------------------- |
| `recipe_not_found`     | Das ausgewählte Rezept existiert nicht                            |
| `ingredient_not_found` | Die ausgewählte Zutat existiert nicht                             |
| `validation_error`     | Erforderliche Zuordnungsdaten fehlen oder sind ungültig           |
| `unauthorized_access`  | Die Zuordnung gehört nicht zum aktuellen Benutzer                 |
| `unmapped_pos_item`    | Ein POS-Artikel wurde verkauft, aber es existiert keine Zuordnung |
| `recipe_cycle`         | Ein Rezept verweist über Rezeptzeilen auf sich selbst             |
| `invalid_trim_pct`     | Eine Rezeptzeile hat einen ungültigen Verlustprozentsatz          |
| `no_issue_storage`     | Es konnte keine Lagereinheit ermittelt werden                     |
| `negative_stock`       | Die Abbuchung würde negativen Bestand erzeugen                    |

## Checkliste für Zuordnungen

## Häufige Zuordnungsfehler

| Fehler                 | Bedeutung                                                         |
| ---------------------- | ----------------------------------------------------------------- |
| `recipe_not_found`     | Das ausgewählte Rezept existiert nicht                            |
| `ingredient_not_found` | Die ausgewählte Zutat existiert nicht                             |
| `validation_error`     | Erforderliche Zuordnungsdaten fehlen oder sind ungültig           |
| `unauthorized_access`  | Die Zuordnung gehört nicht zum aktuellen Benutzer                 |
| `unmapped_pos_item`    | Ein POS-Artikel wurde verkauft, aber es existiert keine Zuordnung |
| `recipe_cycle`         | Ein Rezept verweist über Rezeptzeilen auf sich selbst             |
| `invalid_trim_pct`     | Eine Rezeptzeile hat einen ungültigen Verlustprozentsatz          |
| `no_issue_storage`     | Es konnte keine Lagereinheit ermittelt werden                     |
| `negative_stock`       | Die Abbuchung würde negativen Bestand erzeugen                    |

## Checkliste für Zuordnungen

Prüfe vor der Aktivierung eines POS-Transfers:Prüfe vor der Aktivierung eines POS-Transfers:

* Wichtige POS-Produkte sind synchronisiert

* Jeder relevante Verkaufsartikel ist zugeordnet

* Rezepte enthalten korrekte Zutatenzeilen

* Mengen sind realistisch

* Einheiten sind korrekt

* Lagereinheiten sind verknüpft

* Ein Testtransfer wurde im Bestands-Ledger geprüft

* Wichtige POS-Produkte sind synchronisiert

* Jeder relevante Verkaufsartikel ist zugeordnet

* Rezepte enthalten korrekte Zutatenzeilen

* Mengen sind realistisch

* Einheiten sind korrekt

* Lagereinheiten sind verknüpft

* Ein Testtransfer wurde im Bestands-Ledger geprüft

## Gute ZuordnungsbeispieleGute Zuordnungsbeispiele

**Burger → Burger-Rezept → Brötchen, Patty, Käse, Sauce, SalatBurger → Burger-Rezept → Brötchen, Patty, Käse, Sauce, Salat**

Wenn 3 Burger verkauft werden, berechnet Mathership den Zutatenbedarf für 3 Rezeptportionen und erstellt Bestandsabbuchungen für jede Zutat.Wenn 3 Burger verkauft werden, berechnet Mathership den Zutatenbedarf für 3 Rezeptportionen und erstellt Bestandsabbuchungen für jede Zutat.

## Mengenmultiplikator

## Mengenmultiplikator

Das Mengenfeld ist ein MultiplikatorDas Mengenfeld ist ein Multiplikator.

Bei Zutat-Zuordnungen legt es fest, wie viel von der Zutat pro verkauftem POS-Artikel abgebucht wird.

Bei Zutat-Zuordnungen legt es fest, wie viel von der Zutat pro verkauftem POS-Artikel abgebucht wird.

Bei Rezeptzuordnungen legt es fest, wie viele Rezeptportionen pro verkauftem POS-Artikel verwendet werdBei Rezeptzuordnungen legt es fest, wie viele Rezeptportionen pro verkauftem POS-Artikel verwendet werden.

<Tabs>
  <Tab title="Zutatenmenge">
    **Verkaufte Menge × Zuordnungsmenge = Zutatenabbuchung**

    | Verkauft      | Zuordnungsmenge |  Abbuchung |
    | ------------- | --------------: | ---------: |
    | 3 × Cola      |       1 Flasche | 3 Flaschen |
    | 5 × Espresso  |        0.009 kg |   0.045 kg |
    | 10 × Weinglas |           0.2 l |        2 l |
  </Tab>

  <Tab title="Rezeptmenge">
    **Verkaufte Menge × Zuordnungsmenge = Rezeptportionen**

    | Verkauft          | Zuordnungsmenge | Rezeptportionen |
    | ----------------- | --------------: | --------------: |
    | 2 × Burger        |               1 |     2 Portionen |
    | 1 × Partyplatte   |               4 |     4 Portionen |
    | 3 × Kleiner Salat |             0.5 |   1.5 Portionen |
  </Tab>
</Tabs>

<Tabs>
  <Tab title="Zutatenmenge">
    **Verkaufte Menge × Zuordnungsmenge = Zutatenabbuchung**

    | Verkauft      | Zuordnungsmenge |  Abbuchung |
    | ------------- | --------------: | ---------: |
    | 3 × Cola      |       1 Flasche | 3 Flaschen |
    | 5 × Espresso  |        0.009 kg |   0.045 kg |
    | 10 × Weinglas |           0.2 l |        2 l |
  </Tab>

  <Tab title="Rezeptmenge">
    **Verkaufte Menge × Zuordnungsmenge = Rezeptportionen**

    | Verkauft          | Zuordnungsmenge | Rezeptportionen |
    | ----------------- | --------------: | --------------: |
    | 2 × Burger        |               1 |     2 Portionen |
    | 1 × Partyplatte   |               4 |     4 Portionen |
    | 3 × Kleiner Salat |             0.5 |   1.5 Portionen |
  </Tab>
</Tabs>

Verwende `1`, wenn ein verkaufter POS-Artikel einer Rezeptportion entspricht. Verwende einen anderen Wert, wenn der POS-Artikel mehr oder weniger als eine Rezeptportion darstelltVerwende `1`, wenn ein verkaufter POS-Artikel einer Rezeptportion entspricht. Verwende einen anderen Wert, wenn der POS-Artikel mehr oder weniger als eine Rezeptportion darstellt.

## Subtraktions-Zuordnungen

Zuordnungen können `is_subtraction` verwenden.

## Subtraktions-Zuordnungen

Zuordnungen können `is_subtraction` verwenden.

Im Zuordnungs-Sheet erscheint dies als Toggle **Is subtraction**Im Zuordnungs-Sheet erscheint dies als Toggle **Is subtraction**.

Dies wird für Entfernungs-Modifikatoren verwendet — also Artikel, die anzeigen, dass etwas nicht in einem Verkauf enthalten war.Dies wird für Entfernungs-Modifikatoren verwendet — also Artikel, die anzeigen, dass etwas nicht in einem Verkauf enthalten war.

| POS-Artikel     | Anwendungsfall                                                           |
| --------------- | ------------------------------------------------------------------------ |
| No chips        | Eine Chips-Abbuchung rückgängig machen, wenn keine Chips serviert wurden |
| Refund item     | Eine frühere Abbuchung rückgängig machen                                 |
| Correction item | Eine POS-Menge reduzieren oder ausgleichen                               |

| POS-Artikel     | Anwendungsfall                                                           |
| --------------- | ------------------------------------------------------------------------ |
| No chips        | Eine Chips-Abbuchung rückgängig machen, wenn keine Chips serviert wurden |
| Refund item     | Eine frühere Abbuchung rückgängig machen                                 |
| Correction item | Eine POS-Menge reduzieren oder ausgleichen                               |

Verwende dies nur, wenn sich der POS-Artikel nicht wie eine normale Verkaufsabbuchung verhalten sollVerwende dies nur, wenn sich der POS-Artikel nicht wie eine normale Verkaufsabbuchung verhalten soll.

<Warning>
  Prüfe Subtraktions-Zuordnungen sorgfältig. Eine falsche Subtraktionslogik kann Bestandsbewegungen in die falsche Richtung erzeugen.
</Warning>

## Wo Zuordnungen erstellt werden

Zuordnungen werden direkt aus der Artikel- oder Produktliste innerhalb jeder Integration erstellt.

<Warning>
  Prüfe Subtraktions-Zuordnungen sorgfältig. Eine falsche Subtraktionslogik kann Bestandsbewegungen in die falsche Richtung erzeugen.
</Warning>

## Wo Zuordnungen erstellt werden

Zuordnungen werden direkt aus der Artikel- oder Produktliste innerhalb jeder Integration erstellt.

Es gibt keine separate Verwaltungsseite für ZuordnungeEs gibt keine separate Verwaltungsseite für Zuordnungen.

## Das Zuordnungs-SheetDas Zuordnungs-Sheet

Das Zuordnungs-Sheet öffnet sich als Seitenpanel. Die Kopfzeile zeigt den aktuellen Zuordnungsstatus und Artikeldetails aus dem POS-SystemDas Zuordnungs-Sheet öffnet sich als Seitenpanel. Die Kopfzeile zeigt den aktuellen Zuordnungsstatus und Artikeldetails aus dem POS-System.

| Integration | In der Kopfzeile angezeigte Felder                      |
| ----------- | ------------------------------------------------------- |
| Lightspeed  | Artikelname, Artikel-ID, SKU, Preis                     |
| SIDES       | Produktname, externe ID, Artikelnummer, Typ, Küchenname |

### Formularfelder der Zuordnung

| Feld           | Beschreibung                                                                                   |
| -------------- | ---------------------------------------------------------------------------------------------- |
| Zuordnungstyp  | Umschalten zwischen **Rezept** und **Zutat** — beim Wechsel wird die Zielauswahl zurückgesetzt |
| Ziel           | Zutat oder Rezept suchen und auswählen, dem zugeordnet werden soll                             |
| Menge          | Wie viel Bestand pro verkaufter Einheit betroffen ist — Standard ist `1.0`                     |
| Is subtraction | Toggle für Entfernungs-Modifikatoren — kehrt die Bestandsrichtung um                           |

## Lightspeed-Artikelzuordnungen

Lightspeed-Artikel werden aus Lightspeed K-Series synchronisiert.

| Integration | In der Kopfzeile angezeigte Felder                      |
| ----------- | ------------------------------------------------------- |
| Lightspeed  | Artikelname, Artikel-ID, SKU, Preis                     |
| SIDES       | Produktname, externe ID, Artikelnummer, Typ, Küchenname |

### Formularfelder der Zuordnung

| Feld           | Beschreibung                                                                                   |
| -------------- | ---------------------------------------------------------------------------------------------- |
| Zuordnungstyp  | Umschalten zwischen **Rezept** und **Zutat** — beim Wechsel wird die Zielauswahl zurückgesetzt |
| Ziel           | Zutat oder Rezept suchen und auswählen, dem zugeordnet werden soll                             |
| Menge          | Wie viel Bestand pro verkaufter Einheit betroffen ist — Standard ist `1.0`                     |
| Is subtraction | Toggle für Entfernungs-Modifikatoren — kehrt die Bestandsrichtung um                           |

## Lightspeed-Artikelzuordnungen

Lightspeed-Artikel werden aus Lightspeed K-Series synchronisiert.

Mathership speichert die Zuordnung über den Lightspeed-ArtikelnamMathership speichert die Zuordnung über den Lightspeed-Artikelnamen.

| Lightspeed-Artikel | Zuordnungstyp | Zugeordnet zu         | Menge |
| ------------------ | ------------- | --------------------- | ----: |
| Espresso           | Zutat         | Kaffeebohnen          | 0.009 |
| Cola 0.33 l        | Zutat         | Cola-Flasche          |     1 |
| Classic Burger     | Rezept        | Classic-Burger-Rezept |     1 |

| Lightspeed-Artikel | Zuordnungstyp | Zugeordnet zu         | Menge |
| ------------------ | ------------- | --------------------- | ----: |
| Espresso           | Zutat         | Kaffeebohnen          | 0.009 |
| Cola 0.33 l        | Zutat         | Cola-Flasche          |     1 |
| Classic Burger     | Rezept        | Classic-Burger-Rezept |     1 |

## SIDES-ProduktzuordnungenSIDES-Produktzuordnungen

SIDES-Produkte werden aus der SIDES-Produkt-API synchronisiert.

Zuordnungen werden auf Integrationsebene gespeichert, nicht pro Filiale. Eine Produktzuordnung gilt für alle Filialen derselben Integration.

| SIDES-Produkt | Zuordnungstyp | Zugeordnet zu       | Menge |
| ------------- | ------------- | ------------------- | ----: |
| Cheeseburger  | Rezept        | Cheeseburger-Rezept |     1 |
| Fries         | Rezept        | Pommes-Rezept       |     1 |
| Bottle Water  | Zutat         | Wasserflasche       |     1 |

## Eine Zuordnung bearbeiten

Klicke auf eine bereits zugeordnete Artikelzeile. Das Zuordnungs-Sheet öffnet sich mit den aktuellen Werten vorausgefüllt.

Aktualisiere ein beliebiges Feld und klicke auf **Save changes**.

SIDES-Produkte werden aus der SIDES-Produkt-API synchronisiert.

Zuordnungen werden auf Integrationsebene gespeichert, nicht pro Filiale. Eine Produktzuordnung gilt für alle Filialen derselben Integration.

| SIDES-Produkt | Zuordnungstyp | Zugeordnet zu       | Menge |
| ------------- | ------------- | ------------------- | ----: |
| Cheeseburger  | Rezept        | Cheeseburger-Rezept |     1 |
| Fries         | Rezept        | Pommes-Rezept       |     1 |
| Bottle Water  | Zutat         | Wasserflasche       |     1 |

## Eine Zuordnung bearbeiten

Klicke auf eine bereits zugeordnete Artikelzeile. Das Zuordnungs-Sheet öffnet sich mit den aktuellen Werten vorausgefüllt.

Aktualisiere ein beliebiges Feld und klicke auf **Save changes**.

## Eine Zuordnung löschenEine Zuordnung löschen

Klicke auf die zugeordnete Artikelzeile und dann unten links im Sheet auf **Delete mapping**.

Bestätige die Löschung im Dialog.

Klicke auf die zugeordnete Artikelzeile und dann unten links im Sheet auf **Delete mapping**.

Bestätige die Löschung im Dialog.

Nach dem Löschen wirken sich zukünftige Verkäufe dieses Artikels nicht mehr auf den Bestand aus, bis er erneut zugeordnet wirdNach dem Löschen wirken sich zukünftige Verkäufe dieses Artikels nicht mehr auf den Bestand aus, bis er erneut zugeordnet wird.

<Warning>
  Das Löschen einer Zuordnung macht vergangene Bestandsbewegungen nicht rückgängig. Um frühere Buchungen zu korrigieren, führe den betroffenen Transfer erneut aus oder erstelle korrigierende Bestandsbewegungen.
</Warning>

Prüfe vor dem Löschen einer Zuordnung, ob der POS-Artikel weiterhin verkauft wird.

<Warning>
  Das Löschen einer Zuordnung macht vergangene Bestandsbewegungen nicht rückgängig. Um frühere Buchungen zu korrigieren, führe den betroffenen Transfer erneut aus oder erstelle korrigierende Bestandsbewegungen.
</Warning>

Prüfe vor dem Löschen einer Zuordnung, ob der POS-Artikel weiterhin verkauft wird.

Wenn er weiterhin aktiv ist, führt das Löschen der Zuordnung dazu, dass zukünftige Verkäufe nicht zugeordnet sind.Wenn er weiterhin aktiv ist, führt das Löschen der Zuordnung dazu, dass zukünftige Verkäufe nicht zugeordnet sind.

## Zuordnungsstatus in der Artikelliste

## Zuordnungsstatus in der Artikelliste

| StatusStatus                     | BedeutungBedeutung                                                                                                                               |
| -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
| ZugeordnetZugeordnet             | Der Artikel hat eine aktive ZuordnungDer Artikel hat eine aktive Zuordnung                                                                       |
| Nicht zugeordnetNicht zugeordnet | Der Artikel hat keine Zuordnung und wirkt sich nicht auf den Bestand ausDer Artikel hat keine Zuordnung und wirkt sich nicht auf den Bestand aus |

Die Spalte **Mapped to** zeigt den Namen der Zielzutat oder des Zielrezepts, die Menge und, falls zutreffend, einen Subtraktionsindikator.

Verwende den Filter **Mapped** in der Toolbar, um nur nicht zugeordnete Artikel anzuzeigen.

## Auswahl der Lagereinheit

Die Zuordnung definiert, was abgebucht werden soll. Die Lagereinheit definiert, wo es abgebucht werden soll.

Je nach Integration kommt die Lagereinheit aus:

* Dem verknüpften Lightspeed-Standort
* Der verknüpften SIDES-Filiale
* Dem Ausgabelager des Rezepts
* Dem Ausgabelager der Zutat
* Der Fallback-Logik für Lagereinheiten

Stelle bei Lightspeed und SIDES sicher, dass der Standort oder die Filiale vor der Aktivierung oder dem Transfer mit der richtigen Lagereinheit verknüpft ist.

| Externer Standort | Lagereinheit   | Ergebnis                                         |
| ----------------- | -------------- | ------------------------------------------------ |
| Bar POS           | Barlager       | Getränke werden aus dem Barbestand abgebucht     |
| Restaurant POS    | Hauptküche     | Speisen werden aus dem Küchenbestand abgebucht   |
| Terrace POS       | Terrassenlager | Terrassenverkäufe buchen den Terrassenbestand ab |

Die Spalte **Mapped to** zeigt den Namen der Zielzutat oder des Zielrezepts, die Menge und, falls zutreffend, einen Subtraktionsindikator.

Verwende den Filter **Mapped** in der Toolbar, um nur nicht zugeordnete Artikel anzuzeigen.

## Auswahl der Lagereinheit

Die Zuordnung definiert, was abgebucht werden soll. Die Lagereinheit definiert, wo es abgebucht werden soll.

Je nach Integration kommt die Lagereinheit aus:

* Dem verknüpften Lightspeed-Standort
* Der verknüpften SIDES-Filiale
* Dem Ausgabelager des Rezepts
* Dem Ausgabelager der Zutat
* Der Fallback-Logik für Lagereinheiten

Stelle bei Lightspeed und SIDES sicher, dass der Standort oder die Filiale vor der Aktivierung oder dem Transfer mit der richtigen Lagereinheit verknüpft ist.

| Externer Standort | Lagereinheit   | Ergebnis                                         |
| ----------------- | -------------- | ------------------------------------------------ |
| Bar POS           | Barlager       | Getränke werden aus dem Barbestand abgebucht     |
| Restaurant POS    | Hauptküche     | Speisen werden aus dem Küchenbestand abgebucht   |
| Terrace POS       | Terrassenlager | Terrassenverkäufe buchen den Terrassenbestand ab |

Wenn keine Lagereinheit ermittelt werden kann, kann Mathership keine korrekte Bestandsabbuchung erstellWenn keine Lagereinheit ermittelt werden kann, kann Mathership keine korrekte Bestandsabbuchung erstellen.

## Rezeptverarbeitung

Wenn ein POS-Artikel einem Rezept zugeordnet ist, berechnet Mathership die benötigten Zutatenmengen aus den Rezeptzeilen.

Die Rezeptlogik berücksichtigt:

* Menge pro Portion
* Zuordnungsmenge
* Verkaufte Menge
* Verlustprozentsatz
* Unterrezepte
* Lagerregeln der Zutaten

Wenn ein Rezept ein weiteres Rezept enthält, löst Mathership auch das Unterrezept auf.

## Rezeptverarbeitung

Wenn ein POS-Artikel einem Rezept zugeordnet ist, berechnet Mathership die benötigten Zutatenmengen aus den Rezeptzeilen.

Die Rezeptlogik berücksichtigt:

* Menge pro Portion
* Zuordnungsmenge
* Verkaufte Menge
* Verlustprozentsatz
* Unterrezepte
* Lagerregeln der Zutaten

Wenn ein Rezept ein weiteres Rezept enthält, löst Mathership auch das Unterrezept auf.

Beispiel:Beispiel:

<Info>
  Burger-Rezept → Burgerbrötchen → Beef Patty → Saucenrezept → Mayonnaise, Ketchup, Gewürze
</Info>

Wenn der Burger verkauft wird, verarbeitet Mathership auch das Saucenrezept.

## Verlustprozentsatz

Rezeptzeilen können einen Verlust- oder Putzprozentsatz enthalten. Dieser wird verwendet, wenn mehr Rohzutat benötigt wird als die am Ende nutzbare Menge.

| Zutat   | Benötigte nutzbare Menge | Verlustprozentsatz | Bestandsabbuchung |
| ------- | -----------------------: | -----------------: | ----------------: |
| Tomate  |                   1.0 kg |                10% |          1.111 kg |
| Zwiebel |                   1.0 kg |                20% |           1.25 kg |

Wenn der Verlustprozentsatz falsch konfiguriert ist, meldet der Transfer eine `invalid_trim_pct`-Exception.

## Rezeptzyklen verhindern

Rezepte sollten weder direkt noch indirekt auf sich selbst verweisen.

<Warning>
  Schlechtes Beispiel: Burger-Rezept → Saucenrezept → Burger-Rezept
</Warning>

Dies erzeugt einen Rezeptzyklus. Ein Rezeptzyklus würde zu einer endlosen Auflösung führen, daher stoppt Mathership die Verarbeitung und zeichnet eine `recipe_cycle`-Exception auf.

## Nicht zugeordnete POS-Artikel

Ein nicht zugeordneter POS-Artikel ist ein verkaufter Artikel, der keine Zuordnung hat.

| Verkaufte POS-Artikel | Ergebnis                                 |
| --------------------- | ---------------------------------------- |
| Espresso              | Wird verarbeitet, wenn zugeordnet        |
| Cola 0.33 l           | Wird verarbeitet, wenn zugeordnet        |
| Neuer Saisonartikel   | Wird übersprungen, wenn nicht zugeordnet |

Nicht zugeordnete Artikel sind während der Einrichtung üblich. Nutze sie als Arbeitsliste für fehlende Zuordnungen.

Nachdem fehlende Zuordnungen erstellt wurden, verarbeite das betroffene Datum erneut oder führe eine Migration erneut aus.

## Häufige Zuordnungsfehler

| Fehler                 | Bedeutung                                                         |
| ---------------------- | ----------------------------------------------------------------- |
| `recipe_not_found`     | Das ausgewählte Rezept existiert nicht                            |
| `ingredient_not_found` | Die ausgewählte Zutat existiert nicht                             |
| `validation_error`     | Erforderliche Zuordnungsdaten fehlen oder sind ungültig           |
| `unauthorized_access`  | Die Zuordnung gehört nicht zum aktuellen Benutzer                 |
| `unmapped_pos_item`    | Ein POS-Artikel wurde verkauft, aber es existiert keine Zuordnung |
| `recipe_cycle`         | Ein Rezept verweist über Rezeptzeilen auf sich selbst             |
| `invalid_trim_pct`     | Eine Rezeptzeile hat einen ungültigen Verlustprozentsatz          |
| `no_issue_storage`     | Es konnte keine Lagereinheit ermittelt werden                     |
| `negative_stock`       | Die Abbuchung würde negativen Bestand erzeugen                    |

## Checkliste für Zuordnungen

Prüfe vor der Aktivierung eines POS-Transfers:

* Wichtige POS-Produkte sind synchronisiert
* Jeder relevante Verkaufsartikel ist zugeordnet
* Rezepte enthalten korrekte Zutatenzeilen
* Mengen sind realistisch
* Einheiten sind korrekt
* Lagereinheiten sind verknüpft
* Ein Testtransfer wurde im Bestands-Ledger geprüft

## Gute Zuordnungsbeispiele

| POS-Artikel | Gute Zuordnung                   | Warum                                           |
| ----------- | -------------------------------- | ----------------------------------------------- |
| Cola 0.33 l | Zutat: Cola-Flasche, Menge 1     | Einfacher verpackter Artikel                    |
| Espresso    | Zutat: Kaffeebohnen, Menge 0.009 | Direkte Zutatenabbuchung                        |
| Burger      | Rezept: Burger-Rezept, Menge 1   | Vorbereitetes Gericht mit mehreren Zutaten      |
| Partyplatte | Rezept: Platten-Rezept, Menge 4  | Ein Verkauf entspricht mehreren Rezeptportionen |

## Schlechte Zuordnungsbeispiele

| Problem                                             | Warum es riskant ist                                        |
| --------------------------------------------------- | ----------------------------------------------------------- |
| Jedes Gericht direkt einer einzelnen Zutat zuordnen | Rezeptzutaten fehlen dann                                   |
| Unklare POS-Namen verwenden                         | Zuordnungen sind schwer zu pflegen                          |
| Falsche Mengenfaktoren verwenden                    | Bestandsabbuchungen werden zu hoch oder zu niedrig          |
| Keine Lagereinheit verknüpft                        | Der Transfer kann nicht vom richtigen Ort abbuchen          |
| Rezepte ohne Zutatenzeilen                          | Rezeptverkäufe erzeugen keine sinnvollen Bestandsbewegungen |

## Zuordnungen aktualisieren

Zuordnungen können jederzeit geändert werden. Nach Änderungen an Zuordnungen musst du möglicherweise historische Daten erneut verarbeiten.

<Tabs>
  <Tab title="Lightspeed">
    * Verwende **Manual Transfer** für ein Datum
    * Verwende **Re-run Migration** für einen größeren historischen Zeitraum
  </Tab>

  <Tab title="SIDES">
    * Verwende **Manual Transfer** für ein Datum
    * Verwende **Re-run Migration**, wenn historische Belegpositionen erneut verarbeitet werden sollen
  </Tab>
</Tabs>

## Eine Zuordnung testen

So testest du eine Zuordnung:

<Steps>
  <Step title="POS-Artikel auswählen">
    Wähle einen POS-Artikel mit bekannten Verkäufen aus.
  </Step>

  <Step title="Bestätigen, dass die Zuordnung existiert">
    Bestätige, dass der POS-Artikel zugeordnet ist.
  </Step>

  <Step title="Ziel prüfen">
    Bestätige, dass die zugeordnete Zutat oder das zugeordnete Rezept korrekt ist.
  </Step>

  <Step title="Mengenfaktor prüfen">
    Bestätige, dass der Mengenfaktor korrekt ist.
  </Step>

  <Step title="Manuellen Transfer ausführen">
    Führe einen manuellen Transfer für ein Datum aus.
  </Step>

  <Step title="Bestands-Ledger öffnen">
    Prüfe die erstellte Bestandsbewegung.
  </Step>

  <Step title="Ergebnis vergleichen">
    Vergleiche die abgebuchte Menge mit der erwarteten Menge.
  </Step>
</Steps>

| Testartikel     | Erwartetes Ergebnis                     |
| --------------- | --------------------------------------- |
| 10 × Espresso   | 0.09 kg Kaffeebohnen abgebucht          |
| 5 × Cola 0.33 l | 5 Flaschen abgebucht                    |
| 2 × Burger      | Zutaten für 2 Burgerportionen abgebucht |

## Best Practices

<CardGroup cols={2}>
  <Card title="Mit Topsellern beginnen" icon="ranking-star">
    Beginne mit den am häufigsten verkauften POS-Artikeln.
  </Card>

  <Card title="Rezepte für Gerichte verwenden" icon="utensils">
    Verwende Rezepte für vorbereitete Gerichte, Getränke, Menüs und Artikel mit mehreren Zutaten.
  </Card>

  <Card title="Zutaten für einfache Artikel verwenden" icon="carrot">
    Verwende direkte Zutat-Zuordnungen für einfache verpackte Artikel.
  </Card>

  <Card title="POS-Namen stabil halten" icon="tag">
    Änderungen an POS-Artikelnamen können Zuordnungen unterbrechen.
  </Card>

  <Card title="Mengen sorgfältig prüfen" icon="calculator">
    Falsche Mengenfaktoren machen Bestandsabbuchungen zu hoch oder zu niedrig.
  </Card>

  <Card title="Vor Automatisierung testen" icon="clipboard-check">
    Teste ein Datum manuell, bevor du Automatisierung aktivierst.
  </Card>

  <Card title="Nicht zugeordnete Artikel prüfen" icon="magnifying-glass">
    Prüfe nicht zugeordnete Artikel nach dem ersten Transfer.
  </Card>

  <Card title="Ledger prüfen" icon="list-check">
    Prüfe den Bestands-Ledger nach jeder größeren Änderung an Zuordnungen.
  </Card>
</CardGroup>

<Warning>
  Lösche Zuordnungen nur, wenn der POS-Artikel nicht mehr verarbeitet werden soll.
</Warning>

## Verwandte Seiten

<CardGroup cols={2}>
  <Card title="Lightspeed K-Series" icon="bolt" href="/en/restaurants/integrations/lightspeed">
    Verbinde Lightspeed und verarbeite POS-Verkäufe.
  </Card>

  <Card title="Sides POS" icon="plug" href="/en/restaurants/integrations/sides-pos">
    Verbinde Sides POS und synchronisiere Filialen und Produkte.
  </Card>

  <Card title="CSV-Upload" icon="file-csv" href="/en/restaurants/integrations/pos-csv-upload">
    Lade POS-Verkaufsdaten aus CSV-Dateien hoch.
  </Card>

  <Card title="Bestands-Ledger" icon="list-check" href="/en/restaurants/inventory/inventory-ledger">
    Prüfe Bestandsbewegungen, die aus POS-Transfers erstellt wurden.
  </Card>
</CardGroup>

## Schlechte Zuordnungsbeispiele

| Problem                                             | Warum es riskant ist                                        |
| --------------------------------------------------- | ----------------------------------------------------------- |
| Jedes Gericht direkt einer einzelnen Zutat zuordnen | Rezeptzutaten fehlen dann                                   |
| Unklare POS-Namen verwenden                         | Zuordnungen sind schwer zu pflegen                          |
| Falsche Mengenfaktoren verwenden                    | Bestandsabbuchungen werden zu hoch oder zu niedrig          |
| Keine Lagereinheit verknüpft                        | Der Transfer kann nicht vom richtigen Ort abbuchen          |
| Rezepte ohne Zutatenzeilen                          | Rezeptverkäufe erzeugen keine sinnvollen Bestandsbewegungen |

## Zuordnungen aktualisieren

Zuordnungen können jederzeit geändert werden. Nach Änderungen an Zuordnungen musst du möglicherweise historische Daten erneut verarbeiten.

<Tabs>
  <Tab title="Lightspeed">
    * Verwende **Manual Transfer** für ein Datum
    * Verwende **Re-run Migration** für einen größeren historischen Zeitraum
  </Tab>

  <Tab title="SIDES">
    * Verwende **Manual Transfer** für ein Datum
    * Verwende **Re-run Migration**, wenn historische Belegpositionen erneut verarbeitet werden sollen
  </Tab>
</Tabs>

## Eine Zuordnung testen

<Steps>
  <Step title="POS-Artikel auswählen">
    Wähle einen POS-Artikel mit bekannten Verkäufen aus.
  </Step>

  <Step title="Bestätigen, dass die Zuordnung existiert">
    Bestätige, dass der POS-Artikel zugeordnet ist.
  </Step>

  <Step title="Ziel prüfen">
    Bestätige, dass die zugeordnete Zutat oder das zugeordnete Rezept korrekt ist.
  </Step>

  <Step title="Mengenfaktor prüfen">
    Bestätige, dass der Mengenfaktor korrekt ist.
  </Step>

  <Step title="Manuellen Transfer ausführen">
    Führe einen manuellen Transfer für ein Datum aus.
  </Step>

  <Step title="Bestands-Ledger öffnen">
    Prüfe die erstellte Bestandsbewegung.
  </Step>

  <Step title="Ergebnis vergleichen">
    Vergleiche die abgebuchte Menge mit der erwarteten Menge.
  </Step>
</Steps>

<CardGroup cols={2}>
  <Card title="Mit Topsellern beginnen" icon="ranking-star">
    Beginne mit den am häufigsten verkauften POS-Artikeln.
  </Card>

  <Card title="Rezepte für Gerichte verwenden" icon="utensils">
    Verwende Rezepte für vorbereitete Gerichte, Getränke, Menüs und Artikel mit mehreren Zutaten.
  </Card>

  <Card title="Zutaten für einfache Artikel verwenden" icon="carrot">
    Verwende direkte Zutat-Zuordnungen für einfache verpackte Artikel.
  </Card>

  <Card title="POS-Namen stabil halten" icon="tag">
    Änderungen an POS-Artikelnamen können Zuordnungen unterbrechen.
  </Card>

  <Card title="Mengen sorgfältig prüfen" icon="calculator">
    Falsche Mengenfaktoren machen Bestandsabbuchungen zu hoch oder zu niedrig.
  </Card>

  <Card title="Vor Automatisierung testen" icon="clipboard-check">
    Teste ein Datum manuell, bevor du Automatisierung aktivierst.
  </Card>

  <Card title="Nicht zugeordnete Artikel prüfen" icon="magnifying-glass">
    Prüfe nicht zugeordnete Artikel nach dem ersten Transfer.
  </Card>

  <Card title="Ledger prüfen" icon="list-check">
    Prüfe den Bestands-Ledger nach jeder größeren Änderung an Zuordnungen.
  </Card>
</CardGroup>

<Warning>
  Lösche Zuordnungen nur, wenn der POS-Artikel nicht mehr verarbeitet werden soll.
</Warning>

**Burger → Burger-Rezept → Brötchen, Patty, Käse, Sauce, Salat**

Wenn 3 Burger verkauft werden, berechnet Mathership den Zutatenbedarf für 3 Rezeptportionen und erstellt Bestandsabbuchungen für jede Zutat.

## Mengenmultiplikator

Das Mengenfeld ist ein Multiplikator.

Bei Zutat-Zuordnungen legt es fest, wie viel von der Zutat pro verkauftem POS-Artikel abgebucht wird.

Bei Rezeptzuordnungen legt es fest, wie viele Rezeptportionen pro verkauftem POS-Artikel verwendet werden.

<Tabs>
  <Tab title="Zutatenmenge">
    **Verkaufte Menge × Zuordnungsmenge = Zutatenabbuchung**

    | Verkauft      | Zuordnungsmenge |  Abbuchung |
    | ------------- | --------------: | ---------: |
    | 3 × Cola      |       1 Flasche | 3 Flaschen |
    | 5 × Espresso  |        0.009 kg |   0.045 kg |
    | 10 × Weinglas |           0.2 l |        2 l |
  </Tab>

  <Tab title="Rezeptmenge">
    **Verkaufte Menge × Zuordnungsmenge = Rezeptportionen**

    | Verkauft          | Zuordnungsmenge | Rezeptportionen |
    | ----------------- | --------------: | --------------: |
    | 2 × Burger        |               1 |     2 Portionen |
    | 1 × Partyplatte   |               4 |     4 Portionen |
    | 3 × Kleiner Salat |             0.5 |   1.5 Portionen |
  </Tab>
</Tabs>

Verwende `1`, wenn ein verkaufter POS-Artikel einer Rezeptportion entspricht. Verwende einen anderen Wert, wenn der POS-Artikel mehr oder weniger als eine Rezeptportion darstellt.

## Subtraktions-Zuordnungen

Zuordnungen können `is_subtraction` verwenden.

Im Zuordnungs-Sheet erscheint dies als Toggle **Is subtraction**.

Dies wird für Entfernungs-Modifikatoren verwendet — also Artikel, die anzeigen, dass etwas nicht in einem Verkauf enthalten war.

| POS-Artikel     | Anwendungsfall                                                           |
| --------------- | ------------------------------------------------------------------------ |
| No chips        | Eine Chips-Abbuchung rückgängig machen, wenn keine Chips serviert wurden |
| Refund item     | Eine frühere Abbuchung rückgängig machen                                 |
| Correction item | Eine POS-Menge reduzieren oder ausgleichen                               |

Verwende dies nur, wenn sich der POS-Artikel nicht wie eine normale Verkaufsabbuchung verhalten soll.

<Warning>
  Prüfe Subtraktions-Zuordnungen sorgfältig. Eine falsche Subtraktionslogik kann Bestandsbewegungen in die falsche Richtung erzeugen.
</Warning>

## Wo Zuordnungen erstellt werden

Zuordnungen werden direkt aus der Artikel- oder Produktliste innerhalb jeder Integration erstellt.

Es gibt keine separate Verwaltungsseite für Zuordnungen.

## Das Zuordnungs-Sheet

Das Zuordnungs-Sheet öffnet sich als Seitenpanel. Die Kopfzeile zeigt den aktuellen Zuordnungsstatus und Artikeldetails aus dem POS-System.

| Integration | In der Kopfzeile angezeigte Felder                      |
| ----------- | ------------------------------------------------------- |
| Lightspeed  | Artikelname, Artikel-ID, SKU, Preis                     |
| SIDES       | Produktname, externe ID, Artikelnummer, Typ, Küchenname |

### Formularfelder der Zuordnung

| Feld           | Beschreibung                                                                                   |
| -------------- | ---------------------------------------------------------------------------------------------- |
| Zuordnungstyp  | Umschalten zwischen **Rezept** und **Zutat** — beim Wechsel wird die Zielauswahl zurückgesetzt |
| Ziel           | Zutat oder Rezept suchen und auswählen, dem zugeordnet werden soll                             |
| Menge          | Wie viel Bestand pro verkaufter Einheit betroffen ist — Standard ist `1.0`                     |
| Is subtraction | Toggle für Entfernungs-Modifikatoren — kehrt die Bestandsrichtung um                           |

## Lightspeed-Artikelzuordnungen

Lightspeed-Artikel werden aus Lightspeed K-Series synchronisiert.

Mathership speichert die Zuordnung über den Lightspeed-Artikelnamen.

| Lightspeed-Artikel | Zuordnungstyp | Zugeordnet zu         | Menge |
| ------------------ | ------------- | --------------------- | ----: |
| Espresso           | Zutat         | Kaffeebohnen          | 0.009 |
| Cola 0.33 l        | Zutat         | Cola-Flasche          |     1 |
| Classic Burger     | Rezept        | Classic-Burger-Rezept |     1 |

## SIDES-Produktzuordnungen

SIDES-Produkte werden aus der SIDES-Produkt-API synchronisiert.

Zuordnungen werden auf Integrationsebene gespeichert, nicht pro Filiale. Eine Produktzuordnung gilt für alle Filialen derselben Integration.

| SIDES-Produkt | Zuordnungstyp | Zugeordnet zu       | Menge |
| ------------- | ------------- | ------------------- | ----: |
| Cheeseburger  | Rezept        | Cheeseburger-Rezept |     1 |
| Fries         | Rezept        | Pommes-Rezept       |     1 |
| Bottle Water  | Zutat         | Wasserflasche       |     1 |

## Eine Zuordnung bearbeiten

Klicke auf eine bereits zugeordnete Artikelzeile. Das Zuordnungs-Sheet öffnet sich mit den aktuellen Werten vorausgefüllt.

Aktualisiere ein beliebiges Feld und klicke auf **Save changes**.

## Eine Zuordnung löschen

Klicke auf die zugeordnete Artikelzeile und dann unten links im Sheet auf **Delete mapping**.

Bestätige die Löschung im Dialog.

Nach dem Löschen wirken sich zukünftige Verkäufe dieses Artikels nicht mehr auf den Bestand aus, bis er erneut zugeordnet wird.

<Warning>
  Das Löschen einer Zuordnung macht vergangene Bestandsbewegungen nicht rückgängig. Um frühere Buchungen zu korrigieren, führe den betroffenen Transfer erneut aus oder erstelle korrigierende Bestandsbewegungen.
</Warning>

Prüfe vor dem Löschen einer Zuordnung, ob der POS-Artikel weiterhin verkauft wird.

Wenn er weiterhin aktiv ist, führt das Löschen der Zuordnung dazu, dass zukünftige Verkäufe nicht zugeordnet sind.

## Zuordnungsstatus in der Artikelliste

| Status           | Bedeutung                                                                |
| ---------------- | ------------------------------------------------------------------------ |
| Zugeordnet       | Der Artikel hat eine aktive Zuordnung                                    |
| Nicht zugeordnet | Der Artikel hat keine Zuordnung und wirkt sich nicht auf den Bestand aus |

Die Spalte **Mapped to** zeigt den Namen der Zielzutat oder des Zielrezepts, die Menge und, falls zutreffend, einen Subtraktionsindikator.

Verwende den Filter **Mapped** in der Toolbar, um nur nicht zugeordnete Artikel anzuzeigen.

## Auswahl der Lagereinheit

Die Zuordnung definiert, was abgebucht werden soll. Die Lagereinheit definiert, wo es abgebucht werden soll.

Je nach Integration kommt die Lagereinheit aus:

* Dem verknüpften Lightspeed-Standort
* Der verknüpften SIDES-Filiale
* Dem Ausgabelager des Rezepts
* Dem Ausgabelager der Zutat
* Der Fallback-Logik für Lagereinheiten

Stelle bei Lightspeed und SIDES sicher, dass der Standort oder die Filiale vor der Aktivierung oder dem Transfer mit der richtigen Lagereinheit verknüpft ist.

| Externer Standort | Lagereinheit   | Ergebnis                                         |
| ----------------- | -------------- | ------------------------------------------------ |
| Bar POS           | Barlager       | Getränke werden aus dem Barbestand abgebucht     |
| Restaurant POS    | Hauptküche     | Speisen werden aus dem Küchenbestand abgebucht   |
| Terrace POS       | Terrassenlager | Terrassenverkäufe buchen den Terrassenbestand ab |

Wenn keine Lagereinheit ermittelt werden kann, kann Mathership keine korrekte Bestandsabbuchung erstellen.

## Rezeptverarbeitung

Wenn ein POS-Artikel einem Rezept zugeordnet ist, berechnet Mathership die benötigten Zutatenmengen aus den Rezeptzeilen.

Die Rezeptlogik berücksichtigt:

* Menge pro Portion
* Zuordnungsmenge
* Verkaufte Menge
* Verlustprozentsatz
* Unterrezepte
* Lagerregeln der Zutaten

Wenn ein Rezept ein weiteres Rezept enthält, löst Mathership auch das Unterrezept auf.

Beispiel:

<Info>
  Burger-Rezept → Burgerbrötchen → Beef Patty → Saucenrezept → Mayonnaise, Ketchup, Gewürze
</Info>

Wenn der Burger verkauft wird, verarbeitet Mathership auch das Saucenrezept.

## Verlustprozentsatz

Rezeptzeilen können einen Verlust- oder Putzprozentsatz enthalten. Dieser wird verwendet, wenn mehr Rohzutat benötigt wird als die am Ende nutzbare Menge.

| Zutat   | Benötigte nutzbare Menge | Verlustprozentsatz | Bestandsabbuchung |
| ------- | -----------------------: | -----------------: | ----------------: |
| Tomate  |                   1.0 kg |                10% |          1.111 kg |
| Zwiebel |                   1.0 kg |                20% |           1.25 kg |

Wenn der Verlustprozentsatz falsch konfiguriert ist, meldet der Transfer eine `invalid_trim_pct`-Exception.

## Rezeptzyklen verhindern

Rezepte sollten weder direkt noch indirekt auf sich selbst verweisen.

<Warning>
  Schlechtes Beispiel: Burger-Rezept → Saucenrezept → Burger-Rezept
</Warning>

Dies erzeugt einen Rezeptzyklus. Ein Rezeptzyklus würde zu einer endlosen Auflösung führen, daher stoppt Mathership die Verarbeitung und zeichnet eine `recipe_cycle`-Exception auf.

## Nicht zugeordnete POS-Artikel

Ein nicht zugeordneter POS-Artikel ist ein verkaufter Artikel, der keine Zuordnung hat.

| Verkaufte POS-Artikel | Ergebnis                                 |
| --------------------- | ---------------------------------------- |
| Espresso              | Wird verarbeitet, wenn zugeordnet        |
| Cola 0.33 l           | Wird verarbeitet, wenn zugeordnet        |
| Neuer Saisonartikel   | Wird übersprungen, wenn nicht zugeordnet |

Nicht zugeordnete Artikel sind während der Einrichtung üblich. Nutze sie als Arbeitsliste für fehlende Zuordnungen.

Nachdem fehlende Zuordnungen erstellt wurden, verarbeite das betroffene Datum erneut oder führe eine Migration erneut aus.

## Häufige Zuordnungsfehler

| Fehler                 | Bedeutung                                                         |
| ---------------------- | ----------------------------------------------------------------- |
| `recipe_not_found`     | Das ausgewählte Rezept existiert nicht                            |
| `ingredient_not_found` | Die ausgewählte Zutat existiert nicht                             |
| `validation_error`     | Erforderliche Zuordnungsdaten fehlen oder sind ungültig           |
| `unauthorized_access`  | Die Zuordnung gehört nicht zum aktuellen Benutzer                 |
| `unmapped_pos_item`    | Ein POS-Artikel wurde verkauft, aber es existiert keine Zuordnung |
| `recipe_cycle`         | Ein Rezept verweist über Rezeptzeilen auf sich selbst             |
| `invalid_trim_pct`     | Eine Rezeptzeile hat einen ungültigen Verlustprozentsatz          |
| `no_issue_storage`     | Es konnte keine Lagereinheit ermittelt werden                     |
| `negative_stock`       | Die Abbuchung würde negativen Bestand erzeugen                    |

## Checkliste für Zuordnungen

Prüfe vor der Aktivierung eines POS-Transfers:

* Wichtige POS-Produkte sind synchronisiert
* Jeder relevante Verkaufsartikel ist zugeordnet
* Rezepte enthalten korrekte Zutatenzeilen
* Mengen sind realistisch
* Einheiten sind korrekt
* Lagereinheiten sind verknüpft
* Ein Testtransfer wurde im Bestands-Ledger geprüft

## Gute Zuordnungsbeispiele

**Burger → Burger-Rezept → Brötchen, Patty, Käse, Sauce, Salat**

Wenn 3 Burger verkauft werden, berechnet Mathership den Zutatenbedarf für 3 Rezeptportionen und erstellt Bestandsabbuchungen für jede Zutat.

## Mengenmultiplikator

Das Mengenfeld ist ein Multiplikator.

Bei Zutat-Zuordnungen legt es fest, wie viel von der Zutat pro verkauftem POS-Artikel abgebucht wird.

Bei Rezeptzuordnungen legt es fest, wie viele Rezeptportionen pro verkauftem POS-Artikel verwendet werden.

<Tabs>
  <Tab title="Zutatenmenge">
    **Verkaufte Menge × Zuordnungsmenge = Zutatenabbuchung**

    | Verkauft      | Zuordnungsmenge |  Abbuchung |
    | ------------- | --------------: | ---------: |
    | 3 × Cola      |       1 Flasche | 3 Flaschen |
    | 5 × Espresso  |        0.009 kg |   0.045 kg |
    | 10 × Weinglas |           0.2 l |        2 l |
  </Tab>

  <Tab title="Rezeptmenge">
    **Verkaufte Menge × Zuordnungsmenge = Rezeptportionen**

    | Verkauft          | Zuordnungsmenge | Rezeptportionen |
    | ----------------- | --------------: | --------------: |
    | 2 × Burger        |               1 |     2 Portionen |
    | 1 × Partyplatte   |               4 |     4 Portionen |
    | 3 × Kleiner Salat |             0.5 |   1.5 Portionen |
  </Tab>
</Tabs>

Verwende `1`, wenn ein verkaufter POS-Artikel einer Rezeptportion entspricht. Verwende einen anderen Wert, wenn der POS-Artikel mehr oder weniger als eine Rezeptportion darstellt.

## Subtraktions-Zuordnungen

Zuordnungen können `is_subtraction` verwenden.

Im Zuordnungs-Sheet erscheint dies als Toggle **Is subtraction**.

Dies wird für Entfernungs-Modifikatoren verwendet — also Artikel, die anzeigen, dass etwas nicht in einem Verkauf enthalten war.

| POS-Artikel     | Anwendungsfall                                                           |
| --------------- | ------------------------------------------------------------------------ |
| No chips        | Eine Chips-Abbuchung rückgängig machen, wenn keine Chips serviert wurden |
| Refund item     | Eine frühere Abbuchung rückgängig machen                                 |
| Correction item | Eine POS-Menge reduzieren oder ausgleichen                               |

Verwende dies nur, wenn sich der POS-Artikel nicht wie eine normale Verkaufsabbuchung verhalten soll.

<Warning>
  Prüfe Subtraktions-Zuordnungen sorgfältig. Eine falsche Subtraktionslogik kann Bestandsbewegungen in die falsche Richtung erzeugen.
</Warning>

## Wo Zuordnungen erstellt werden

Zuordnungen werden direkt aus der Artikel- oder Produktliste innerhalb jeder Integration erstellt.

Es gibt keine separate Verwaltungsseite für Zuordnungen.

## Das Zuordnungs-Sheet

Das Zuordnungs-Sheet öffnet sich als Seitenpanel. Die Kopfzeile zeigt den aktuellen Zuordnungsstatus und Artikeldetails aus dem POS-System.

| Integration | In der Kopfzeile angezeigte Felder                      |
| ----------- | ------------------------------------------------------- |
| Lightspeed  | Artikelname, Artikel-ID, SKU, Preis                     |
| SIDES       | Produktname, externe ID, Artikelnummer, Typ, Küchenname |

### Formularfelder der Zuordnung

| Feld           | Beschreibung                                                                                   |
| -------------- | ---------------------------------------------------------------------------------------------- |
| Zuordnungstyp  | Umschalten zwischen **Rezept** und **Zutat** — beim Wechsel wird die Zielauswahl zurückgesetzt |
| Ziel           | Zutat oder Rezept suchen und auswählen, dem zugeordnet werden soll                             |
| Menge          | Wie viel Bestand pro verkaufter Einheit betroffen ist — Standard ist `1.0`                     |
| Is subtraction | Toggle für Entfernungs-Modifikatoren — kehrt die Bestandsrichtung um                           |

## Lightspeed-Artikelzuordnungen

Lightspeed-Artikel werden aus Lightspeed K-Series synchronisiert.

Mathership speichert die Zuordnung über den Lightspeed-Artikelnamen.

| Lightspeed-Artikel | Zuordnungstyp | Zugeordnet zu         | Menge |
| ------------------ | ------------- | --------------------- | ----: |
| Espresso           | Zutat         | Kaffeebohnen          | 0.009 |
| Cola 0.33 l        | Zutat         | Cola-Flasche          |     1 |
| Classic Burger     | Rezept        | Classic-Burger-Rezept |     1 |

## SIDES-Produktzuordnungen

SIDES-Produkte werden aus der SIDES-Produkt-API synchronisiert.

Zuordnungen werden auf Integrationsebene gespeichert, nicht pro Filiale. Eine Produktzuordnung gilt für alle Filialen derselben Integration.

| SIDES-Produkt | Zuordnungstyp | Zugeordnet zu       | Menge |
| ------------- | ------------- | ------------------- | ----: |
| Cheeseburger  | Rezept        | Cheeseburger-Rezept |     1 |
| Fries         | Rezept        | Pommes-Rezept       |     1 |
| Bottle Water  | Zutat         | Wasserflasche       |     1 |

## Eine Zuordnung bearbeiten

Klicke auf eine bereits zugeordnete Artikelzeile. Das Zuordnungs-Sheet öffnet sich mit den aktuellen Werten vorausgefüllt.

Aktualisiere ein beliebiges Feld und klicke auf **Save changes**.

## Eine Zuordnung löschen

Klicke auf die zugeordnete Artikelzeile und dann unten links im Sheet auf **Delete mapping**.

Bestätige die Löschung im Dialog.

Nach dem Löschen wirken sich zukünftige Verkäufe dieses Artikels nicht mehr auf den Bestand aus, bis er erneut zugeordnet wird.

<Warning>
  Das Löschen einer Zuordnung macht vergangene Bestandsbewegungen nicht rückgängig. Um frühere Buchungen zu korrigieren, führe den betroffenen Transfer erneut aus oder erstelle korrigierende Bestandsbewegungen.
</Warning>

Prüfe vor dem Löschen einer Zuordnung, ob der POS-Artikel weiterhin verkauft wird.

Wenn er weiterhin aktiv ist, führt das Löschen der Zuordnung dazu, dass zukünftige Verkäufe nicht zugeordnet sind.

## Zuordnungsstatus in der Artikelliste

| Status           | Bedeutung                                                                |
| ---------------- | ------------------------------------------------------------------------ |
| Zugeordnet       | Der Artikel hat eine aktive Zuordnung                                    |
| Nicht zugeordnet | Der Artikel hat keine Zuordnung und wirkt sich nicht auf den Bestand aus |

Die Spalte **Mapped to** zeigt den Namen der Zielzutat oder des Zielrezepts, die Menge und, falls zutreffend, einen Subtraktionsindikator.

Verwende den Filter **Mapped** in der Toolbar, um nur nicht zugeordnete Artikel anzuzeigen.

## Auswahl der Lagereinheit

Die Zuordnung definiert, was abgebucht werden soll. Die Lagereinheit definiert, wo es abgebucht werden soll.

Je nach Integration kommt die Lagereinheit aus:

* Dem verknüpften Lightspeed-Standort
* Der verknüpften SIDES-Filiale
* Dem Ausgabelager des Rezepts
* Dem Ausgabelager der Zutat
* Der Fallback-Logik für Lagereinheiten

Stelle bei Lightspeed und SIDES sicher, dass der Standort oder die Filiale vor der Aktivierung oder dem Transfer mit der richtigen Lagereinheit verknüpft ist.

| Externer Standort | Lagereinheit   | Ergebnis                                         |
| ----------------- | -------------- | ------------------------------------------------ |
| Bar POS           | Barlager       | Getränke werden aus dem Barbestand abgebucht     |
| Restaurant POS    | Hauptküche     | Speisen werden aus dem Küchenbestand abgebucht   |
| Terrace POS       | Terrassenlager | Terrassenverkäufe buchen den Terrassenbestand ab |

Wenn keine Lagereinheit ermittelt werden kann, kann Mathership keine korrekte Bestandsabbuchung erstellen.

## Rezeptverarbeitung

Wenn ein POS-Artikel einem Rezept zugeordnet ist, berechnet Mathership die benötigten Zutatenmengen aus den Rezeptzeilen.

Die Rezeptlogik berücksichtigt:

* Menge pro Portion
* Zuordnungsmenge
* Verkaufte Menge
* Verlustprozentsatz
* Unterrezepte
* Lagerregeln der Zutaten

Wenn ein Rezept ein weiteres Rezept enthält, löst Mathership auch das Unterrezept auf.

<Info>
  Burger-Rezept → Burgerbrötchen → Beef Patty → Saucenrezept → Mayonnaise, Ketchup, Gewürze
</Info>

Wenn der Burger verkauft wird, verarbeitet Mathership auch das Saucenrezept.

## Verlustprozentsatz

Rezeptzeilen können einen Verlust- oder Putzprozentsatz enthalten. Dieser wird verwendet, wenn mehr Rohzutat benötigt wird als die am Ende nutzbare Menge.

| Zutat   | Benötigte nutzbare Menge | Verlustprozentsatz | Bestandsabbuchung |
| ------- | -----------------------: | -----------------: | ----------------: |
| Tomate  |                   1.0 kg |                10% |          1.111 kg |
| Zwiebel |                   1.0 kg |                20% |           1.25 kg |

Wenn der Verlustprozentsatz falsch konfiguriert ist, meldet der Transfer eine `invalid_trim_pct`-Exception.

## Rezeptzyklen verhindern

Rezepte sollten weder direkt noch indirekt auf sich selbst verweisen.

<Warning>
  Schlechtes Beispiel: Burger-Rezept → Saucenrezept → Burger-Rezept
</Warning>

Dies erzeugt einen Rezeptzyklus. Ein Rezeptzyklus würde zu einer endlosen Auflösung führen, daher stoppt Mathership die Verarbeitung und zeichnet eine `recipe_cycle`-Exception auf.

## Nicht zugeordnete POS-Artikel

Ein nicht zugeordneter POS-Artikel ist ein verkaufter Artikel, der keine Zuordnung hat.

| Verkaufte POS-Artikel | Ergebnis                                 |
| --------------------- | ---------------------------------------- |
| Espresso              | Wird verarbeitet, wenn zugeordnet        |
| Cola 0.33 l           | Wird verarbeitet, wenn zugeordnet        |
| Neuer Saisonartikel   | Wird übersprungen, wenn nicht zugeordnet |

Nicht zugeordnete Artikel sind während der Einrichtung üblich. Nutze sie als Arbeitsliste für fehlende Zuordnungen.

Nachdem fehlende Zuordnungen erstellt wurden, verarbeite das betroffene Datum erneut oder führe eine Migration erneut aus.

## Häufige Zuordnungsfehler

| Fehler                 | Bedeutung                                                         |
| ---------------------- | ----------------------------------------------------------------- |
| `recipe_not_found`     | Das ausgewählte Rezept existiert nicht                            |
| `ingredient_not_found` | Die ausgewählte Zutat existiert nicht                             |
| `validation_error`     | Erforderliche Zuordnungsdaten fehlen oder sind ungültig           |
| `unauthorized_access`  | Die Zuordnung gehört nicht zum aktuellen Benutzer                 |
| `unmapped_pos_item`    | Ein POS-Artikel wurde verkauft, aber es existiert keine Zuordnung |
| `recipe_cycle`         | Ein Rezept verweist über Rezeptzeilen auf sich selbst             |
| `invalid_trim_pct`     | Eine Rezeptzeile hat einen ungültigen Verlustprozentsatz          |
| `no_issue_storage`     | Es konnte keine Lagereinheit ermittelt werden                     |
| `negative_stock`       | Die Abbuchung würde negativen Bestand erzeugen                    |

## Checkliste für Zuordnungen

Prüfe vor der Aktivierung eines POS-Transfers:

* Wichtige POS-Produkte sind synchronisiert
* Jeder relevante Verkaufsartikel ist zugeordnet
* Rezepte enthalten korrekte Zutatenzeilen
* Mengen sind realistisch
* Einheiten sind korrekt
* Lagereinheiten sind verknüpft
* Ein Testtransfer wurde im Bestands-Ledger geprüft

## Gute Zuordnungsbeispiele

| POS-Artikel | Gute Zuordnung                   | Warum                                           |
| ----------- | -------------------------------- | ----------------------------------------------- |
| Cola 0.33 l | Zutat: Cola-Flasche, Menge 1     | Einfacher verpackter Artikel                    |
| Espresso    | Zutat: Kaffeebohnen, Menge 0.009 | Direkte Zutatenabbuchung                        |
| Burger      | Rezept: Burger-Rezept, Menge 1   | Vorbereitetes Gericht mit mehreren Zutaten      |
| Partyplatte | Rezept: Platten-Rezept, Menge 4  | Ein Verkauf entspricht mehreren Rezeptportionen |

## Schlechte Zuordnungsbeispiele

| Problem                                             | Warum es riskant ist                                        |
| --------------------------------------------------- | ----------------------------------------------------------- |
| Jedes Gericht direkt einer einzelnen Zutat zuordnen | Rezeptzutaten fehlen dann                                   |
| Unklare POS-Namen verwenden                         | Zuordnungen sind schwer zu pflegen                          |
| Falsche Mengenfaktoren verwenden                    | Bestandsabbuchungen werden zu hoch oder zu niedrig          |
| Keine Lagereinheit verknüpft                        | Der Transfer kann nicht vom richtigen Ort abbuchen          |
| Rezepte ohne Zutatenzeilen                          | Rezeptverkäufe erzeugen keine sinnvollen Bestandsbewegungen |

## Zuordnungen aktualisieren

Zuordnungen können jederzeit geändert werden. Nach Änderungen an Zuordnungen musst du möglicherweise historische Daten erneut verarbeiten.

<Tabs>
  <Tab title="Lightspeed">
    * Verwende **Manual Transfer** für ein Datum
    * Verwende **Re-run Migration** für einen größeren historischen Zeitraum
  </Tab>

  <Tab title="SIDES">
    * Verwende **Manual Transfer** für ein Datum
    * Verwende **Re-run Migration**, wenn historische Belegpositionen erneut verarbeitet werden sollen
  </Tab>
</Tabs>

## Eine Zuordnung testen

So testest du eine Zuordnung:

<Steps>
  <Step title="POS-Artikel auswählen">
    Wähle einen POS-Artikel mit bekannten Verkäufen aus.
  </Step>

  <Step title="Bestätigen, dass die Zuordnung existiert">
    Bestätige, dass der POS-Artikel zugeordnet ist.
  </Step>

  <Step title="Ziel prüfen">
    Bestätige, dass die zugeordnete Zutat oder das zugeordnete Rezept korrekt ist.
  </Step>

  <Step title="Mengenfaktor prüfen">
    Bestätige, dass der Mengenfaktor korrekt ist.
  </Step>

  <Step title="Manuellen Transfer ausführen">
    Führe einen manuellen Transfer für ein Datum aus.
  </Step>

  <Step title="Bestands-Ledger öffnen">
    Prüfe die erstellte Bestandsbewegung.
  </Step>

  <Step title="Ergebnis vergleichen">
    Vergleiche die abgebuchte Menge mit der erwarteten Menge.
  </Step>
</Steps>

| Testartikel     | Erwartetes Ergebnis                     |
| --------------- | --------------------------------------- |
| 10 × Espresso   | 0.09 kg Kaffeebohnen abgebucht          |
| 5 × Cola 0.33 l | 5 Flaschen abgebucht                    |
| 2 × Burger      | Zutaten für 2 Burgerportionen abgebucht |

## Best Practices

<CardGroup cols={2}>
  <Card title="Mit Topsellern beginnen" icon="ranking-star">
    Beginne mit den am häufigsten verkauften POS-Artikeln.
  </Card>

  <Card title="Rezepte für Gerichte verwenden" icon="utensils">
    Verwende Rezepte für vorbereitete Gerichte, Getränke, Menüs und Artikel mit mehreren Zutaten.
  </Card>

  <Card title="Zutaten für einfache Artikel verwenden" icon="carrot">
    Verwende direkte Zutat-Zuordnungen für einfache verpackte Artikel.
  </Card>

  <Card title="POS-Namen stabil halten" icon="tag">
    Änderungen an POS-Artikelnamen können Zuordnungen unterbrechen.
  </Card>

  <Card title="Mengen sorgfältig prüfen" icon="calculator">
    Falsche Mengenfaktoren machen Bestandsabbuchungen zu hoch oder zu niedrig.
  </Card>

  <Card title="Vor Automatisierung testen" icon="clipboard-check">
    Teste ein Datum manuell, bevor du Automatisierung aktivierst.
  </Card>

  <Card title="Nicht zugeordnete Artikel prüfen" icon="magnifying-glass">
    Prüfe nicht zugeordnete Artikel nach dem ersten Transfer.
  </Card>

  <Card title="Ledger prüfen" icon="list-check">
    Prüfe den Bestands-Ledger nach jeder größeren Änderung an Zuordnungen.
  </Card>
</CardGroup>

<Warning>
  Lösche Zuordnungen nur, wenn der POS-Artikel nicht mehr verarbeitet werden soll.
</Warning>

## Verwandte Seiten

<CardGroup cols={2}>
  <Card title="Lightspeed K-Series" icon="bolt" href="/en/restaurants/integrations/lightspeed">
    Verbinde Lightspeed und verarbeite POS-Verkäufe.
  </Card>

  <Card title="Sides POS" icon="plug" href="/en/restaurants/integrations/sides-pos">
    Verbinde Sides POS und synchronisiere Filialen und Produkte.
  </Card>

  <Card title="CSV-Upload" icon="file-csv" href="/en/restaurants/integrations/pos-csv-upload">
    Lade POS-Verkaufsdaten aus CSV-Dateien hoch.
  </Card>

  <Card title="Bestands-Ledger" icon="list-check" href="/en/restaurants/inventory/inventory-ledger">
    Prüfe Bestandsbewegungen, die aus POS-Transfers erstellt wurden.
  </Card>
</CardGroup>

## Schlechte Zuordnungsbeispiele

| Problem                                             | Warum es riskant ist                                        |
| --------------------------------------------------- | ----------------------------------------------------------- |
| Jedes Gericht direkt einer einzelnen Zutat zuordnen | Rezeptzutaten fehlen dann                                   |
| Unklare POS-Namen verwenden                         | Zuordnungen sind schwer zu pflegen                          |
| Falsche Mengenfaktoren verwenden                    | Bestandsabbuchungen werden zu hoch oder zu niedrig          |
| Keine Lagereinheit verknüpft                        | Der Transfer kann nicht vom richtigen Ort abbuchen          |
| Rezepte ohne Zutatenzeilen                          | Rezeptverkäufe erzeugen keine sinnvollen Bestandsbewegungen |

## Zuordnungen aktualisieren

Zuordnungen können jederzeit geändert werden. Nach Änderungen an Zuordnungen musst du möglicherweise historische Daten erneut verarbeiten.

<Tabs>
  <Tab title="Lightspeed">
    * Verwende **Manual Transfer** für ein Datum
    * Verwende **Re-run Migration** für einen größeren historischen Zeitraum
  </Tab>

  <Tab title="SIDES">
    * Verwende **Manual Transfer** für ein Datum
    * Verwende **Re-run Migration**, wenn historische Belegpositionen erneut verarbeitet werden sollen
  </Tab>
</Tabs>

<Steps>
  <Step title="POS-Artikel auswählen">
    Wähle einen POS-Artikel mit bekannten Verkäufen aus.
  </Step>

  <Step title="Bestätigen, dass die Zuordnung existiert">
    Bestätige, dass der POS-Artikel zugeordnet ist.
  </Step>

  <Step title="Ziel prüfen">
    Bestätige, dass die zugeordnete Zutat oder das zugeordnete Rezept korrekt ist.
  </Step>

  <Step title="Mengenfaktor prüfen">
    Bestätige, dass der Mengenfaktor korrekt ist.
  </Step>

  <Step title="Manuellen Transfer ausführen">
    Führe einen manuellen Transfer für ein Datum aus.
  </Step>

  <Step title="Bestands-Ledger öffnen">
    Prüfe die erstellte Bestandsbewegung.
  </Step>

  <Step title="Ergebnis vergleichen">
    Vergleiche die abgebuchte Menge mit der erwarteten Menge.
  </Step>
</Steps>

<CardGroup cols={2}>
  <Card title="Mit Topsellern beginnen" icon="ranking-star">
    Beginne mit den am häufigsten verkauften POS-Artikeln.
  </Card>

  <Card title="Rezepte für Gerichte verwenden" icon="utensils">
    Verwende Rezepte für vorbereitete Gerichte, Getränke, Menüs und Artikel mit mehreren Zutaten.
  </Card>

  <Card title="Zutaten für einfache Artikel verwenden" icon="carrot">
    Verwende direkte Zutat-Zuordnungen für einfache verpackte Artikel.
  </Card>

  <Card title="POS-Namen stabil halten" icon="tag">
    Änderungen an POS-Artikelnamen können Zuordnungen unterbrechen.
  </Card>

  <Card title="Mengen sorgfältig prüfen" icon="calculator">
    Falsche Mengenfaktoren machen Bestandsabbuchungen zu hoch oder zu niedrig.
  </Card>

  <Card title="Vor Automatisierung testen" icon="clipboard-check">
    Teste ein Datum manuell, bevor du Automatisierung aktivierst.
  </Card>

  <Card title="Nicht zugeordnete Artikel prüfen" icon="magnifying-glass">
    Prüfe nicht zugeordnete Artikel nach dem ersten Transfer.
  </Card>

  <Card title="Ledger prüfen" icon="list-check">
    Prüfe den Bestands-Ledger nach jeder größeren Änderung an Zuordnungen.
  </Card>
</CardGroup>

<Warning>
  Lösche Zuordnungen nur, wenn der POS-Artikel nicht mehr verarbeitet werden soll.
</Warning>

<Info>
  Burger-Rezept → Burgerbrötchen → Beef Patty → Saucenrezept → Mayonnaise, Ketchup, Gewürze
</Info>

Wenn der Burger verkauft wird, verarbeitet Mathership auch das Saucenrezept.

## Verlustprozentsatz

Rezeptzeilen können einen Verlust- oder Putzprozentsatz enthalten. Dieser wird verwendet, wenn mehr Rohzutat benötigt wird als die am Ende nutzbare Menge.

| Zutat   | Benötigte nutzbare Menge | Verlustprozentsatz | Bestandsabbuchung |
| ------- | -----------------------: | -----------------: | ----------------: |
| Tomate  |                   1.0 kg |                10% |          1.111 kg |
| Zwiebel |                   1.0 kg |                20% |           1.25 kg |

Wenn der Verlustprozentsatz falsch konfiguriert ist, meldet der Transfer eine `invalid_trim_pct`-Exception.

## Rezeptzyklen verhindern

Rezepte sollten weder direkt noch indirekt auf sich selbst verweisen.

<Warning>
  Schlechtes Beispiel: Burger-Rezept → Saucenrezept → Burger-Rezept
</Warning>

Dies erzeugt einen Rezeptzyklus. Ein Rezeptzyklus würde zu einer endlosen Auflösung führen, daher stoppt Mathership die Verarbeitung und zeichnet eine `recipe_cycle`-Exception auf.

## Nicht zugeordnete POS-Artikel

Ein nicht zugeordneter POS-Artikel ist ein verkaufter Artikel, der keine Zuordnung hat.

| Verkaufte POS-Artikel | Ergebnis                                 |
| --------------------- | ---------------------------------------- |
| Espresso              | Wird verarbeitet, wenn zugeordnet        |
| Cola 0.33 l           | Wird verarbeitet, wenn zugeordnet        |
| Neuer Saisonartikel   | Wird übersprungen, wenn nicht zugeordnet |

Nicht zugeordnete Artikel sind während der Einrichtung üblich. Nutze sie als Arbeitsliste für fehlende Zuordnungen.

Nachdem fehlende Zuordnungen erstellt wurden, verarbeite das betroffene Datum erneut oder führe eine Migration erneut aus.

## Häufige Zuordnungsfehler

| Fehler                 | Bedeutung                                                         |
| ---------------------- | ----------------------------------------------------------------- |
| `recipe_not_found`     | Das ausgewählte Rezept existiert nicht                            |
| `ingredient_not_found` | Die ausgewählte Zutat existiert nicht                             |
| `validation_error`     | Erforderliche Zuordnungsdaten fehlen oder sind ungültig           |
| `unauthorized_access`  | Die Zuordnung gehört nicht zum aktuellen Benutzer                 |
| `unmapped_pos_item`    | Ein POS-Artikel wurde verkauft, aber es existiert keine Zuordnung |
| `recipe_cycle`         | Ein Rezept verweist über Rezeptzeilen auf sich selbst             |
| `invalid_trim_pct`     | Eine Rezeptzeile hat einen ungültigen Verlustprozentsatz          |
| `no_issue_storage`     | Es konnte keine Lagereinheit ermittelt werden                     |
| `negative_stock`       | Die Abbuchung würde negativen Bestand erzeugen                    |

## Checkliste für Zuordnungen

Prüfe vor der Aktivierung eines POS-Transfers:

* Wichtige POS-Produkte sind synchronisiert
* Jeder relevante Verkaufsartikel ist zugeordnet
* Rezepte enthalten korrekte Zutatenzeilen
* Mengen sind realistisch
* Einheiten sind korrekt
* Lagereinheiten sind verknüpft
* Ein Testtransfer wurde im Bestands-Ledger geprüft

## Gute Zuordnungsbeispiele

| POS-Artikel | Gute Zuordnung                   | Warum                                           |
| ----------- | -------------------------------- | ----------------------------------------------- |
| Cola 0.33 l | Zutat: Cola-Flasche, Menge 1     | Einfacher verpackter Artikel                    |
| Espresso    | Zutat: Kaffeebohnen, Menge 0.009 | Direkte Zutatenabbuchung                        |
| Burger      | Rezept: Burger-Rezept, Menge 1   | Vorbereitetes Gericht mit mehreren Zutaten      |
| Partyplatte | Rezept: Platten-Rezept, Menge 4  | Ein Verkauf entspricht mehreren Rezeptportionen |

## Schlechte Zuordnungsbeispiele

| Problem                                             | Warum es riskant ist                                        |
| --------------------------------------------------- | ----------------------------------------------------------- |
| Jedes Gericht direkt einer einzelnen Zutat zuordnen | Rezeptzutaten fehlen dann                                   |
| Unklare POS-Namen verwenden                         | Zuordnungen sind schwer zu pflegen                          |
| Falsche Mengenfaktoren verwenden                    | Bestandsabbuchungen werden zu hoch oder zu niedrig          |
| Keine Lagereinheit verknüpft                        | Der Transfer kann nicht vom richtigen Ort abbuchen          |
| Rezepte ohne Zutatenzeilen                          | Rezeptverkäufe erzeugen keine sinnvollen Bestandsbewegungen |

## Zuordnungen aktualisieren

Zuordnungen können jederzeit geändert werden. Nach Änderungen an Zuordnungen musst du möglicherweise historische Daten erneut verarbeiten.

<Tabs>
  <Tab title="Lightspeed">
    * Verwende **Manual Transfer** für ein Datum
    * Verwende **Re-run Migration** für einen größeren historischen Zeitraum
  </Tab>

  <Tab title="SIDES">
    * Verwende **Manual Transfer** für ein Datum
    * Verwende **Re-run Migration**, wenn historische Belegpositionen erneut verarbeitet werden sollen
  </Tab>
</Tabs>

## Eine Zuordnung testen

So testest du eine Zuordnung:

<Steps>
  <Step title="POS-Artikel auswählen">
    Wähle einen POS-Artikel mit bekannten Verkäufen aus.
  </Step>

  <Step title="Bestätigen, dass die Zuordnung existiert">
    Bestätige, dass der POS-Artikel zugeordnet ist.
  </Step>

  <Step title="Ziel prüfen">
    Bestätige, dass die zugeordnete Zutat oder das zugeordnete Rezept korrekt ist.
  </Step>

  <Step title="Mengenfaktor prüfen">
    Bestätige, dass der Mengenfaktor korrekt ist.
  </Step>

  <Step title="Manuellen Transfer ausführen">
    Führe einen manuellen Transfer für ein Datum aus.
  </Step>

  <Step title="Bestands-Ledger öffnen">
    Prüfe die erstellte Bestandsbewegung.
  </Step>

  <Step title="Ergebnis vergleichen">
    Vergleiche die abgebuchte Menge mit der erwarteten Menge.
  </Step>
</Steps>

| Testartikel     | Erwartetes Ergebnis                     |
| --------------- | --------------------------------------- |
| 10 × Espresso   | 0.09 kg Kaffeebohnen abgebucht          |
| 5 × Cola 0.33 l | 5 Flaschen abgebucht                    |
| 2 × Burger      | Zutaten für 2 Burgerportionen abgebucht |

## Best Practices

<CardGroup cols={2}>
  <Card title="Mit Topsellern beginnen" icon="ranking-star">
    Beginne mit den am häufigsten verkauften POS-Artikeln.
  </Card>

  <Card title="Rezepte für Gerichte verwenden" icon="utensils">
    Verwende Rezepte für vorbereitete Gerichte, Getränke, Menüs und Artikel mit mehreren Zutaten.
  </Card>

  <Card title="Zutaten für einfache Artikel verwenden" icon="carrot">
    Verwende direkte Zutat-Zuordnungen für einfache verpackte Artikel.
  </Card>

  <Card title="POS-Namen stabil halten" icon="tag">
    Änderungen an POS-Artikelnamen können Zuordnungen unterbrechen.
  </Card>

  <Card title="Mengen sorgfältig prüfen" icon="calculator">
    Falsche Mengenfaktoren machen Bestandsabbuchungen zu hoch oder zu niedrig.
  </Card>

  <Card title="Vor Automatisierung testen" icon="clipboard-check">
    Teste ein Datum manuell, bevor du Automatisierung aktivierst.
  </Card>

  <Card title="Nicht zugeordnete Artikel prüfen" icon="magnifying-glass">
    Prüfe nicht zugeordnete Artikel nach dem ersten Transfer.
  </Card>

  <Card title="Ledger prüfen" icon="list-check">
    Prüfe den Bestands-Ledger nach jeder größeren Änderung an Zuordnungen.
  </Card>
</CardGroup>

<Warning>
  Lösche Zuordnungen nur, wenn der POS-Artikel nicht mehr verarbeitet werden soll.
</Warning>

## Verwandte Seiten

<CardGroup cols={2}>
  <Card title="Lightspeed K-Series" icon="bolt" href="/en/restaurants/integrations/lightspeed">
    Verbinde Lightspeed und verarbeite POS-Verkäufe.
  </Card>

  <Card title="Sides POS" icon="plug" href="/en/restaurants/integrations/sides-pos">
    Verbinde Sides POS und synchronisiere Filialen und Produkte.
  </Card>

  <Card title="CSV-Upload" icon="file-csv" href="/en/restaurants/integrations/pos-csv-upload">
    Lade POS-Verkaufsdaten aus CSV-Dateien hoch.
  </Card>

  <Card title="Bestands-Ledger" icon="list-check" href="/en/restaurants/inventory/inventory-ledger">
    Prüfe Bestandsbewegungen, die aus POS-Transfers erstellt wurden.
  </Card>
</CardGroup>

## Schlechte Zuordnungsbeispiele

| Problem                                             | Warum es riskant ist                                        |
| --------------------------------------------------- | ----------------------------------------------------------- |
| Jedes Gericht direkt einer einzelnen Zutat zuordnen | Rezeptzutaten fehlen dann                                   |
| Unklare POS-Namen verwenden                         | Zuordnungen sind schwer zu pflegen                          |
| Falsche Mengenfaktoren verwenden                    | Bestandsabbuchungen werden zu hoch oder zu niedrig          |
| Keine Lagereinheit verknüpft                        | Der Transfer kann nicht vom richtigen Ort abbuchen          |
| Rezepte ohne Zutatenzeilen                          | Rezeptverkäufe erzeugen keine sinnvollen Bestandsbewegungen |

## Zuordnungen aktualisieren

Zuordnungen können jederzeit geändert werden. Nach Änderungen an Zuordnungen musst du möglicherweise historische Daten erneut verarbeiten.

<Tabs>
  <Tab title="Lightspeed">
    * Verwende **Manual Transfer** für ein Datum
    * Verwende **Re-run Migration** für einen größeren historischen Zeitraum
  </Tab>

  <Tab title="SIDES">
    * Verwende **Manual Transfer** für ein Datum
    * Verwende **Re-run Migration**, wenn historische Belegpositionen erneut verarbeitet werden sollen
  </Tab>
</Tabs>

## Eine Zuordnung testen

<Steps>
  <Step title="POS-Artikel auswählen">
    Wähle einen POS-Artikel mit bekannten Verkäufen aus.
  </Step>

  <Step title="Bestätigen, dass die Zuordnung existiert">
    Bestätige, dass der POS-Artikel zugeordnet ist.
  </Step>

  <Step title="Ziel prüfen">
    Bestätige, dass die zugeordnete Zutat oder das zugeordnete Rezept korrekt ist.
  </Step>

  <Step title="Mengenfaktor prüfen">
    Bestätige, dass der Mengenfaktor korrekt ist.
  </Step>

  <Step title="Manuellen Transfer ausführen">
    Führe einen manuellen Transfer für ein Datum aus.
  </Step>

  <Step title="Bestands-Ledger öffnen">
    Prüfe die erstellte Bestandsbewegung.
  </Step>

  <Step title="Ergebnis vergleichen">
    Vergleiche die abgebuchte Menge mit der erwarteten Menge.
  </Step>
</Steps>

<CardGroup cols={2}>
  <Card title="Mit Topsellern beginnen" icon="ranking-star">
    Beginne mit den am häufigsten verkauften POS-Artikeln.
  </Card>

  <Card title="Rezepte für Gerichte verwenden" icon="utensils">
    Verwende Rezepte für vorbereitete Gerichte, Getränke, Menüs und Artikel mit mehreren Zutaten.
  </Card>

  <Card title="Zutaten für einfache Artikel verwenden" icon="carrot">
    Verwende direkte Zutat-Zuordnungen für einfache verpackte Artikel.
  </Card>

  <Card title="POS-Namen stabil halten" icon="tag">
    Änderungen an POS-Artikelnamen können Zuordnungen unterbrechen.
  </Card>

  <Card title="Mengen sorgfältig prüfen" icon="calculator">
    Falsche Mengenfaktoren machen Bestandsabbuchungen zu hoch oder zu niedrig.
  </Card>

  <Card title="Vor Automatisierung testen" icon="clipboard-check">
    Teste ein Datum manuell, bevor du Automatisierung aktivierst.
  </Card>

  <Card title="Nicht zugeordnete Artikel prüfen" icon="magnifying-glass">
    Prüfe nicht zugeordnete Artikel nach dem ersten Transfer.
  </Card>

  <Card title="Ledger prüfen" icon="list-check">
    Prüfe den Bestands-Ledger nach jeder größeren Änderung an Zuordnungen.
  </Card>
</CardGroup>

<Warning>
  Lösche Zuordnungen nur, wenn der POS-Artikel nicht mehr verarbeitet werden soll.
</Warning>

**Burger → Burger-Rezept → Brötchen, Patty, Käse, Sauce, Salat**

Wenn 3 Burger verkauft werden, berechnet Mathership den Zutatenbedarf für 3 Rezeptportionen und erstellt Bestandsabbuchungen für jede Zutat.

## Mengenmultiplikator

Das Mengenfeld ist ein Multiplikator.

Bei Zutat-Zuordnungen legt es fest, wie viel von der Zutat pro verkauftem POS-Artikel abgebucht wird.

Bei Rezeptzuordnungen legt es fest, wie viele Rezeptportionen pro verkauftem POS-Artikel verwendet werden.

<Tabs>
  <Tab title="Zutatenmenge">
    **Verkaufte Menge × Zuordnungsmenge = Zutatenabbuchung**

    | Verkauft      | Zuordnungsmenge |  Abbuchung |
    | ------------- | --------------: | ---------: |
    | 3 × Cola      |       1 Flasche | 3 Flaschen |
    | 5 × Espresso  |        0.009 kg |   0.045 kg |
    | 10 × Weinglas |           0.2 l |        2 l |
  </Tab>

  <Tab title="Rezeptmenge">
    **Verkaufte Menge × Zuordnungsmenge = Rezeptportionen**

    | Verkauft          | Zuordnungsmenge | Rezeptportionen |
    | ----------------- | --------------: | --------------: |
    | 2 × Burger        |               1 |     2 Portionen |
    | 1 × Partyplatte   |               4 |     4 Portionen |
    | 3 × Kleiner Salat |             0.5 |   1.5 Portionen |
  </Tab>
</Tabs>

Verwende `1`, wenn ein verkaufter POS-Artikel einer Rezeptportion entspricht. Verwende einen anderen Wert, wenn der POS-Artikel mehr oder weniger als eine Rezeptportion darstellt.

## Subtraktions-Zuordnungen

Zuordnungen können `is_subtraction` verwenden.

Im Zuordnungs-Sheet erscheint dies als Toggle **Is subtraction**.

Dies wird für Entfernungs-Modifikatoren verwendet — also Artikel, die anzeigen, dass etwas nicht in einem Verkauf enthalten war.

| POS-Artikel     | Anwendungsfall                                                           |
| --------------- | ------------------------------------------------------------------------ |
| No chips        | Eine Chips-Abbuchung rückgängig machen, wenn keine Chips serviert wurden |
| Refund item     | Eine frühere Abbuchung rückgängig machen                                 |
| Correction item | Eine POS-Menge reduzieren oder ausgleichen                               |

Verwende dies nur, wenn sich der POS-Artikel nicht wie eine normale Verkaufsabbuchung verhalten soll.

<Warning>
  Prüfe Subtraktions-Zuordnungen sorgfältig. Eine falsche Subtraktionslogik kann Bestandsbewegungen in die falsche Richtung erzeugen.
</Warning>

## Wo Zuordnungen erstellt werden

Zuordnungen werden direkt aus der Artikel- oder Produktliste innerhalb jeder Integration erstellt.

Es gibt keine separate Verwaltungsseite für Zuordnungen.

## Das Zuordnungs-Sheet

Das Zuordnungs-Sheet öffnet sich als Seitenpanel. Die Kopfzeile zeigt den aktuellen Zuordnungsstatus und Artikeldetails aus dem POS-System.

| Integration | In der Kopfzeile angezeigte Felder                      |
| ----------- | ------------------------------------------------------- |
| Lightspeed  | Artikelname, Artikel-ID, SKU, Preis                     |
| SIDES       | Produktname, externe ID, Artikelnummer, Typ, Küchenname |

### Formularfelder der Zuordnung

| Feld           | Beschreibung                                                                                   |
| -------------- | ---------------------------------------------------------------------------------------------- |
| Zuordnungstyp  | Umschalten zwischen **Rezept** und **Zutat** — beim Wechsel wird die Zielauswahl zurückgesetzt |
| Ziel           | Zutat oder Rezept suchen und auswählen, dem zugeordnet werden soll                             |
| Menge          | Wie viel Bestand pro verkaufter Einheit betroffen ist — Standard ist `1.0`                     |
| Is subtraction | Toggle für Entfernungs-Modifikatoren — kehrt die Bestandsrichtung um                           |

## Lightspeed-Artikelzuordnungen

Lightspeed-Artikel werden aus Lightspeed K-Series synchronisiert.

Mathership speichert die Zuordnung über den Lightspeed-Artikelnamen.

| Lightspeed-Artikel | Zuordnungstyp | Zugeordnet zu         | Menge |
| ------------------ | ------------- | --------------------- | ----: |
| Espresso           | Zutat         | Kaffeebohnen          | 0.009 |
| Cola 0.33 l        | Zutat         | Cola-Flasche          |     1 |
| Classic Burger     | Rezept        | Classic-Burger-Rezept |     1 |

## SIDES-Produktzuordnungen

SIDES-Produkte werden aus der SIDES-Produkt-API synchronisiert.

Zuordnungen werden auf Integrationsebene gespeichert, nicht pro Filiale. Eine Produktzuordnung gilt für alle Filialen derselben Integration.

| SIDES-Produkt | Zuordnungstyp | Zugeordnet zu       | Menge |
| ------------- | ------------- | ------------------- | ----: |
| Cheeseburger  | Rezept        | Cheeseburger-Rezept |     1 |
| Fries         | Rezept        | Pommes-Rezept       |     1 |
| Bottle Water  | Zutat         | Wasserflasche       |     1 |

## Eine Zuordnung bearbeiten

Klicke auf eine bereits zugeordnete Artikelzeile. Das Zuordnungs-Sheet öffnet sich mit den aktuellen Werten vorausgefüllt.

Aktualisiere ein beliebiges Feld und klicke auf **Save changes**.

## Eine Zuordnung löschen

Klicke auf die zugeordnete Artikelzeile und dann unten links im Sheet auf **Delete mapping**.

Bestätige die Löschung im Dialog.

Nach dem Löschen wirken sich zukünftige Verkäufe dieses Artikels nicht mehr auf den Bestand aus, bis er erneut zugeordnet wird.

<Warning>
  Das Löschen einer Zuordnung macht vergangene Bestandsbewegungen nicht rückgängig. Um frühere Buchungen zu korrigieren, führe den betroffenen Transfer erneut aus oder erstelle korrigierende Bestandsbewegungen.
</Warning>

Prüfe vor dem Löschen einer Zuordnung, ob der POS-Artikel weiterhin verkauft wird.

Wenn er weiterhin aktiv ist, führt das Löschen der Zuordnung dazu, dass zukünftige Verkäufe nicht zugeordnet sind.

## Zuordnungsstatus in der Artikelliste

| Status           | Bedeutung                                                                |
| ---------------- | ------------------------------------------------------------------------ |
| Zugeordnet       | Der Artikel hat eine aktive Zuordnung                                    |
| Nicht zugeordnet | Der Artikel hat keine Zuordnung und wirkt sich nicht auf den Bestand aus |

Die Spalte **Mapped to** zeigt den Namen der Zielzutat oder des Zielrezepts, die Menge und, falls zutreffend, einen Subtraktionsindikator.

Verwende den Filter **Mapped** in der Toolbar, um nur nicht zugeordnete Artikel anzuzeigen.

## Auswahl der Lagereinheit

Die Zuordnung definiert, was abgebucht werden soll. Die Lagereinheit definiert, wo es abgebucht werden soll.

Je nach Integration kommt die Lagereinheit aus:

* Dem verknüpften Lightspeed-Standort
* Der verknüpften SIDES-Filiale
* Dem Ausgabelager des Rezepts
* Dem Ausgabelager der Zutat
* Der Fallback-Logik für Lagereinheiten

Stelle bei Lightspeed und SIDES sicher, dass der Standort oder die Filiale vor der Aktivierung oder dem Transfer mit der richtigen Lagereinheit verknüpft ist.

| Externer Standort | Lagereinheit   | Ergebnis                                         |
| ----------------- | -------------- | ------------------------------------------------ |
| Bar POS           | Barlager       | Getränke werden aus dem Barbestand abgebucht     |
| Restaurant POS    | Hauptküche     | Speisen werden aus dem Küchenbestand abgebucht   |
| Terrace POS       | Terrassenlager | Terrassenverkäufe buchen den Terrassenbestand ab |

Wenn keine Lagereinheit ermittelt werden kann, kann Mathership keine korrekte Bestandsabbuchung erstellen.

## Rezeptverarbeitung

Wenn ein POS-Artikel einem Rezept zugeordnet ist, berechnet Mathership die benötigten Zutatenmengen aus den Rezeptzeilen.

Die Rezeptlogik berücksichtigt:

* Menge pro Portion
* Zuordnungsmenge
* Verkaufte Menge
* Verlustprozentsatz
* Unterrezepte
* Lagerregeln der Zutaten

Wenn ein Rezept ein weiteres Rezept enthält, löst Mathership auch das Unterrezept auf.

Beispiel:

<Info>
  Burger-Rezept → Burgerbrötchen → Beef Patty → Saucenrezept → Mayonnaise, Ketchup, Gewürze
</Info>

Wenn der Burger verkauft wird, verarbeitet Mathership auch das Saucenrezept.

## Verlustprozentsatz

Rezeptzeilen können einen Verlust- oder Putzprozentsatz enthalten. Dieser wird verwendet, wenn mehr Rohzutat benötigt wird als die am Ende nutzbare Menge.

| Zutat   | Benötigte nutzbare Menge | Verlustprozentsatz | Bestandsabbuchung |
| ------- | -----------------------: | -----------------: | ----------------: |
| Tomate  |                   1.0 kg |                10% |          1.111 kg |
| Zwiebel |                   1.0 kg |                20% |           1.25 kg |

Wenn der Verlustprozentsatz falsch konfiguriert ist, meldet der Transfer eine `invalid_trim_pct`-Exception.

## Rezeptzyklen verhindern

Rezepte sollten weder direkt noch indirekt auf sich selbst verweisen.

<Warning>
  Schlechtes Beispiel: Burger-Rezept → Saucenrezept → Burger-Rezept
</Warning>

Dies erzeugt einen Rezeptzyklus. Ein Rezeptzyklus würde zu einer endlosen Auflösung führen, daher stoppt Mathership die Verarbeitung und zeichnet eine `recipe_cycle`-Exception auf.

## Nicht zugeordnete POS-Artikel

Ein nicht zugeordneter POS-Artikel ist ein verkaufter Artikel, der keine Zuordnung hat.

| Verkaufte POS-Artikel | Ergebnis                                 |
| --------------------- | ---------------------------------------- |
| Espresso              | Wird verarbeitet, wenn zugeordnet        |
| Cola 0.33 l           | Wird verarbeitet, wenn zugeordnet        |
| Neuer Saisonartikel   | Wird übersprungen, wenn nicht zugeordnet |

Nicht zugeordnete Artikel sind während der Einrichtung üblich. Nutze sie als Arbeitsliste für fehlende Zuordnungen.

Nachdem fehlende Zuordnungen erstellt wurden, verarbeite das betroffene Datum erneut oder führe eine Migration erneut aus.

## Häufige Zuordnungsfehler

| Fehler                 | Bedeutung                                                         |
| ---------------------- | ----------------------------------------------------------------- |
| `recipe_not_found`     | Das ausgewählte Rezept existiert nicht                            |
| `ingredient_not_found` | Die ausgewählte Zutat existiert nicht                             |
| `validation_error`     | Erforderliche Zuordnungsdaten fehlen oder sind ungültig           |
| `unauthorized_access`  | Die Zuordnung gehört nicht zum aktuellen Benutzer                 |
| `unmapped_pos_item`    | Ein POS-Artikel wurde verkauft, aber es existiert keine Zuordnung |
| `recipe_cycle`         | Ein Rezept verweist über Rezeptzeilen auf sich selbst             |
| `invalid_trim_pct`     | Eine Rezeptzeile hat einen ungültigen Verlustprozentsatz          |
| `no_issue_storage`     | Es konnte keine Lagereinheit ermittelt werden                     |
| `negative_stock`       | Die Abbuchung würde negativen Bestand erzeugen                    |

## Checkliste für Zuordnungen

Prüfe vor der Aktivierung eines POS-Transfers:

* Wichtige POS-Produkte sind synchronisiert
* Jeder relevante Verkaufsartikel ist zugeordnet
* Rezepte enthalten korrekte Zutatenzeilen
* Mengen sind realistisch
* Einheiten sind korrekt
* Lagereinheiten sind verknüpft
* Ein Testtransfer wurde im Bestands-Ledger geprüft

## Gute Zuordnungsbeispiele

**Burger → Burger-Rezept → Brötchen, Patty, Käse, Sauce, Salat**

Wenn 3 Burger verkauft werden, berechnet Mathership den Zutatenbedarf für 3 Rezeptportionen und erstellt Bestandsabbuchungen für jede Zutat.

## Mengenmultiplikator

Das Mengenfeld ist ein Multiplikator.

Bei Zutat-Zuordnungen legt es fest, wie viel von der Zutat pro verkauftem POS-Artikel abgebucht wird.

Bei Rezeptzuordnungen legt es fest, wie viele Rezeptportionen pro verkauftem POS-Artikel verwendet werden.

<Tabs>
  <Tab title="Zutatenmenge">
    **Verkaufte Menge × Zuordnungsmenge = Zutatenabbuchung**

    | Verkauft      | Zuordnungsmenge |  Abbuchung |
    | ------------- | --------------: | ---------: |
    | 3 × Cola      |       1 Flasche | 3 Flaschen |
    | 5 × Espresso  |        0.009 kg |   0.045 kg |
    | 10 × Weinglas |           0.2 l |        2 l |
  </Tab>

  <Tab title="Rezeptmenge">
    **Verkaufte Menge × Zuordnungsmenge = Rezeptportionen**

    | Verkauft          | Zuordnungsmenge | Rezeptportionen |
    | ----------------- | --------------: | --------------: |
    | 2 × Burger        |               1 |     2 Portionen |
    | 1 × Partyplatte   |               4 |     4 Portionen |
    | 3 × Kleiner Salat |             0.5 |   1.5 Portionen |
  </Tab>
</Tabs>

Verwende `1`, wenn ein verkaufter POS-Artikel einer Rezeptportion entspricht. Verwende einen anderen Wert, wenn der POS-Artikel mehr oder weniger als eine Rezeptportion darstellt.

## Subtraktions-Zuordnungen

Zuordnungen können `is_subtraction` verwenden.

Im Zuordnungs-Sheet erscheint dies als Toggle **Is subtraction**.

Dies wird für Entfernungs-Modifikatoren verwendet — also Artikel, die anzeigen, dass etwas nicht in einem Verkauf enthalten war.

| POS-Artikel     | Anwendungsfall                                                           |
| --------------- | ------------------------------------------------------------------------ |
| No chips        | Eine Chips-Abbuchung rückgängig machen, wenn keine Chips serviert wurden |
| Refund item     | Eine frühere Abbuchung rückgängig machen                                 |
| Correction item | Eine POS-Menge reduzieren oder ausgleichen                               |

Verwende dies nur, wenn sich der POS-Artikel nicht wie eine normale Verkaufsabbuchung verhalten soll.

<Warning>
  Prüfe Subtraktions-Zuordnungen sorgfältig. Eine falsche Subtraktionslogik kann Bestandsbewegungen in die falsche Richtung erzeugen.
</Warning>

## Wo Zuordnungen erstellt werden

Zuordnungen werden direkt aus der Artikel- oder Produktliste innerhalb jeder Integration erstellt.

Es gibt keine separate Verwaltungsseite für Zuordnungen.

## Das Zuordnungs-Sheet

Das Zuordnungs-Sheet öffnet sich als Seitenpanel. Die Kopfzeile zeigt den aktuellen Zuordnungsstatus und Artikeldetails aus dem POS-System.

| Integration | In der Kopfzeile angezeigte Felder                      |
| ----------- | ------------------------------------------------------- |
| Lightspeed  | Artikelname, Artikel-ID, SKU, Preis                     |
| SIDES       | Produktname, externe ID, Artikelnummer, Typ, Küchenname |

### Formularfelder der Zuordnung

| Feld           | Beschreibung                                                                                   |
| -------------- | ---------------------------------------------------------------------------------------------- |
| Zuordnungstyp  | Umschalten zwischen **Rezept** und **Zutat** — beim Wechsel wird die Zielauswahl zurückgesetzt |
| Ziel           | Zutat oder Rezept suchen und auswählen, dem zugeordnet werden soll                             |
| Menge          | Wie viel Bestand pro verkaufter Einheit betroffen ist — Standard ist `1.0`                     |
| Is subtraction | Toggle für Entfernungs-Modifikatoren — kehrt die Bestandsrichtung um                           |

## Lightspeed-Artikelzuordnungen

Lightspeed-Artikel werden aus Lightspeed K-Series synchronisiert.

Mathership speichert die Zuordnung über den Lightspeed-Artikelnamen.

| Lightspeed-Artikel | Zuordnungstyp | Zugeordnet zu         | Menge |
| ------------------ | ------------- | --------------------- | ----: |
| Espresso           | Zutat         | Kaffeebohnen          | 0.009 |
| Cola 0.33 l        | Zutat         | Cola-Flasche          |     1 |
| Classic Burger     | Rezept        | Classic-Burger-Rezept |     1 |

## SIDES-Produktzuordnungen

SIDES-Produkte werden aus der SIDES-Produkt-API synchronisiert.

Zuordnungen werden auf Integrationsebene gespeichert, nicht pro Filiale. Eine Produktzuordnung gilt für alle Filialen derselben Integration.

| SIDES-Produkt | Zuordnungstyp | Zugeordnet zu       | Menge |
| ------------- | ------------- | ------------------- | ----: |
| Cheeseburger  | Rezept        | Cheeseburger-Rezept |     1 |
| Fries         | Rezept        | Pommes-Rezept       |     1 |
| Bottle Water  | Zutat         | Wasserflasche       |     1 |

## Eine Zuordnung bearbeiten

Klicke auf eine bereits zugeordnete Artikelzeile. Das Zuordnungs-Sheet öffnet sich mit den aktuellen Werten vorausgefüllt.

Aktualisiere ein beliebiges Feld und klicke auf **Save changes**.

## Eine Zuordnung löschen

Klicke auf die zugeordnete Artikelzeile und dann unten links im Sheet auf **Delete mapping**.

Bestätige die Löschung im Dialog.

Nach dem Löschen wirken sich zukünftige Verkäufe dieses Artikels nicht mehr auf den Bestand aus, bis er erneut zugeordnet wird.

<Warning>
  Das Löschen einer Zuordnung macht vergangene Bestandsbewegungen nicht rückgängig. Um frühere Buchungen zu korrigieren, führe den betroffenen Transfer erneut aus oder erstelle korrigierende Bestandsbewegungen.
</Warning>

Prüfe vor dem Löschen einer Zuordnung, ob der POS-Artikel weiterhin verkauft wird.

Wenn er weiterhin aktiv ist, führt das Löschen der Zuordnung dazu, dass zukünftige Verkäufe nicht zugeordnet sind.

## Zuordnungsstatus in der Artikelliste

| Status           | Bedeutung                                                                |
| ---------------- | ------------------------------------------------------------------------ |
| Zugeordnet       | Der Artikel hat eine aktive Zuordnung                                    |
| Nicht zugeordnet | Der Artikel hat keine Zuordnung und wirkt sich nicht auf den Bestand aus |

Die Spalte **Mapped to** zeigt den Namen der Zielzutat oder des Zielrezepts, die Menge und, falls zutreffend, einen Subtraktionsindikator.

Verwende den Filter **Mapped** in der Toolbar, um nur nicht zugeordnete Artikel anzuzeigen.

## Auswahl der Lagereinheit

Die Zuordnung definiert, was abgebucht werden soll. Die Lagereinheit definiert, wo es abgebucht werden soll.

Je nach Integration kommt die Lagereinheit aus:

* Dem verknüpften Lightspeed-Standort
* Der verknüpften SIDES-Filiale
* Dem Ausgabelager des Rezepts
* Dem Ausgabelager der Zutat
* Der Fallback-Logik für Lagereinheiten

Stelle bei Lightspeed und SIDES sicher, dass der Standort oder die Filiale vor der Aktivierung oder dem Transfer mit der richtigen Lagereinheit verknüpft ist.

| Externer Standort | Lagereinheit   | Ergebnis                                         |
| ----------------- | -------------- | ------------------------------------------------ |
| Bar POS           | Barlager       | Getränke werden aus dem Barbestand abgebucht     |
| Restaurant POS    | Hauptküche     | Speisen werden aus dem Küchenbestand abgebucht   |
| Terrace POS       | Terrassenlager | Terrassenverkäufe buchen den Terrassenbestand ab |

Wenn keine Lagereinheit ermittelt werden kann, kann Mathership keine korrekte Bestandsabbuchung erstellen.

## Rezeptverarbeitung

Wenn ein POS-Artikel einem Rezept zugeordnet ist, berechnet Mathership die benötigten Zutatenmengen aus den Rezeptzeilen.

Die Rezeptlogik berücksichtigt:

* Menge pro Portion
* Zuordnungsmenge
* Verkaufte Menge
* Verlustprozentsatz
* Unterrezepte
* Lagerregeln der Zutaten

Wenn ein Rezept ein weiteres Rezept enthält, löst Mathership auch das Unterrezept auf.

<Info>
  Burger-Rezept → Burgerbrötchen → Beef Patty → Saucenrezept → Mayonnaise, Ketchup, Gewürze
</Info>

Wenn der Burger verkauft wird, verarbeitet Mathership auch das Saucenrezept.

## Verlustprozentsatz

Rezeptzeilen können einen Verlust- oder Putzprozentsatz enthalten. Dieser wird verwendet, wenn mehr Rohzutat benötigt wird als die am Ende nutzbare Menge.

| Zutat   | Benötigte nutzbare Menge | Verlustprozentsatz | Bestandsabbuchung |
| ------- | -----------------------: | -----------------: | ----------------: |
| Tomate  |                   1.0 kg |                10% |          1.111 kg |
| Zwiebel |                   1.0 kg |                20% |           1.25 kg |

Wenn der Verlustprozentsatz falsch konfiguriert ist, meldet der Transfer eine `invalid_trim_pct`-Exception.

## Rezeptzyklen verhindern

Rezepte sollten weder direkt noch indirekt auf sich selbst verweisen.

<Warning>
  Schlechtes Beispiel: Burger-Rezept → Saucenrezept → Burger-Rezept
</Warning>

Dies erzeugt einen Rezeptzyklus. Ein Rezeptzyklus würde zu einer endlosen Auflösung führen, daher stoppt Mathership die Verarbeitung und zeichnet eine `recipe_cycle`-Exception auf.

## Nicht zugeordnete POS-Artikel

Ein nicht zugeordneter POS-Artikel ist ein verkaufter Artikel, der keine Zuordnung hat.

| Verkaufte POS-Artikel | Ergebnis                                 |
| --------------------- | ---------------------------------------- |
| Espresso              | Wird verarbeitet, wenn zugeordnet        |
| Cola 0.33 l           | Wird verarbeitet, wenn zugeordnet        |
| Neuer Saisonartikel   | Wird übersprungen, wenn nicht zugeordnet |

Nicht zugeordnete Artikel sind während der Einrichtung üblich. Nutze sie als Arbeitsliste für fehlende Zuordnungen.

Nachdem fehlende Zuordnungen erstellt wurden, verarbeite das betroffene Datum erneut oder führe eine Migration erneut aus.

## Häufige Zuordnungsfehler

| Fehler                 | Bedeutung                                                         |
| ---------------------- | ----------------------------------------------------------------- |
| `recipe_not_found`     | Das ausgewählte Rezept existiert nicht                            |
| `ingredient_not_found` | Die ausgewählte Zutat existiert nicht                             |
| `validation_error`     | Erforderliche Zuordnungsdaten fehlen oder sind ungültig           |
| `unauthorized_access`  | Die Zuordnung gehört nicht zum aktuellen Benutzer                 |
| `unmapped_pos_item`    | Ein POS-Artikel wurde verkauft, aber es existiert keine Zuordnung |
| `recipe_cycle`         | Ein Rezept verweist über Rezeptzeilen auf sich selbst             |
| `invalid_trim_pct`     | Eine Rezeptzeile hat einen ungültigen Verlustprozentsatz          |
| `no_issue_storage`     | Es konnte keine Lagereinheit ermittelt werden                     |
| `negative_stock`       | Die Abbuchung würde negativen Bestand erzeugen                    |

## Checkliste für Zuordnungen

Prüfe vor der Aktivierung eines POS-Transfers:

* Wichtige POS-Produkte sind synchronisiert
* Jeder relevante Verkaufsartikel ist zugeordnet
* Rezepte enthalten korrekte Zutatenzeilen
* Mengen sind realistisch
* Einheiten sind korrekt
* Lagereinheiten sind verknüpft
* Ein Testtransfer wurde im Bestands-Ledger geprüft

## Gute Zuordnungsbeispiele

| POS-Artikel | Gute Zuordnung                   | Warum                                           |
| ----------- | -------------------------------- | ----------------------------------------------- |
| Cola 0.33 l | Zutat: Cola-Flasche, Menge 1     | Einfacher verpackter Artikel                    |
| Espresso    | Zutat: Kaffeebohnen, Menge 0.009 | Direkte Zutatenabbuchung                        |
| Burger      | Rezept: Burger-Rezept, Menge 1   | Vorbereitetes Gericht mit mehreren Zutaten      |
| Partyplatte | Rezept: Platten-Rezept, Menge 4  | Ein Verkauf entspricht mehreren Rezeptportionen |

## Schlechte Zuordnungsbeispiele

| Problem                                             | Warum es riskant ist                                        |
| --------------------------------------------------- | ----------------------------------------------------------- |
| Jedes Gericht direkt einer einzelnen Zutat zuordnen | Rezeptzutaten fehlen dann                                   |
| Unklare POS-Namen verwenden                         | Zuordnungen sind schwer zu pflegen                          |
| Falsche Mengenfaktoren verwenden                    | Bestandsabbuchungen werden zu hoch oder zu niedrig          |
| Keine Lagereinheit verknüpft                        | Der Transfer kann nicht vom richtigen Ort abbuchen          |
| Rezepte ohne Zutatenzeilen                          | Rezeptverkäufe erzeugen keine sinnvollen Bestandsbewegungen |

## Zuordnungen aktualisieren

Zuordnungen können jederzeit geändert werden. Nach Änderungen an Zuordnungen musst du möglicherweise historische Daten erneut verarbeiten.

<Tabs>
  <Tab title="Lightspeed">
    * Verwende **Manual Transfer** für ein Datum
    * Verwende **Re-run Migration** für einen größeren historischen Zeitraum
  </Tab>

  <Tab title="SIDES">
    * Verwende **Manual Transfer** für ein Datum
    * Verwende **Re-run Migration**, wenn historische Belegpositionen erneut verarbeitet werden sollen
  </Tab>
</Tabs>

## Eine Zuordnung testen

So testest du eine Zuordnung:

<Steps>
  <Step title="POS-Artikel auswählen">
    Wähle einen POS-Artikel mit bekannten Verkäufen aus.
  </Step>

  <Step title="Bestätigen, dass die Zuordnung existiert">
    Bestätige, dass der POS-Artikel zugeordnet ist.
  </Step>

  <Step title="Ziel prüfen">
    Bestätige, dass die zugeordnete Zutat oder das zugeordnete Rezept korrekt ist.
  </Step>

  <Step title="Mengenfaktor prüfen">
    Bestätige, dass der Mengenfaktor korrekt ist.
  </Step>

  <Step title="Manuellen Transfer ausführen">
    Führe einen manuellen Transfer für ein Datum aus.
  </Step>

  <Step title="Bestands-Ledger öffnen">
    Prüfe die erstellte Bestandsbewegung.
  </Step>

  <Step title="Ergebnis vergleichen">
    Vergleiche die abgebuchte Menge mit der erwarteten Menge.
  </Step>
</Steps>

| Testartikel     | Erwartetes Ergebnis                     |
| --------------- | --------------------------------------- |
| 10 × Espresso   | 0.09 kg Kaffeebohnen abgebucht          |
| 5 × Cola 0.33 l | 5 Flaschen abgebucht                    |
| 2 × Burger      | Zutaten für 2 Burgerportionen abgebucht |

## Best Practices

<CardGroup cols={2}>
  <Card title="Mit Topsellern beginnen" icon="ranking-star">
    Beginne mit den am häufigsten verkauften POS-Artikeln.
  </Card>

  <Card title="Rezepte für Gerichte verwenden" icon="utensils">
    Verwende Rezepte für vorbereitete Gerichte, Getränke, Menüs und Artikel mit mehreren Zutaten.
  </Card>

  <Card title="Zutaten für einfache Artikel verwenden" icon="carrot">
    Verwende direkte Zutat-Zuordnungen für einfache verpackte Artikel.
  </Card>

  <Card title="POS-Namen stabil halten" icon="tag">
    Änderungen an POS-Artikelnamen können Zuordnungen unterbrechen.
  </Card>

  <Card title="Mengen sorgfältig prüfen" icon="calculator">
    Falsche Mengenfaktoren machen Bestandsabbuchungen zu hoch oder zu niedrig.
  </Card>

  <Card title="Vor Automatisierung testen" icon="clipboard-check">
    Teste ein Datum manuell, bevor du Automatisierung aktivierst.
  </Card>

  <Card title="Nicht zugeordnete Artikel prüfen" icon="magnifying-glass">
    Prüfe nicht zugeordnete Artikel nach dem ersten Transfer.
  </Card>

  <Card title="Ledger prüfen" icon="list-check">
    Prüfe den Bestands-Ledger nach jeder größeren Änderung an Zuordnungen.
  </Card>
</CardGroup>

<Warning>
  Lösche Zuordnungen nur, wenn der POS-Artikel nicht mehr verarbeitet werden soll.
</Warning>

## Verwandte Seiten

<CardGroup cols={2}>
  <Card title="Lightspeed K-Series" icon="bolt" href="/en/restaurants/integrations/lightspeed">
    Verbinde Lightspeed und verarbeite POS-Verkäufe.
  </Card>

  <Card title="Sides POS" icon="plug" href="/en/restaurants/integrations/sides-pos">
    Verbinde Sides POS und synchronisiere Filialen und Produkte.
  </Card>

  <Card title="CSV-Upload" icon="file-csv" href="/en/restaurants/integrations/pos-csv-upload">
    Lade POS-Verkaufsdaten aus CSV-Dateien hoch.
  </Card>

  <Card title="Bestands-Ledger" icon="list-check" href="/en/restaurants/inventory/inventory-ledger">
    Prüfe Bestandsbewegungen, die aus POS-Transfers erstellt wurden.
  </Card>
</CardGroup>

## Schlechte Zuordnungsbeispiele

| Problem                                             | Warum es riskant ist                                        |
| --------------------------------------------------- | ----------------------------------------------------------- |
| Jedes Gericht direkt einer einzelnen Zutat zuordnen | Rezeptzutaten fehlen dann                                   |
| Unklare POS-Namen verwenden                         | Zuordnungen sind schwer zu pflegen                          |
| Falsche Mengenfaktoren verwenden                    | Bestandsabbuchungen werden zu hoch oder zu niedrig          |
| Keine Lagereinheit verknüpft                        | Der Transfer kann nicht vom richtigen Ort abbuchen          |
| Rezepte ohne Zutatenzeilen                          | Rezeptverkäufe erzeugen keine sinnvollen Bestandsbewegungen |

## Zuordnungen aktualisieren

Zuordnungen können jederzeit geändert werden. Nach Änderungen an Zuordnungen musst du möglicherweise historische Daten erneut verarbeiten.

<Tabs>
  <Tab title="Lightspeed">
    * Verwende **Manual Transfer** für ein Datum
    * Verwende **Re-run Migration** für einen größeren historischen Zeitraum
  </Tab>

  <Tab title="SIDES">
    * Verwende **Manual Transfer** für ein Datum
    * Verwende **Re-run Migration**, wenn historische Belegpositionen erneut verarbeitet werden sollen
  </Tab>
</Tabs>

<Steps>
  <Step title="POS-Artikel auswählen">
    Wähle einen POS-Artikel mit bekannten Verkäufen aus.
  </Step>

  <Step title="Bestätigen, dass die Zuordnung existiert">
    Bestätige, dass der POS-Artikel zugeordnet ist.
  </Step>

  <Step title="Ziel prüfen">
    Bestätige, dass die zugeordnete Zutat oder das zugeordnete Rezept korrekt ist.
  </Step>

  <Step title="Mengenfaktor prüfen">
    Bestätige, dass der Mengenfaktor korrekt ist.
  </Step>

  <Step title="Manuellen Transfer ausführen">
    Führe einen manuellen Transfer für ein Datum aus.
  </Step>

  <Step title="Bestands-Ledger öffnen">
    Prüfe die erstellte Bestandsbewegung.
  </Step>

  <Step title="Ergebnis vergleichen">
    Vergleiche die abgebuchte Menge mit der erwarteten Menge.
  </Step>
</Steps>

<CardGroup cols={2}>
  <Card title="Mit Topsellern beginnen" icon="ranking-star">
    Beginne mit den am häufigsten verkauften POS-Artikeln.
  </Card>

  <Card title="Rezepte für Gerichte verwenden" icon="utensils">
    Verwende Rezepte für vorbereitete Gerichte, Getränke, Menüs und Artikel mit mehreren Zutaten.
  </Card>

  <Card title="Zutaten für einfache Artikel verwenden" icon="carrot">
    Verwende direkte Zutat-Zuordnungen für einfache verpackte Artikel.
  </Card>

  <Card title="POS-Namen stabil halten" icon="tag">
    Änderungen an POS-Artikelnamen können Zuordnungen unterbrechen.
  </Card>

  <Card title="Mengen sorgfältig prüfen" icon="calculator">
    Falsche Mengenfaktoren machen Bestandsabbuchungen zu hoch oder zu niedrig.
  </Card>

  <Card title="Vor Automatisierung testen" icon="clipboard-check">
    Teste ein Datum manuell, bevor du Automatisierung aktivierst.
  </Card>

  <Card title="Nicht zugeordnete Artikel prüfen" icon="magnifying-glass">
    Prüfe nicht zugeordnete Artikel nach dem ersten Transfer.
  </Card>

  <Card title="Ledger prüfen" icon="list-check">
    Prüfe den Bestands-Ledger nach jeder größeren Änderung an Zuordnungen.
  </Card>
</CardGroup>

<Warning>
  Lösche Zuordnungen nur, wenn der POS-Artikel nicht mehr verarbeitet werden soll.
</Warning>
