# Feldmapping

Das Feldmapping legt fest, welche Felder aus dem Eingabeformat in welche Felder des Ausgabeformats übernommen werden – und wie sie dabei transformiert werden.

## Wann brauchen Sie Feldmapping?

- Wenn Ihr Quellsystem Feldnamen verwendet, die nicht mit dem Zielformat übereinstimmen
- Wenn Sie feste Werte (z. B. eine einheitliche Währung) setzen wollen
- Wenn Werte vorher umgeformt werden müssen (z. B. Datum, Großschreibung)
- Wenn bestimmte Felder bewusst ausgelassen werden sollen

Für Standard-Integrationen wie Shopware 6 oder cXML generiert Orderport sinnvolle Vorschläge – oft müssen Sie gar nichts anpassen.

## Mapping-Canvas öffnen

Das Feldmapping erreichen Sie auf zwei Wegen:

1. **Im Wizard** – Schritt 2 beim Erstellen einer neuen Pipeline
2. **Auf der Pipeline-Detailseite** – *Bearbeiten* → *Mapping*-Tab

## So funktioniert der Canvas

Der Canvas zeigt drei Spalten:

| Spalte | Bedeutung |
|---|---|
| **Links (blau)** | Quellfelder aus dem Eingabeformat |
| **Mitte** | Verbindung mit Mapping-Typ |
| **Rechts (grün)** | Zielfelder des Ausgabeformats |

### Felder verbinden

1. Klicken Sie auf ein **Quellfeld** (links) – es wird blau hervorgehoben
2. Klicken Sie auf ein **Zielfeld** (rechts) – die Verbindung wird erstellt
3. Das Mapping erscheint in der Mitte

### Auto-Mapping

Beim ersten Öffnen schlägt Orderport automatisch die wichtigsten Zuordnungen vor. Diese Vorschläge basieren auf bekannten Feldkorrespondenzen der jeweiligen Integration und können einzeln übernommen oder entfernt werden.

## Die vier Mapping-Typen

| Typ | Farbe | Wann verwenden? |
|---|---|---|
| **Direct** | Grün | Wert 1:1 übernehmen (z. B. Bestellnummer → Bestellnummer) |
| **Static** | Lila | Festen Wert setzen, unabhängig vom Eingangsdokument (z. B. Währung = "EUR") |
| **Transform** | Blau | Wert übernehmen und dabei eine Funktion anwenden |
| **Ignore** | Grau | Quellfeld explizit ignorieren (wird nicht übertragen) |

### Direct

Der Wert aus dem Quellfeld wird exakt in das Zielfeld übernommen. Häufigster Typ.

**Beispiel:** `OrderID` → `ORDER_ID` – die Bestellnummer wird 1:1 kopiert.

### Static

Ein fester Wert wird in das Zielfeld geschrieben, ohne ein Quellfeld zu verwenden.

**Beispiel:** `CURRENCY` = `EUR` – jede Bestellung erhält die Währung Euro.

So legen Sie ein Static-Mapping an:

1. Klicken Sie auf ein Zielfeld
2. Wählen Sie den Typ **Static**
3. Geben Sie den gewünschten Wert ein

### Transform

Der Wert aus dem Quellfeld wird übernommen, aber vorher durch eine Funktion verarbeitet.

**Verfügbare Funktionen:**

| Funktion | Beschreibung | Beispiel |
|---|---|---|
| `uppercase` | In Großbuchstaben | `"abc"` → `"ABC"` |
| `lowercase` | In Kleinbuchstaben | `"ABC"` → `"abc"` |
| `trim` | Leerzeichen am Anfang/Ende entfernen | `" abc "` → `"abc"` |
| `date_format` | Datumsformat ändern | `"2026-03-07T10:30:00"` → `"2026-03-07"` |
| `multiply` | Zahlenwert multiplizieren | `"10"` × 100 → `"1000"` |

**Beispiel:** `OrderDate` mit `date_format` (von `Y-m-d\TH:i:s` nach `Y-m-d`) – das Datum wird vom ISO-Format ins kurze Format umgewandelt.

### Ignore

Das Quellfeld wird bewusst nicht übertragen. Das ist nützlich, um zu dokumentieren, dass ein Feld absichtlich weggelassen wird.

## Dokumentvorschau

Am unteren Rand des Canvas können Sie eine **Dokumentvorschau** aufklappen:

- **Links:** ein Beispiel-Eingangsdokument
- **Rechts:** ein Beispiel-Ausgangsdokument

So sehen Sie sofort, welche Felder in welchem Format vorhanden sind.

## Mapping speichern

Klicken Sie auf **Speichern**, um Ihr Mapping zu sichern. Die Änderungen werden sofort wirksam – alle zukünftigen Bestellungen werden mit dem neuen Mapping transformiert.

> Bereits transformierte Bestellungen werden nicht rückwirkend geändert.

## Technische Details

### Array-Felder

Quellfelder mit `[]`-Notation (z. B. `items[].sku`) werden automatisch pro Index expandiert. Gleiches gilt für Zielfelder – Orderport erzeugt so viele Positionen im Zielformat, wie es Array-Einträge in der Quelle gibt.

### Default-Mapping

Wenn Sie kein Mapping hinterlegen, nutzt Orderport zur Laufzeit das von der jeweiligen Integration empfohlene Default-Mapping. Sie müssen also nicht zwingend selbst Mapping anlegen, bevor Sie Bestellungen empfangen können. Sobald Sie im Editor speichern, ersetzt Ihr Mapping das Default.

### Reihenfolge der Regeln

Die Reihenfolge, in der Sie Regeln anlegen, ist für das Ergebnis irrelevant. Sollten zwei Regeln dasselbe Zielfeld beschreiben, gewinnt die zuletzt definierte.

### Transformationsfunktionen

Die verfügbaren Funktionen sind fest: `uppercase`, `lowercase`, `trim`, `date_format`, `multiply`. Weitere Funktionen oder komplexe Logik (z. B. bedingte Werte, String-Konkatenation) werden bewusst konservativ ergänzt, um Mappings nachvollziehbar zu halten.

## Nächste Schritte

- [KI-Mapping](/docs/ai-mapping) – Vorschläge und Chat-Assistent
- [Duplikatserkennung](/docs/duplikatserkennung)
- [Bestellungen verwalten](/docs/bestellungen)
