Übersicht der Shopware 6 Produktimport Anleitung
- Voraussetzungen, Vorbereitungen & Vorwissen
- Minimal Import von Produkten bei Shopware 6
- Import / Export Profil für Minimal-Import erstellen
- Mit Export die Import-CSV-Datei erstellen
- Import Datei vorbereiten
- Einmal testen und los
- Fehler sichten und korrigieren
- Feintuning beim Preis-Import
- Fehlerverzeichnis
- Geheimwissen
- Quellen und Weiterführende Links
Voraussetzungen, Vorbereitungen & Vorwissen für den Shopware 6 Produktimport
Bevor du mit dem Shopware 6 Produktimport beginnst, solltest du sicherstellen, dass du die richtigen Tools und Einstellungen verwendest. Es gibt einige grundlegende Voraussetzungen, die du beachten musst.
Das richtige Tool zum Bearbeiten der Tabellen
Um eine XML-Datei für den Shopware 6 Produktimport zu bearbeiten, benötigst du ein Tabellen-Programm, wie zum Beispiel Libre Office oder Google Sheets. Ich arbeite in der Regel mit Libre Office und nutze manchmal auch Google Sheets, um die Daten zu verwalten.
Der korrekte Zeichensatz und die richtige Trennung
- Zeichensatz: UTF-8
- Feldtrenner: Semikolon
- Zeichenketten-Trenner: Anführungszeichen
Wenn du eine Exportdatei aus deinem Shopware 6-Shop exportierst, achte darauf, diese Einstellungen zu verwenden, wenn du die Datei in Libre Office öffnest.
Einträge können nur hinzugefügt, nicht gelöscht werden
Ein Import kann keine Einträge löschen. Wenn du beispielsweise einem Produkt einen Verkaufskanal hinzufügst, kann dieser Eintrag nicht durch einen weiteren Import gelöscht werden.
Wichtig bei Preisen: Punkt statt Komma
Beim Preisimport müssen Preise immer mit einem Punkt und nicht mit einem Komma getrennt werden. Wenn ein Artikel 9,11 € kostet, muss der Wert als 9.11 angegeben werden – ohne Währungszeichen und ohne Komma.
Preise müssen Netto und Brutto importiert werden
Stelle sicher, dass sowohl der Netto- als auch der Bruttopreis beim Import jedes Produkts angegeben sind. Andernfalls kann es zu Problemen bei der Preisberechnung kommen.
Hersteller-Id beim Import nicht vergessen
Wenn du einen Hersteller für ein Produkt importierst, darfst du nicht vergessen, die Hersteller-ID ebenfalls zu importieren. Andernfalls wird für jedes Produkt ein neuer Hersteller mit dem gleichen Namen, aber einer anderen ID erstellt.
Minimal Import von Produkten bei Shopware 6
Es ist ratsam, beim ersten Shopware 6 Produktimport mit einem minimalen Import zu beginnen. Dies ermöglicht es dir, dich mit dem Prozess vertraut zu machen, bevor du eine größere Menge an Daten importierst. Hier sind einige wichtige Tipps:
- Fange mit wenigen Produkten an.
- Vermeide es, gleich zu Beginn viele Bilder und andere komplexe Dateien zu importieren.
- Schrittweise Erweiterung: Lade alle relevanten Informationen Schicht für Schicht nach, sobald du dich sicherer fühlst.
Import / Export Profil für Minimal-Import erstellen
Das Standardprofil für den Import und Export von Produkten bei Shopware 6 ist recht umfangreich und für Anfänger nicht leicht verständlich. Um den Import zu vereinfachen, solltest du ein einfacheres Profil für den Shopware 6 Produktimport erstellen.
Erstellen eines minimalen Importprofils
Gehe in die Einstellungen > Import/Export und dupliziere das Standardprofil für Produkte. Behalte die allgemeinen Einstellungen bei und passe sie an. Achte darauf, dass du die folgenden Pflichtfelder beibehältst:
- id
- taxId
- productNumber
- stock
- name
Mein empfohlenes Minimal-Import-Profil
Hier eine Übersicht der Felder, die ich für meinen Minimal-Import empfehle:
- id
- product_number / productNumber
- active / active
- stock / stock
- name / translations.DEFAULT.name
- price_net / price.DEFAULT.net
- price_gross / price.DEFAULT.gross
- tax_id / tax.id
- tax_rate / tax.taxRate
- tax_name / tax.name
- manufacturer_id / manufacturer.id
- categories / categories
- sales_channel / visibilities.all
Links ist der Name der Spalte der CSV Datei und rechts der Datenbank-Eintrag. In dem Screenshot sieht man auch noch einmal welche Felder als erforderlich markiert sind.
Mit Export die Import-CSV-Datei erstellen
Der einfachste Weg um eine CSV-Datei für den Produktimport in Shopware 6 zu erstellen ist einen Export mit dem passenden Profil durchzuführen um dann die Liste nach dem selben Prinzip mit zusätzlichen Produkten zu füllen. Theoretisch kann man für den Import von neuen Produkten die ganze Liste löschen, sollte aber zum Vergleich und zum kopieren mindestens einen Eintrag bzw. ein Produkt in der Liste stehen lassen, bei auch bestenfalls so viel wie möglich der folgenden Werte identisch sind mit den Produkten die importiert werden sollen. .
Wichtige Schritte beim Export
- Füge einen Dummy-Artikel hinzu, um sicherzustellen, dass der Artikel im richtigen Sales Channel importiert wird.
- Ordne den Dummy-Artikel einer Kategorie zu, um die korrekte Kategorie-ID zu kopieren.
- Stelle sicher, dass die Hersteller-IDs und -Namen korrekt sind.
Apropos Hersteller: Bevor ihr mit meiner vorgeschlagenen Import-Datei Produkte in euren Shop importiert dürft ihr nicht vergessen die dazugehörigen Hersteller anzulegen.
Wer sehr viele Hersteller hat kann diese mit einem kleinen Trick etwas einfacher in seinen Shop kopieren bzw. importieren, da Shopware aktuell von Haus aus kein Profil und somit auch keine Möglichkeit zur Verfügung stellt Hersteller zu importieren. Den Trick haben wir unten im Bereich Links verlinkt.
Wenn wir die Datei öffnen ist es sehr (!) wichtig darauf zu achten, dass die Einstellungen wie in diesem Screenshot gemacht werden. Ist das Häkchen fälschlich auch beim Komma gesetzt muss es entfernt werden.
Wenn wir etwas in unsere CSV-Datei kopieren, kann es passieren, dass wir dieses Fenster noch ein paar Mal sehen werden.
Import Datei vorbereiten
Wenn ihr einen Artikel das erste Mal im Shop mit dem CSV-Import anlegt, dann darf das Feld id getrost leer gelassen werden. Während dem Import wird diese stattdessen erstellt. Das ist, abgesehen davon den Artikel manuell in Shopware 6 anzulegen, auch so ziemlich die einzige Methode wie man einen Wert für das Feld in die Datenbank bekommt. Man kann also zum Beispiel nicht so mir nichts dir nichts einen Artikel in der Datenbank anlegen und denken, dass man da einen Wert in das Feld eintragen kann.
Zurück zur CSV Datei für unseren Produkte Import mit abgespeckten Profil. Wir löschen also alle Einträge bis auf einen, der möglichst viel gemeinsam hat mit den Produkten die wir jetzt importieren wollen.
Dinge die wir zwingend ausfüllen und vorher schon zurechtgelegt haben müssen sind:
a) Die Produktnummer
b) Den Lagerbestand
c) Den Produkt-Namen
d) Den Netto_Preis
e) Den Brutto-Preis
Einmal testen und los
Bevor du den endgültigen Import startest, solltest du unbedingt einen Testlauf durchführen. Dies hilft, mögliche Fehler zu erkennen und zu korrigieren, bevor du die gesamte Liste importierst.
Also dann: Es geht auf den Reiter Import, das zuvor angelegte Minimal-Import Profil wird ausgewählt, die Datei hochgeladen und schon hast 1 Millionen Produkte im Shop und wirst übermorgen Milliardär, so wie ich es dir versprochen hatte.
Fehler sichten und korrigieren
Fehler können passieren und werden hier in diesem Beitrag (s. unten) gesammelt. Aber wo stehen die Fehler? Ganz einfach: Ist der Import fehlgeschlagen klicken wir bei der Spalte in der Übersicht auf doe 3 Punkte und laden uns die fehlerhaften Einträge herunter.
Im Grunde sind das genau die gleichen Einträge wie in der Import-Datei nur das am Ende eine zusätzliche Spalte zu finden ist, in der wir nun sehen können was als Fehlerbeschreibung eingetragen wurde. Wenn einem der Eintrag erst einmal gar nichts sagt, kann chatgpt in vielen Fällen auf die Sprünge helfen. Zumindest hat es mir einige Male geholfen.
Feintuning beim Preis-Import
Wenn man die Produkte auf diesem Weg per CSV-Datei in seinen Shop importiert hat das ganze einen kleinen Nachteil, den es im Nachgang zu korrigieren gilt. Der Netto- und Brutto Preis muss bei den importieren Produkten nachträglich wieder verbunden werden. Wenn man sich die Artikel im Admin Bereich ansieht sieht man einen kleines Icon mit einem (Vorhänge-) Schloss zwischen den Brutto- und Netto-Preisen. Dieses Schloss sollte nicht geöffnet sondern geschlossen sein, damit bei einer etwaigen Änderung des einen auch gleichzeitig der andere Preis mit angepasst wird. Andernfalls kann es zu jeder Menge Chaos kommen.
Was machen wir also? Eine kleine Massenbearbeitung. Wir gehen in die Produktliste, markieren alle importierten Produkte, klicken den Massenbearbeitungslink, dann auf den blauen Mehrfachänderung starten Button, scrollen einen Tick runter bis zur Preise Karte (nicht zu verwechseln mit der Speisekarte) und setzen das Häkchen bei Ändern: Preis. Wichtig ist, dass das Schloss, so wie im Screenshot, geschlossen ist.
Jetzt kicken wir einmal oben auf Änderung übernehmen und bestätigen das ganze mit einem weiteren Klick auf einen weiteren blauen Button.
Fehlerverzeichnis
In diesem Abschnitt findest du häufige Fehler, die während des Imports auftreten können, sowie Lösungsvorschläge.
Während dem Import können unterschiedliche Fehler passieren. Hier sind ein, zwei Fehler die ich zum Beispiel angezeigt bekommen habe.
a) Integrity constraint violation
An exception occurred while executing a query: SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`c6w21db1`.`product_visibility`, CONSTRAINT `fk.product_visibility.sales_channel_id` FOREIGN KEY (`sales_channel_id`) REFERENCES `sales_channel` (`id`) ON DELETE CASCADE ON UPDATE CASCADE)
Lösung: Die Angaben im Feld für den Sales Channel waren falsch. Ich hatte den marker bei dem ersten Eintrack gepackt und nach unten gezogen. Das Problem: Wenn eine Zahl am Ende (oder Anfang) ist wird bei diesem Vorgehen immer eins addiert so dass sich der Wert verändert und falsch ist.
Nach dem Import kann auch gerne Mal dieser Fehler auftauchen
a) Folgender Fehler ist aufgetreten:
1x „Dieses Feld fehlt.“
Du hast ein Produkt importiert, denkst alles ist super willst kurz noch was kleines am Produkt ändern, drückst den Speichern Button aber dein Shopware Shop sagt in roten Lettern: „Folgender Fehler ist aufgetreten: 1x „Dieses Feld fehlt.“ Es wird weder gesagt um welches Feld es geht noch wird ein Feld markiert, so dass man weiß worum es geht… Im Forum wird heiß über das Thema diskutiert und es gibt wohl ab Version 6.6.0.0 auch eine Lösung dafür, bzw. dann taucht das Problem nicht mehr auf. Die Produkte bei denen es hakt haben alle eines gemeinsam: Ein bestimmter Preis, das kann z.B. der Einkaufspreis sein und das Feld dabei auch leer sein, wird ausgegraut und kann nicht bearbeitet werden. Die Foren-Beiträge haben wir unten für euch verlinkt.
Mögliche Lösungen:
– Produkt-Seite im Admin einmal neu laden
– In der Datenbank alle Produkte wo der purchase_price NULL ist auf 0 setzen.
– Falsche Strukturierung des Preis-Arrays beim API Request zum Anlegen von Produkten
Das Ticket zum Fehler:
https://issues.shopware.com/issues/NEXT-31588
Shopware Forum – Der „Dieses Feld fehlt Fehler“
https://forum.shopware.com/t/dieses-feld-fehlt-fehlermeldung-nervt/97369/11
Geheimwissen
Hier gebe ich dir nützliche Tipps, um den Import effizienter zu gestalten und mögliche Probleme zu vermeiden.
Importe dauern jetzt (viel) länger
Was zu Shopware 5 Zeiten sehr schnell ging geht nun nur noch sehr langsam. „Mal eben“ 10.000 Produkte per CSV Datei zu aktualisieren kann je nachdem schonmal seine 13 Stunden in Anspruch nehmen.
Das Feld linked ist wichtig und sollte aktiviert werden
In den ersten Versionen des Produkt-Import-Profils hatte ich es noch nicht drin, aber dieser Beitrag hat mich auf die Idee gebracht: https://forum.shopware.com/t/nur-price-net-oder-gross-bei-linked-false-rest-api/68143/9
Wie man am besten Inhalte in die CSV-Datei einfügt:
Wenn ihr aus einer anderen Tabelle Inhalte der Spalten rein kopiert dann achtet darauf, dass ihr (am Mac) nicht einfach Command + V sondern Shift + Command + V verwendet damit der Stil der Import-Datei erhalten bleibt.
Wie man verhindert, dass aus den mit Punkt getrennten Preisen ein Datum wird:
Anfangs hat es mich verrückt gemacht, bis ich die Lösung dafür hatte. Es passiert oft wenn man einen Preis hat wie 12.04 € dass es dann angeiegt wird als 12.04. oder 12.04.2024 – also als Datum. Um das zu vermeiden muss man die Spalte bzw. die Zellen der Spalte so formatieren, dass es als Text und nicht als Zahl oder Datum erkannt wird. Das geht indem man die Zellen markiert und einen Rechtsklick macht. Ganz unten steht „Format Cells“. Klick da mal rein und teste ein bißchen rum.
Was tun wenn man nur die brutto oder netto Preise hat:
Wer es nicht in Libre hinbekommt kann bei kleineren Listen chatgpt zur Hilfe rufen und darum bitten die MwSt zu addieren oder abzuziehen. Es geht aber definitiv -leider nicht wenn bei den Zahlen der Punkt als Trenner verendet wird. Das geht nur (mit ein zwei Spezialtricks) wenn man Google Sheets dafür verwendet. Der Trick war (glaube ich), dass die Sprache in Google Sheets auf englisch umgestellt werden muss. Oder das Land auf USA.
Beim Import immer zuerst das Profil auswählen:
Laut unterschiedlicher Geheimbünde soll das besonders viel Glück beim Import bringen. Meistens denke ich dran.
Import / Export Profil Datei-Downloads
Da man sich in Porz gut mit Imporz und Exporz auskennt habe ich im Laufe tausender Trial and Error Tests ein hübsches Set aus Import/Export Profilen erstellt.
Diese teile ich natürlich gerne mit euch, nur müsst ihr euch dafür im Newsletter anmelden. Wenn ihr das getan habt, sagt kurz Bescheid und ihr bekommt folgende zusätzliche Import/Export Profile von uns:
- produkt_masseinheiten_update_import.csv
- produkt_eigenschaften_update_import_ohne_hersteller.csv
- produkt_eigenschaften_update_export_mit_hersteller.csv
- produkt_bilderupdate_update_import.csv
- produkt_bilderupdate_update_export_mit_hersteller.csv
- product_Default product.csv
- preis-update-import.csv
- preis-update-export-mit-hersteller.csv
Im Newsletter angemeldet? Ja ok, dann glaube ich dir mal – hier sind die Profile:
Import:Export Profile
Das bessere Plugin
Wer oft und vor allem viele Daten importiert sollte diesen Beitrag wieder in seinem Gehirn löschen und einfach ein paar Mark in dieses Import / Export Plugin für Shopware 6 investieren.
Allen anderen weiterhin viel Spaß mit dem Standard-Import.