Tipps zum Umgang mit CSV-Dateien in Shopware

  • Aktualisiert

Die Funktion zum Import und Export von CSV-Dateien von Shopware ist hilfreich, wenn es um die Änderung oder Anlage einer großen Anzahl an Daten geht. Bei der Nutzung sind jedoch einige Dinge zu beachten – insbesondere beim Öffnen, Bearbeiten und Speichern der CSV-Dateien. Im Folgenden zeigen wir dir Schritt für Schritt für Microsoft Excel und LibreOffice Calc, was du berücksichtigen musst, damit die CSV-Datei in deinem Tabellenkalkulationsprogramm richtig angezeigt wird und auch wieder korrekt in Shopware importiert werden kann.

Was ist eine CSV-Datei und wie "funktioniert" sie?

Eine CSV-Datei ist eine einfache Textdatei, die Daten in Tabellenform speichert. Jede Zeile in der Datei entspricht einer Reihe von Daten, und die Werte innerhalb einer Zeile sind durch Semikolons oder andere Zeichen voneinander getrennt. Hier siehst du beispielhaft den Inhalt einer CSV-Datei, in welcher der absolute Bestand eines Produktes auf verschiedenen Lagerplätzen angegeben ist. Die erste Zeile gibt die jeweiligen Spaltennamen an.

Produktname;Produktnummer;Lager;Lagerkürzel;Lagerplatz;Standardlagerplatz;Bestand
"Aerodynamic Concrete CoffeeMatic";SW10071;Hauptlager;HL;unbekannt;nein;-24
"Aerodynamic Concrete CoffeeMatic";SW10071;Nachfülllager;NL;C-03-006;ja;150
"Aerodynamic Concrete CoffeeMatic";SW10071;Hauptlager;HL;B-02-002;nein;90
"Aerodynamic Concrete CoffeeMatic";SW10071;Hauptlager;HL;C-02-007;ja;50
"Aerodynamic Concrete CoffeeMatic";SW10071;Hauptlager;HL;C-03-004;nein;125

Wie wird eine CSV-Datei gelesen und verarbeitet?

1. Die Datei wird Zeile für Zeile gelesen – die Reihenfolge der Einträge spielt somit eine Rolle. Das heißt, wenn ein Eintrag mehrfach mit unterschiedlichen Werten vorkommt, wird der spätere Wert den vorherigen überschreiben. Hier ein Beispiel:

Die letzte Zeile der beispielhaften CSV-Datei von oben lautet wie folgt:

"Aerodynamic Concrete CoffeeMatic";SW10071;Hauptlager;HL;C-03-004;nein;125

Beim Lesen dieser Zeile wird für das Produkt SW10071 auf dem Lagerplatz C-03-004 im Hauptlager der Bestand 125 geschrieben. Angenommen es würde eine weitere Zeile in der CSV-Datei folgen, welche sich auf die gleiche Kombination aus Produktnummer, Lager und Lagerplatz bezieht, aber einen anderen Bestandswert enthält. Beispielsweise:

"Aerodynamic Concrete CoffeeMatic";SW10071;Hauptlager;HL;C-03-004;nein;100

Dann würde beim Lesen dieser Zeile nicht etwa 100 Stück zu den bereits geschriebenen 125 Stück addiert werden, sondern der Bestand für das Produkt SW10071 auf dem Lagerplatz C-03-004 im Hauptlager würde überschrieben werden. Der finale Bestand wäre demnach 100 Stück und nicht 225!

2. Es wird nur das verarbeitet, was in der Datei steht. Es werden keine eigenständigen logischen Annahmen getroffen. Wenn du beispielsweise Bestand vom Lagerplatz A zum Lagerplatz B umlagern möchtest, muss deine CSV-Datei hierfür zwei Zeilen enthalten.

Hier werden beispielhaft im Rahmen eines absoluten Bestandsimports in der ersten Zeile 90 Stück eines Produktes auf den Lagerplatz A-01-001 gebucht (absoluter Bestand = 90). In der zweiten Zeile werden 90 Stück des Produktes vom Lagerplatz B-02-002 entfernt (absoluter Bestand = 0)

Produktname;Produktnummer;Lager;Lagerkürzel;Lagerplatz;Standardlagerplatz;Bestand
"Aerodynamic Concrete CoffeeMatic";SW10071;Hauptlager;HL;A-01-001;nein;90
"Aerodynamic Concrete CoffeeMatic";SW10071;Hauptlager;HL;B-02-002;nein;0

Bei einem relativen Bestandsimport würde die gleiche Änderung so aussehen

Produktname;Produktnummer;Lager;Lagerkürzel;Lagerplatz;Standardlagerplatz;Änderung
"Aerodynamic Concrete CoffeeMatic";SW10071;Hauptlager;HL;A-01-001;nein;90
"Aerodynamic Concrete CoffeeMatic";SW10071;Hauptlager;HL;B-02-002;nein;-90

