Shopware

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.

Pixup MediaVeröffentlicht am 7 Min. Lesezeit

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ätProfilRichtung
productdefault_productImport und Export
categorydefault_categoryImport und Export
customerdefault_customerImport und Export
mediadefault_mediaImport und Export
newsletter_recipientdefault_newsletter_recipientImport und Export
product_configurator_settingdefault_variant_configuration_settingsImport und Export
product_cross_sellingdefault_cross_sellingImport und Export
product_pricedefault_advanced_pricesImport und Export
property_group_optiondefault_propertiesImport und Export
promotion_discountdefault_promotion_discountsImport und Export
promotion_individual_codedefault_promotion_codesImport und Export
orderdefault_ordersnur 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:

Feld6.66.7
import_export_profile.namevorhandenentfallen
import_export_profile.technical_nameNULL erlaubtNOT 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

  1. Steht die Entität auf der Liste? Wenn nein, ist Import/Export der falsche Weg.
  2. Passt die Richtung? Bei Bestellungen nur Export.
  3. Wie gehen Übersetzungen mit? Sprachabhängige Felder brauchen je Sprache eine Spalte — siehe Was Shopware übersetzbar macht.
  4. Was passiert mit schreibgeschützten Feldern? Ein gelesener Datensatz, der vollständig zurückgeschrieben wird, stolpert über sie.
  5. 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.
WeiterführendShopware-Support