Zum Inhalt

Feld-Mapping

Im Feld-Mapping legst du fest, welcher Wert in der Eingangsdatei auf welches Shopware-Feld in der finalen Bestellung gemappt wird.

Beispiel: dein Großkunde sendet eine CSV mit den Spalten email, sku, qty. In Shopware brauchen wir aber header.customerEmail, lineItem.productNumber, lineItem.quantity. Genau das macht das Mapping.

Mapping anlegen

  1. Importprofil öffnen → ganz nach unten zum Card Feld-Mapping scrollen
  2. Auf + Mapping hinzufügen klicken — eine neue leere Zeile erscheint
  3. Im Inline-Edit-Modus die Felder ausfüllen
  4. Mit Klick auf das blaue ✓ rechts speichern

Feld-Mapping mit 3 aktiven Mappings

Mapping-Felder

Feld Bedeutung
Ziel-Feld (Shopware) Was in der Bestellung gesetzt wird (Dropdown mit allen erlaubten Werten)
Quell-Pfad (Eingangsdatei) Dotted-Path in die geparste Eingangsdatei (z. B. rows.0.email)
Transformer Optional: Wert vor dem Setzen verändern (trim, upper, lookup, …)
Pflicht Wenn an, schlägt die Pipeline fehl, wenn der Wert nicht gefunden wird
Priorität Reihenfolge bei mehreren Mappings auf das gleiche Feld (höher = später)

Ziel-Felder (Übersicht)

Header (gilt für die ganze Bestellung)

Ziel-Feld Typ Bedeutung
header.sourceReference string Externe Referenz (z. B. PO-Nummer) — landet in der Bestellung als Notiz
header.customerEmail string E-Mail des Kunden — Pflicht bei Match-Strategie: Per E-Mail
header.customerNumber string Kundennummer — Pflicht bei Match-Strategie: Per Kundennummer
header.customerName string Anzeigename (für die Bestellung)
header.currencyIsoCode string ISO-Code der Währung (z. B. EUR)
header.requestedDeliveryDate datetime Wunsch-Liefertermin
header.billingStreet, billingZip, billingCity, billingCountryIso string Rechnungsadresse
header.shippingStreet, shippingZip, shippingCity, shippingCountryIso string Lieferadresse
header.comment string Kunden-Kommentar zur Bestellung

LineItem (gilt pro Bestellzeile)

Ziel-Feld Typ Bedeutung
lineItem.lineNumber string Position in der Bestellung
lineItem.productNumber string Artikelnummer — Pflicht bei Produkt-Strategie: Artikelnummer
lineItem.ean string EAN/GTIN — Pflicht bei Produkt-Strategie: EAN
lineItem.manufacturerNumber string Hersteller-Nummer — Pflicht bei Produkt-Strategie: Hersteller-Nummer
lineItem.customerProductNumber string Kunden-eigene SKU (für Cross-Reference, optional)
lineItem.description string Zusätzliche Produktbeschreibung
lineItem.quantity number Menge — Standard 1
lineItem.unitPrice number Einzelpreis aus der Bestelldatei
lineItem.totalPrice number Gesamtpreis pro Position
lineItem.requestedDeliveryDate datetime Liefertermin pro Position

Quell-Pfade (Dotted-Notation)

Der Quell-Pfad zeigt innerhalb der geparsten Eingangsdatei auf den Wert. Die Notation hängt vom Format ab:

CSV

Die CSV wird als Liste von Objekten geparst. Mappe Header-Werte mit rows.0.<Spalte> (= erste Zeile), LineItem-Werte mit <Spalte> (= aktuelle Zeile beim Iterieren der Items).

Beispiel-CSV:

email;sku;qty
b2b@example.com;SW10000;2
b2b@example.com;SW10001;1

Mapping:

Ziel-Feld Quell-Pfad
header.customerEmail rows.0.email
lineItem.productNumber sku
lineItem.quantity qty

JSON

Direkt die Verschachtelung des JSON-Dokuments. Header-Werte aus dem Wurzel-Objekt, LineItem-Werte relativ zu jedem Item.

Beispiel-JSON:

{
  "buyer": {
    "email": "b2b@example.com",
    "customerNumber": "1337"
  },
  "items": [
    { "sku": "SW10000", "qty": 2 },
    { "sku": "SW10001", "qty": 1 }
  ]
}

Mapping (Profil mit lineItemsPath = items):

Ziel-Feld Quell-Pfad
header.customerEmail buyer.email
header.customerNumber buyer.customerNumber
lineItem.productNumber sku
lineItem.quantity qty

XML

XML wird über SimpleXML geparst und in eine assoziative Struktur umgewandelt.

Beispiel-XML:

<?xml version="1.0" encoding="UTF-8"?>
<Order>
    <Buyer>
        <EmailAddress>b2b@example.com</EmailAddress>
    </Buyer>
    <OrderLines>
        <OrderLine>
            <SKU>SW10000</SKU>
            <Quantity>2</Quantity>
        </OrderLine>
    </OrderLines>
</Order>

Mapping (Profil mit lineItemsPath = Order.OrderLines.OrderLine):

Ziel-Feld Quell-Pfad
header.customerEmail Order.Buyer.EmailAddress
lineItem.productNumber SKU
lineItem.quantity Quantity

Transformer-Library

Optional kannst du den Wert vor dem Setzen umwandeln:

Transformer Beispiel Was es tut
trim " ABC ""ABC" Leerzeichen am Anfang/Ende entfernen
upper "abc""ABC" Groß-Schreibung
lower "ABC""abc" Klein-Schreibung
prefix "123""DE-123" Festen Präfix voranstellen
suffix "123""123-EU" Festen Suffix anhängen
replace "a-b""a_b" Suchen + Ersetzen
lookup "DE""Germany" Lookup-Tabelle anwenden (z. B. Länder-Code-Mapping)
date_format "02/05/2026""2026-05-02" Datums-Umformatierung

Die Transformer-Optionen werden im Inline-Edit als JSON-Wert hinterlegt (z. B. {"value":"DE-"} für Prefix).

Häufige Fehler

Fehler Ursache + Lösung
No matching customer found Mapping header.customerEmail zeigt auf falschen Pfad — prüfe in der Inbound-Detail-Ansicht unter „Geparste Daten", welcher Pfad tatsächlich auf den Wert zeigt
Some products could not be resolved Dieselbe Logik für lineItem.productNumber — Wert nicht gefunden oder Produkt-Strategie passt nicht
Pipeline läuft, aber Werte sind leer lineItemsPath im Profil zeigt auf falsche Liste — bei JSON z. B. items statt lineItems

Nächster Schritt

Eingangs-Queue & Pipeline — Datei hochladen, Pipeline starten, Ergebnis prüfen.