Import und Export in Shopware: die zwölf Profile
Zwölf Profile bringt der Kern mit, für zwölf Entitäten. Eines davon kann nur exportieren — und genau das überrascht regelmäßig.
Import und Export sind in Shopware Bordmittel, und sie reichen weiter, als viele annehmen. Die Frage ist nur, wofür genau.
Die zwölf Profile
| Quellentität | Profil | Richtung |
|---|---|---|
product | default_product | Import und Export |
category | default_category | Import und Export |
customer | default_customer | Import und Export |
media | default_media | Import und Export |
newsletter_recipient | default_newsletter_recipient | Import und Export |
product_configurator_setting | default_variant_configuration_settings | Import und Export |
product_cross_selling | default_cross_selling | Import und Export |
product_price | default_advanced_prices | Import und Export |
property_group_option | default_properties | Import und Export |
promotion_discount | default_promotion_discounts | Import und Export |
promotion_individual_code | default_promotion_codes | Import und Export |
order | default_orders | nur Export |
Zwölf Profile, zwölf Entitäten, in 6.6.10.6 und 6.7.13.1 identisch.
Die eine Zeile, die überrascht
Bestellungen lassen sich nicht importieren. Das Profil ist als reiner Export angelegt.
Das ist keine Nachlässigkeit. Eine Bestellung ist kein Datensatz, sondern das Ergebnis einer Kette: Warenkorb, Preisregeln, Steuerberechnung, Zahlungsvorgang, Zustände. Eine Datei einzuspielen würde diese Kette umgehen und Bestellungen erzeugen, die rechnerisch nicht zusammenpassen.
Wer Bestellungen aus einem Altsystem übernehmen muss — der klassische Migrationsfall —, braucht dafür einen anderen Weg als Import/Export. In der Regel die Admin API, und auch dort mit Sorgfalt.
Was 6.7 geändert hat
Beim Schemavergleich zwischen den Linien fiel auf:
| Feld | 6.6 | 6.7 |
|---|---|---|
import_export_profile.name | vorhanden | entfallen |
import_export_profile.technical_name | NULL erlaubt | NOT NULL |
Für die Bedienung ändert das nichts. Für ein Skript, das Profile anlegt, schon: Ohne technischen Namen scheitert es ab 6.7. Das gehört zu einer kleinen Gruppe von Änderungen, die schreibende Integrationen still brechen — Was ein Versionssprung an der Datenbank wirklich tut.
Wo die Bordmittel enden
Was nicht in der Liste steht, geht damit nicht:
- Verkaufskanäle und deren Konfiguration
- Regeln und Preisregeln als Regelwerk (die Preise gehen, die Regeln nicht)
- Versand- und Zahlarten
- Textbausteine
- CMS-Erlebniswelten
- Bestellungen als Import
Für diese Fälle bleibt die Admin API — oder die Erkenntnis, dass es sich um Konfiguration handelt, die einmal von Hand gemacht und danach nicht mehr angefasst wird.
Was wir vor einem Import prüfen
- Steht die Entität auf der Liste? Wenn nein, ist Import/Export der falsche Weg.
- Passt die Richtung? Bei Bestellungen nur Export.
- Wie gehen Übersetzungen mit? Sprachabhängige Felder brauchen je Sprache eine Spalte — siehe Was Shopware übersetzbar macht.
- Was passiert mit schreibgeschützten Feldern? Ein gelesener Datensatz, der vollständig zurückgeschrieben wird, stolpert über sie.
- Läuft der Worker? Import und Export laufen über die Warteschlange.
Punkt 4 hat uns in einem eigenen Fall Credits gekostet, bevor es auffiel — nachzulesen in Produktdaten übersetzen, ohne Daten zu verlieren.
Grenzen dieser Messung
Gelesen wurde die Profilliste zweier Standardinstallationen. Nicht gemessen wurden Verhalten bei großen Dateien, Fehlertoleranz bei kaputten Zeilen und die Frage, wie sich ein abgebrochener Import auf den Bestand auswirkt. Das sind eigene Untersuchungen mit echten Daten.
Erweiterungen können eigene Profile mitbringen; die kommen zu den zwölf dazu.
Wenn ein Import aufgesetzt oder repariert werden muss, gehört das zu Shopware-Support.
Häufige Fragen
- Welche Entitäten kann ich mit Bordmitteln importieren?
- Zwölf: Produkt, Kategorie, Kunde, Medien, Newsletter-Empfänger, Varianten-Konfiguration, Cross-Selling, erweiterte Preise, Eigenschaften, Aktionsrabatte, Aktionscodes — und Bestellungen, die aber nur exportiert werden können.
- Warum lassen sich Bestellungen nicht importieren?
- Das Profil ist als reiner Export angelegt. Eine Bestellung entsteht aus einem Warenkorb mit Preisberechnung, Steuern und Zuständen — sie als Datei einzuspielen würde diese Kette umgehen.
- Was hat sich in 6.7 geändert?
- Das Feld name ist entfallen, technical_name ist Pflicht geworden. Ein Skript, das Profile anlegt und keinen technischen Namen mitschickt, scheitert ab 6.7.
- Kann ich eigene Profile anlegen?
- Ja, über die Administration — Spalten zuordnen, Trennzeichen wählen, speichern. Die Liste der Entitäten lässt sich damit aber nicht erweitern.
