Zum Inhalt
PDF

Feldzuordnung

Änderungen im Mapping

Werden Zuordnungen im Mapping angepasst ist in jedem Fall eine komplette Synchronisation des geänderten Objekttyps notwendig. Wird z.B. das Mapping von Artikeln angepasst, so ist eine Komplettübertragung aller Artikel vorzunehmen.

Überblick

  • Mapping-Dateien definieren die Zuordnung zwischen WinLine-Feldern und Shopware-Feldern
  • Für jeden Datentyp (Artikel, Bestellungen, Kunden) existieren eigene Mapping-Dateien
  • Die Dateien unterstützen sowohl JSON- als auch YAML-Format
  • Über die _overwrite-Dateien (z.B. article6_overwrite.yml) können kundenspezifische Anpassungen vorgenommen werden, ohne die Standard-Mapping-Dateien zu verändern
  • Im Mapping können Werte direkt übernommen, umgerechnet oder über Umsetzungstabellen transformiert werden

Workflow

Mapping anpassen:

  1. Die passende Mapping-Datei identifizieren (z.B. article6_overwrite.yml für Artikel)
  2. Gewünschte Feldzuordnung ergänzen oder anpassen
  3. Bei Bedarf eine Umsetzungstabelle im Unterordner Umsetzungstabellen/ anlegen
  4. Komplettsync für den geänderten Datentyp durchführen (z.B. alle Artikel neu synchronisieren)
  5. Ergebnis im Shop oder in der WinLine prüfen

Komplettsync erforderlich

Nach jeder Änderung am Mapping ist ein Komplettsync des betroffenen Objekttyps notwendig.

Mit Hilfe der Mapping-Dateien kann die Zuordnung zwischen WinLine- und Shopware-Feldern konfiguriert werden. Für Shopware 6 werden folgende Mapping-Dateien verwendet:

  • article6.yml / article6_overwrite.yml - Artikel-Mapping
  • order6.yml / order6.json - Bestell-Mapping
  • customer6.yml - Kunden-Mapping
  • customer6_kontakt.yml - Kontakte-Mapping
  • customer6_kontakt_exisiting.yml - Bestehende Kontakte-Mapping
  • index.json - Index-Datei für Mapping-Zuordnung

Die Mapping-Dateien unterstützen sowohl das JSON- als auch das YAML-Format.

Einfachste Beispiele wäre eine Direktübertragung eines Feldes der WinLine in eines im Shop (siehe EAN).
Des Weiteren ist naütlrich auch eine 1/0 Übertragung möglich, um bspw. einen aktiv/inaktiv im Shop zu generieren.

    "Variant":{
        "EAN":{
            "shop": "ean",
            "winline": "C075_EANCode" 
        },
        "ACTIVE":{
            "shop": "active",
            "winline": "C038_Inaktiv",
            "eval": "False if wl_data else True"
        }
    },

Umsetzungstabellen

Soll ein Wert im Mapping zunächst umgesetzt werden, wird eine Umsetzungstabelle im JSON format benötigt, diese muss in dem Unterordner /Umsetzungstabellen/<umsetzungsname>.json angelegt werden. Dieser Unterordner muss sich in dem Ordner des Mappings befinden. Im Mapping kann über den Aufruf self.umsetzungstabelle('<umsetzungsname>', wl_data) ein Wert transformiert werden. Der <umsetzungsname> ist der name der Umsetzungstabelle.

In der Umsetzungstabelle wird ein Wildcard Zeichen (Default:*) unterstützt und wenn kein Match gefunden wird, wird der original Wert zurückgegeben.

NOTE: Wird ein anderes Wildcard-Zeichen benötigt, weil die Daten selber den Stern enthalten, kann der Aufruf im Mapping um den Parameter wildcard='<Zeichen>' ergänzt werden.

Die Felder __comment__<NR> werden ignoriert und dienen nur dazu Informationen über die Umsetzungen anzuhängen.

Beispiel Umsetzungstabelle:

{
    "__comment__1": "3: UPS",
    "Standard Versand - Zone 3": "3",
    "__comment__2": "Bahnexpress",
    "Express": "4", 
    "Standard *": "5",
    "*": "6"
}

In dieser Beispiel Umsetzungstabelle werden Lieferarten umgesetzt. So wird der Wert Standard Versand - Zone 3 zu 3, alle anderen Werte die mit Standard beginnen zu 5 und wird kein Match gefunden wird der Wert 6 zurück gegeben. Ist kein Default Wert gewünscht ("*": "6") kann dieser einfach weggelassen werden und es wird der Ursprüngliche Wert zurückgegeben.