Zum Inhalt springen
Stone & Water
Doku · 05 CSV-Import & Export

CSV-Import & Export · mehrsprachig, mit Mapping

Komplette Mehrsprachigkeit in einer Datei. Custom Fields als einzelne Spalten. Match per Artikelnummer, ID oder EAN. Mit Profilen, Datentyp-Erkennung und Batch-Sync.

Spaltenkonvention für Übersetzungen

Statt für jede Sprache eine eigene Datei: alle Sprachen in EINER CSV. Pro Sprache wird eine eigene Spalte angelegt. Spaltennamen folgen dem Muster:

  • name_de-DE, name_en-GB - Standard-Felder pro Sprache
  • cf_meinFeld_de-DE, cf_meinFeld_en-GB - Custom Fields pro Sprache

Beim Import werden Sprach-Spalten automatisch erkannt. Vorhandene Übersetzungen werden ergänzt, nicht überschrieben (JSON-Merge). Leere Zellen führen nicht zu Datenverlust - sie werden ignoriert.

Custom Fields als einzelne Spalten

Custom Fields, die in der Konfigmatrix unter „Custom Fields" einzeln aktiviert sind, bekommen im Export jeweils eine eigene Spalte (cf_meinFeld). Beim Import werden sie direkt erkannt - kein JSON-Blob mehr.

Unterstützte Typen: Text, Zahl, Boolean, Datum, Auswahl, Mehrfachauswahl (Pipe-separiert), JSON.

Vordefinierte Export-Profile

Sofort einsetzbare Spaltensets für typische Use-Cases - anpassbar, als neues Profil speicherbar:

  • Stammdaten - Artikelnummer, Name, EAN, Hersteller
  • SEO - Meta-Daten in allen Sprachen
  • Preise & Lager - alle Preisfelder + Bestand + Grundpreis + Einkaufspreis brutto/netto getrennt
  • Eigenschaften & Custom Fields - Properties + alle aktiven CF-Spalten
  • Cross-Selling - alle Streams pro Produkt
  • Übersetzungen - alle Sprachen für alle übersetzbaren Felder
  • Bilder - Cover + Galerie als URLs

Preis-Spalten - Brutto und Netto getrennt

Für den Einkaufspreis stehen zwei getrennte Spalten zur Verfügung:

  • purchasePrice_gross - Einkaufspreis brutto (inkl. MwSt.)
  • purchasePrice_net - Einkaufspreis netto (exkl. MwSt.)

Beim Import sind alle Kombinationen möglich:

  • Nur Brutto angegeben → Netto wird über die Steuerklasse automatisch berechnet
  • Nur Netto angegeben → Brutto wird über die Steuerklasse automatisch berechnet
  • Beide angegeben → Werte werden 1:1 übernommen
  • Legacy-Spalte purchasePrice → bleibt rückwärtskompatibel (als Brutto interpretiert)

Alias-Erkennung

Der Importer erkennt auch deutsche und englische Schreibweisen automatisch:

  • ek_brutto, einkaufspreis_brutto, cost_gross, purchase_price_gross → werden auf purchasePrice_gross gemappt
  • ek_netto, einkaufspreis_netto, cost_net, purchase_price_net → werden auf purchasePrice_net gemappt

CSV-Export

  • Spalten beliebig auswählbar
  • Spalten-Trenner: Komma, Semikolon, Tab
  • Dezimaltrennzeichen: Punkt (12.50) für internationales Excel, Komma (12,50) für deutsches Excel
  • Encoding: UTF-8 mit oder ohne BOM
  • Aktive Filter berücksichtigen - Filter aus dem CSV-Modal werden auf den Export angewandt
  • Varianten-Export als eigene Zeilen - pro Profil oder global aktivierbar

Spalte „Einheit (Name)"

Zusätzlich zur Einheit-ID wird die Produkteinheit als Klarname exportiert („Liter", „Kilogramm", „Stück") - Excel-freundlich, ohne UUID-Übersetzung. Im Profil „Preise & Lager" ist der Klarname als Standard aktiviert.

CSV-Import

Ablauf

  1. Datei hochladen (Drag-and-Drop oder File-Picker) oder URL zu CSV/TSV/XML eingeben
  2. Vorschau der ersten Zeilen prüfen
  3. Spalten-Mapping anzeigen - automatische Erkennung anhand der Header
  4. Mapping anpassen falls Spaltennamen abweichen
  5. Datentyp-Erkennung-Vorschau prüfen
  6. Import-Modus wählen: nur aktualisieren, nur erstellen, oder beides
  7. Trockenlauf (Dry-Run) zeigt: wie viele neu, wie viele Update, wie viele übersprungen
  8. Echter Import mit Progress-Bar und ETA - abbrechbar

Match-Logik

  • Artikelnummer (productNumber) - Standard
  • ID (UUID)
  • EAN

Auflösung per Artikelnummer oder EAN

Felder die normalerweise eine UUID erwarten (parentId, mainVariantId) können beim Import auch über Artikelnummer oder EAN aufgelöst werden - UUIDs sind nicht zwingend nötig. Lookup-Cache verhindert doppelte Treffer.

Auto-Erkennung „Einheit"

Der Importer erkennt sowohl „Einheit (Name)" als auch „Produkteinheit" als Spaltennamen automatisch und löst Klarnamen wie „Liter" oder „Kilogramm" in die korrekte Einheit-ID auf. Auch Pluralformen werden erkannt.

Automatische Lookups

Beim Import werden fehlende Entitäten automatisch erstellt: Hersteller, Tags, Kategorien, Steuerklassen, Lieferzeiten, Eigenschaften und Produkteinheiten.

DATANORM-Import (4.0 & 5.0)

Zusätzlich zu CSV liest der Importer das DATANORM-Format aus Lieferanten-Katalogen (verbreitet im Handwerk und Großhandel):

  • Version 4.0 und 5.0 werden über den V;-Header automatisch erkannt (inkl. Hersteller); 5.0 hat ein eigenes Feldlayout für Name, Preis und EAN.
  • Volume-Dateien mit beliebiger Endung .001-.999 (z.B. DATANORM.500).
  • Satzarten: A (Artikel-Stammsatz), B (Warengruppen), T (Langtext), P (Preise/DATPREIS).

Datentyp-Erkennung

  • Boolean: 1/0, true/false, ja/nein, aktiv/inaktiv
  • Datum: ISO (2026-05-15) und deutsche Notation (15.05.2026)
  • Zahl: Komma oder Punkt als Dezimaltrenner, Tausender-Trenner werden erkannt
  • Array: Pipe-Separator (|) bei Multi-Select-Custom-Fields
  • JSON: bei komplexen Feldern

Spalten-Mapping

Falls CSV-Header nicht mit Shopware-Feldnamen übereinstimmen, kann das Mapping manuell überschrieben werden. Per Drag-and-Drop zwischen CSV-Spalte und Shopware-Feld. Mapping als Vorlage speicherbar - pro User oder shopweit.

Import-Protokoll

Jeder Import wird unter PIM → Import-Historie protokolliert:

  • Zeitstempel, User, Anzahl Datensätze
  • Erfolge (neu / aktualisiert / übersprungen)
  • Fehler mit Zeilennummer und Begründung
  • Download der originalen CSV-Datei (30 Tage Aufbewahrung)

Berechtigungen

Sicherheit: Der Import-Tab ist ausschließlich Superadmins zugänglich - zusätzlich zur Berechtigung staw_pim.csv_import. Nicht-Superadmins sehen den Tab nicht. Export-Tab wird ausgeblendet, wenn staw_pim.csv_export fehlt.