Import
Das Import-Modul des anyPIM ermöglicht die Massenübernahme von Produktdaten über standardisierte Excel-Dateien. Es richtet sich an Produktmanager und Data Stewards, die grosse Datenmengen effizient in das System einpflegen möchten -- ohne technische API-Kenntnisse.
Konzept
Der Import folgt dem Prinzip "Validierung vor Ausführung": Daten werden niemals direkt in die Datenbank geschrieben, ohne zuvor vollständig geprüft worden zu sein. Dadurch wird sichergestellt, dass fehlerhafte Datensätze keine inkonsistenten Zustände verursachen.
Dreiphasiger Importprozess
Der Import durchläuft drei klar getrennte Phasen:
Phase 1: Upload
Der Benutzer lädt eine Excel-Datei über die Import-Oberfläche hoch. Das System erkennt automatisch die enthaltenen Tabellenblätter (Tabs) und ordnet sie den internen Datentypen zu. Die Datei wird serverseitig gespeichert und steht für die Validierung bereit.
Phase 2: Validierung
In der Validierungsphase prüft das System jeden Datensatz auf:
- Schema-Konformität -- Pflichtfelder, Datentypen, gültige Enum-Werte
- Referenzauflösung -- Technische Namen werden in UUIDs aufgelöst
- Abhängigkeiten -- Referenzierte Entitäten müssen existieren (in der Datei oder im System)
- Duplikaterkennung -- Bereits vorhandene Datensätze werden für Upsert markiert
- Fuzzy Matching -- Tippfehler in Referenzen werden erkannt und Korrekturvorschläge angezeigt
Das Ergebnis ist ein detaillierter Validierungsbericht mit Fehlern, Warnungen und einer Vorschau der geplanten Änderungen (Diff-Ansicht: Anlegen, Aktualisieren, Überspringen).
Phase 3: Ausführung
Erst nach erfolgreicher Validierung und expliziter Bestätigung durch den Benutzer werden die Daten in die Datenbank geschrieben. Die Ausführung erfolgt transaktionsgesichert -- entweder werden alle Datensätze eines Tabs erfolgreich verarbeitet oder der gesamte Tab wird zurückgerollt. Nach Abschluss erhält der Benutzer einen Ergebnisbericht.
Excel-Vorlage: 14 Tabs
Die Importdatei besteht aus 14 Tabellenblättern, die in einer definierten Reihenfolge und Abhängigkeitsstruktur verarbeitet werden:
| Nr. | Tab | Beschreibung |
|---|---|---|
| 01 | Sprachen | Verfügbare Inhaltssprachen |
| 02 | Attributgruppen | Logische Gruppierung von Attributen |
| 03 | Einheitengruppen | Gruppen physikalischer Einheiten |
| 04 | Einheiten | Einzelne Masseinheiten mit Umrechnungsfaktoren |
| 05 | Attribute | Attributdefinitionen (19 Spalten) |
| 06 | Hierarchien | Master- und Ausgabehierarchien mit bis zu 6 Ebenen |
| 07 | Wertelisten | Vordefinierte Auswahlwerte für Attribute |
| 08 | Produkte | Stammdaten der Produkte (SKU, Name, Typ, Status) |
| 09 | Produktwerte | Attributwerte je Produkt, Sprache und Wiederholung |
| 10 | Varianten | Produktvarianten mit Zuordnung zum Elternprodukt |
| 11 | Variantenwerte | Attributwerte der Varianten |
| 12 | Medien | Medienzuordnungen zu Produkten |
| 13 | Preise | Preisinformationen mit Währung und Gültigkeit |
| 14 | Relationen | Beziehungen zwischen Produkten |
Hinweis
Nicht alle Tabs müssen befüllt sein. Sie können gezielt nur die Tabs verwenden, die für Ihren Import relevant sind. Abhängigkeiten werden sowohl innerhalb der Datei als auch gegen den bestehenden Datenbestand aufgelöst.
Upsert-Logik
Der Import arbeitet nach dem Upsert-Prinzip (Update or Insert):
- Neuer Datensatz: Wird angelegt, wenn kein Datensatz mit dem gleichen Identifikator (z. B. technischer Name, SKU) existiert.
- Bestehender Datensatz: Wird aktualisiert, wenn bereits ein Datensatz mit demselben Identifikator vorhanden ist. Dabei werden nur die in der Importdatei enthaltenen Felder überschrieben.
Dieses Verhalten ermöglicht sowohl initiale Datenübernahmen als auch inkrementelle Aktualisierungen mit derselben Importdatei.
Smart Matching
Das System nutzt intelligentes Matching, um Tippfehler in Referenzen automatisch zu erkennen:
- Levenshtein-Distanz mit einem Schwellwert von 85 %
- Case-Insensitive Vergleich
- Whitespace-Trimming vor dem Vergleich
Wird ein ähnlicher, aber nicht exakt übereinstimmender Wert gefunden, zeigt das System einen Korrekturvorschlag in der Validierungsvorschau an.
BMEcat-Import
Neben dem Excel-Import unterstützt das anyPIM den Import von Produktdaten im BMEcat-Format (Versionen 1.2 und 2005). BMEcat ist ein standardisiertes XML-Format für den elektronischen Austausch von Produktkatalogen, das vor allem im B2B-Bereich weit verbreitet ist.
Unterstützte BMEcat-Versionen
| Version | Standard | Beschreibung |
|---|---|---|
| BMEcat 1.2 | Klassisch | Weit verbreitet, besonders im deutschsprachigen Raum |
| BMEcat 2005 | Aktuell | Erweiterte Struktur mit zusätzlichen Elementen |
Import-Modi
Der BMEcat-Import unterstützt zwei Modi:
| Modus | Beschreibung |
|---|---|
| Update | Bestehende Daten werden aktualisiert, neue Datensätze angelegt (Upsert) |
| Delete & Insert | Alle vorhandenen Daten der betroffenen Entitäten werden gelöscht und neu importiert |
Importierte Daten
Folgende BMEcat-Elemente werden verarbeitet:
- Produkttypen und Produktstammdaten (PRODUCT)
- Attribute aus FEATURE/FNAME-Elementen
- Preise aus PRODUCT_PRICE_DETAILS
- Hierarchien aus CATALOG_GROUP_SYSTEM
- Hierarchie-Attributzuordnungen
- Produkt-Hierarchie-Zuordnungen (PRODUCT_TO_CATALOGGROUP_MAP)
- Produktbeziehungen (PRODUCT_REFERENCE)
- Medienreferenzen (MIME_INFO)
Validierung
Der BMEcat-Import bietet einen Validierungsmodus, der die XML-Datei prüft, ohne Daten zu importieren:
POST /api/v1/bmecat-import/validateDie Validierung erkennt fehlende Pflichtfelder, ungültige Referenzen und Strukturfehler im XML.
Technische Details
- Streaming-Verarbeitung -- Die XML-Datei wird mit XMLReader geparst, um auch große Dateien speichereffizient verarbeiten zu können.
- Transaktionssicherheit -- Der Import erfolgt transaktionsgesichert.
Weiterführende Dokumentation
- Excel-Format -- Detaillierte Spaltendokumentation aller 14 Tabs
- Validierung -- Validierungsregeln, Fehlermeldungen und Vorschau-Ansicht