Zum Inhalt

FAQ – Import Export Pro

Dateiformate und Quellen

Welche Dateiformate werden unterstützt?

CSV, XLSX und XML – jeweils mit umfangreichen Konfigurations-Optionen (Encoding, Trenner, Sheets, XPath, Namespaces).

Funktioniert FTP/SFTP-Anbindung?

Das Plugin selbst zieht keine Dateien per FTP. Lass den Lieferanten direkt in Dein var/import/-Verzeichnis schreiben (per FTP/SFTP) oder lass einen Cron-Sync laufen. Sobald die Datei da ist, übernimmt das Plugin.

Kann das Plugin direkt aus Datenbanken oder APIs lesen?

Nein, nur aus Dateien. Für API-Quellen brauchst Du einen externen Connector, der die Daten als Datei ablegt – dann übernimmt das Plugin den Rest.

Werden Bilder/Medien importiert?

Ja, bei media-Entity. Quelle: CSV/XLSX mit URLs oder Pfaden, das Plugin lädt die Dateien runter und speichert sie in der Shopware-Media-Bibliothek. Bei Produkten kann das Bild über Custom Mapping als Media-Verknüpfung gesetzt werden.

DAL und Datenmodell

Werden Custom Fields unterstützt?

Ja, vollständig. Im Mapping-UI erscheinen alle Custom Fields aller relevanten Custom-Field-Sets als Ziel-Felder. Der Resolver schreibt sauber in customFields.<technical_name>.

Werden Übersetzungen unterstützt?

Ja. Wenn die Quelle Spalten wie name_de, name_en hat, kannst Du einen Sprach-Resolver anwenden, der pro Sprache in die richtige translation schreibt. Alternativ: pro Profil eine feste Sprache wählen.

Wie funktioniert der Variant-Import?

Variants sind in Shopware eigene Produkte mit parentId. Im Plugin gibt es zwei Wege:

  1. Hierarchische CSV mit Master/Variant-Zeilen und einer Eltern-Markierung
  2. Zwei Pässe: erst die Master-Produkte importieren, dann mit zweitem Profil die Variants (referenzieren das Master über die ProductNumber).

Beide funktionieren – Pfad 2 ist robuster bei sehr großen Variants-Mengen.

Werden Steuersätze und Preise korrekt gerechnet?

Ja. Preis-Resolver kennt Brutto/Netto, kann Steuersatz aus der Quelle nutzen oder aus dem Shopware-Steuersatz des Produkts ableiten. Standard: Preise werden so geschrieben, wie sie kommen; wenn nur Netto-Preise vorliegen, rechnet das Plugin Brutto via Produkt-Steuersatz.

Performance und Skalierung

Wie viele Datensätze kann das Plugin verarbeiten?

Getestet bis 500.000 Datensätze in einem Job. Bei >1 Mio. empfiehlt sich eine Splittung in mehrere Profile (z.B. eines pro Kategorie/Hersteller).

Wie schnell ist ein Import?

Faustregel: 500–1.500 Datensätze pro Minute bei Standard-Produkten ohne Variants. Stark abhängig von Mapping-Komplexität (z.B. Kategorie-Pfad-Auflösung kostet Zeit), Custom Fields (mehr Spalten = mehr Mapping-Arbeit), Memory und DB-Performance.

Läuft der Job im Webserver oder per CLI?

Default: Webserver (über Shopware-Scheduler im Background). Bei sehr großen Jobs empfehlen wir CLI:

php bin/console kommora:iep:run <profile> --no-interaction

Das umgeht den PHP-Memory-Limit-Konflikt mit dem Webserver-Profil.

Job-Logs und Audit

Wie lange werden Job-Logs aufbewahrt?

Standard 90 Tage. In der Plugin-Konfig anpassbar.

Werden auch die Originaldateien aufbewahrt?

Ja. Pro Job-Log wird die Original-Datei mit Zeitstempel-Präfix in var/import/_archive/ (bzw. _error/ bei Fehlern) verschoben. Im Job-Log-Detail kannst Du sie als Download laden – nützlich für Buchhaltung/Audit.

Kann ich einen Job rückgängig machen?

Nein, das Plugin macht keine Rollbacks. Bei riskanten Imports nutze Dry-Run zuerst, oder mache vorher ein mysqldump. Bei Exporten ist die Frage moot (nichts wird in der DB geändert).

Mehrere Shops / Sales-Channels

Funktioniert das Plugin in Multi-Sales-Channel-Konfigurationen?

Ja. Pro Profil legst Du den Ziel-Sales-Channel fest (für Visibilities, Preise pro Channel, etc.). Wenn Du in mehrere Channels gleichzeitig importieren willst, einfach mehrere Profile anlegen oder das Mapping um eine Channel-Spalte erweitern.

Multi-Sprachen-Import in einem Pass?

Ja. Die Sprach-Resolver schreiben pro Sprache in eine eigene translation. Stelle sicher, dass die Spalten in der Quelldatei klar benannt sind (name_de, name_en, desc_de, …) – das Mapping wird sonst manuell.

Fehlerbehandlung

Was passiert bei Validierungsfehlern?

Default-Verhalten (strict): der Datensatz wird übersprungen und ins Job-Log geschrieben, der Rest läuft weiter. Status des Jobs: partial. Über die Mail-Benachrichtigung bekommst Du eine Zusammenfassung.

Was passiert wenn die Quelldatei kaputt ist?

Der Job startet, scheitert beim Parsing (z.B. ungültiges XML, falsches Encoding) und endet mit Status failed. Die Datei landet in var/import/_error/. Im Job-Log siehst Du die Parsing-Fehlermeldung.

Werden Importe atomisch ausgeführt?

Nein, nicht über alle Datensätze. Jeder einzelne Datensatz ist eine eigene DAL-Transaktion. Wenn Datensatz 500 fehlschlägt, sind Datensätze 1–499 bereits geschrieben und bleiben es.

Kann ich pro Datensatz prüfen, ob er bereits importiert wurde?

Ja. Das Plugin schreibt im Detail-Log (wenn aktiviert) pro Datensatz, ob er neu angelegt, aktualisiert oder übersprungen wurde.

Sonstiges

Gibt es eine API für Programmatic-Triggern von Jobs?

Über die Shopware-Admin-API: POST /api/_action/kommora-iep/profile/{id}/run. Authentifizierung via OAuth-Bearer-Token wie üblich. Antwort: Job-Log-ID, mit der Du den Status pollen kannst.

Funktioniert das Plugin mit dem Shopware-Standard-Import?

Ja, beide existieren parallel. Du kannst weiterhin den Standard-Import nutzen, wo er passt; das Plugin füllt die Lücken, wo der Standard nicht reicht.

→ Bei weiteren Fragen: Troubleshooting oder support@kommora.de.