Wenn jeweils nur die erste Zeile in der CSV-Datei enthalten ist, würde nur Bestand auf dem neuen Lagerplatz eingebucht, aber kein Bestand auf dem alten Lagerplatz ausgebucht werden. In der Folge wäre dein tatsächlicher Bestand um 90 Stück zu hoch.

3. Der Ort des Imports entscheidet, welche Daten verändert werden können. Beispielsweise kannst du in der Bestandsübersicht durch einen CSV-Import nur die Bestände auf den jeweiligen Lagerplätzen verändern. Wenn du den Produktnamen in der Importdatei anpasst, hat dies keine Auswirkungen auf das tatsächliche Produkt. Wenn du einen Lagerplatz angibst, der nicht existiert, wird dieser nicht automatisch angelegt, sondern der betreffende Datensatz wird nicht importiert und es erscheint eine Fehlermeldung im Importbericht. Um Lagerplätze anzulegen, gibt es eine eigene Import-Schnittstelle, wo dementsprechend auch keine Bestände verändert werden können.

Grundsätzliches Vorgehen

Unabhängig des verwendeten Programms sind folgende Punkte bei der Bearbeitung der CSV-Datei für das Shopware Import/Export Tool zu berücksichtigen:

  • Exportiere das entsprechendes Profil als CSV-Datei aus Shopware und nutze es als Vorlage.
  • Datei als CSV-Datei in einem Tabellenkalkulationsprogramm öffnen.
  • Wichtig dabei: die Kodierung muss UTF-8 und das Trennzeichen ein Semikolon sein.
  • Abschließend muss die Datei erneut als Semikolon-getrennte CSV-Datei im UTF-8-Format exportiert bzw. gespeichert werden.

CSV-Import/Export mit Excel (ab Excel 2010)

  1. Führe zunächst einen CSV-Export mit dem gewünschten Profil in deinem Shopware Shop durch.
  2. Öffne ein neues Dokument in Excel.
  3. Importiere die CSV-Datei, indem du zum Tab Daten navigierst und dort auf Daten abrufen Aus Text klickst.
  4. Wähle Mit Trennzeichen versehen und als Dateiursprung Unicode (UTF-8) aus und klicke unten auf Weiter.
  5. Wähle als Trennzeichen das Semikolon aus.
  6. Achte beim Bearbeiten der Datei darauf, das gleiche Dezimaltrennzeichen zu verwenden, welches du auch im Import/Export Tool konfiguriert hast. In Excel kannst du über die erweiterten Optionen das Trennzeichen für Dezimalzahlen festlegen.
  7. Die exportierte Datei kann nun als Vorlage verwendet und entsprechend gefiltert und bearbeitet werden.
  8. Speichere die bearbeitete Datei als CSV-Datei im UTF-8-Format
  9. Importiere abschließend die CSV-Datei in deinen Shop.

CSV-Import/Export mit LibreOffice Calc

  1. Öffne LibreOffice.
  2. Wähle über Datei öffnen die CSV-Datei aus.
  3. Ähnlich wie in Excel öffnet sich ein Dialog, wo du du wie oben beschrieben Einstellungen vorgenommen werden müssen.
  4. Bestätige die Einstellungen über OK.
  5. Die exportierte Datei kann als Vorlage verwenden und entsprechend gefiltert und bearbeitet werden. Achte dabei darauf, dass du das gleiche Dezimaltrennzeichen wie in Shopware verwendest.
  6. Speichere die Datei als CSV-Datei im UTF-8-Format. Dafür wählst du Speichern unter aus und aktivierst den Haken bei Filtereinstellungen bearbeiten. Klicke danach auf CSV-Format benutzen und wähle im erscheinenden Dialog wieder das UTF-8-Format aus.

Was tun, wenn mein Tabellenkalkulationsprogramm keine UTF-8-Codierung unterstützt?

Wenn dein Tabellenkalkuationsprogramm keine valide UTF-8-Codierung unterstützt, kannst du die UTF-8-Codierung folgendermaßen sicherstellen: Öffne die bearbeitete CSV-Datei in einem Text-Editor und speichern Sie diese dort als UTF-8-codierte CSV-Datei. Durch diesen Umweg über den Editor kann die Datei korrekt in der UTF-8-Formatierung gespeichert werden.

Für den Import in Shopware muss die CSV-Datei UTF-8-codiert sein. Um sicherzugehen, prüfe den Import zuvor in einer Testumgebung oder im Staging-System. Bevor der Import in das Live-System vorgenommen wird, ist es ratsam, vorher ein Datenbankbackup zu erstellen.