Wie gehe ich am schlausten vor, wenn ich möglichst viele Inhalte aus einem Shopware 6.5 Shop in einen anderen Shopware 6.5 Shop importieren möchte? Die meisten dieser Tipps werden höchstwahrscheinlich auch für Shopware 6.6 und 6.7 noch gültig sein. Natürlich gestaltet sich der ganze Prozess je nach Größe bzw. Anzahl der Artikel des Shops und Komplexität im Hinblick auf Eigenschaften und Kategorie-Struktur mehr oder weniger umständlich. Dieser Beitrag kratzt zugegebenermaßen nur die Oberfläche des Themas (Shopware zu Shopware Import) an.
- 1. Shopware Backups erstellen
- 2. Grundregeln beachten
- 3. Bilder importieren
- 4. Kategorien importieren
- 5. Erlebniswelten importieren
- 6. Weiterführende Links
Anmerkung: Wer sich gerade durchs Netz wühlt und sich zu dem Thema informieren möchte kann den ein oder anderen Tipp mitnehmen. Der Beitrag wurde nicht komplett fertig geschrieben, enthält aber zu viel Informationen um auf der Festplatte zu verstauben. In diesem Sinne: Viel Spaß und Erfolg bei eurem Import von Shopware 6 zu Shopware 6.
1. Backup erstellen
Bevor du mit dem Import beginnst, erstelle Backups von beiden Shopware-Installationen, um sicherzustellen, dass du im Falle von Problemen zu einem vorherigen Zustand zurückkehren kannst. Und das von beiden Shopware 6 Shops.
Zusätzliche Backups nach erfolgreichem Import bestimmter Daten können auch nicht schaden.
2. Grundregeln beachten
Erste Regel: Korrekte Dateinamen verwenden
Schon vor dem Import sollte man sich an die Regel halten, Bild-Dateinamen ohne Leer-, Sonderzeichen und Umlaute zu verwenden, da dies grundsätzlich zu Problemen führen kann.
Wer in seinen CSV Dateien URLs mit Dateinamen die Leerzeichen beinhalten hat, kann die Leerzeichen durch %20 ersetzen. Das gleiche machen Browser, wenn Sie URLs mit Leerzeichen aufrufen. Das kann man z.B. mit einem Programm wie Libre Office erledigen.
Hier markiert man am besten die Spalte url um nur in diesem Bereich zu suchen und zu ersetzen.
Zweite Regel: Test-Funktion nutzen
Man sollte bevor ein Import durchgeführt wird unbedingt vorher die Text-Funktion nutzen. Erst wenn hier kein Fehler mehr angezeigt wird sollte der eigentliche Import erst durchgeführt werden.
3. Bilder importieren
Es kann durchaus sinnvoll sein, mit den Medien-Dateien zu beginnen, besonders wenn diese einen beträchtlichen Teil deiner Daten ausmachen. Das Importieren von Medien-Dateien kann in der Regel komplex sein, und es ist oft ratsam, dies zuerst zu tun, bevor du andere Daten importierst.
Medien-Dateien, wie Produktbilder, können direkt mit Produkten und Kategorien verknüpft sein. Wenn du Medien-Dateien zuerst importierst, hast du bereits die notwendigen IDs oder Referenzen, um diese Verknüpfungen während des Imports von Produkten und Kategorien herzustellen.
Im Standard Profil für Medien werden folgende Felder importiert:
CSV-Name DB-Eintrag
id id
folder_id mediaFolderId
url url
private private
type mediaType
title alt
Um die Bilder zu importieren sind hierfür zwingend notwendig:
id &
url
Dinge die beim Import Probleme bereiten können sind das folder_id Feld, da diese in den Quell- und Zielsystemen nicht identisch sein werden.
Um die Bilder gleich beim Import schon sauber einzusortieren kann man die folder_id Felder in den Import Datei anpassen.
Hierfür fertigen wir als erstes eine Liste aller genutzter Ordner des Quellsystems an, sorgen dafür das gleichnamige Ordner auch im Zielsystem vorhanden sind. Heißt wenn es im Quellsystem einen Ordner gibt, der Slider heißt und muss der auch im Ziel-System angelegt um entsprechen einsortiert werden zu können. Neben die Ordner Namen schrieben wir dann die entsprechenden folder_id. Diese finden wir am einfachsten über die Datenbank in der Tabelle media folder. Hier ist es das erste Feld id. Was wir weglassen können ist das 0x am Anfang jeder id.
So könnte nun unsere Liste aussehen;
Ordnername:
Ordnername | id |
---|---|
Category Media | f31c4b43d2784e9da27fa9d117fb6be5 |
CMS Media | 4efa6a6e53c749c7a667d9f6cdb3157d |
Imported Media | 2743a2e112334f539acf4bf36bbccf72 |
Mail Template Media | afac3adad8074905bcf232374aabd158 |
Payment Method Media | 650081d7193d47f8ba3e60560afbbb00 |
Product Manufacturer Media | 76c7ff1e9dd748f1b9c3e5595f65c54b |
Product Media | 02a2785d2e724a3f907395fbc51f7632 |
Shopseiten | 76c3606faca74c1582c882d4dc00bc8a |
Theme Media | 8fc582708dea4bafb8ef9fa904e6f7f7 |
User Media | 3aec6c5a169e4b6b8e34e31181b0ae85 |
Jetzt machen wir das gleiche mit den ids und Ordner-Namen für den Ziel-Shop:
Ordnername | id |
---|---|
Category Media | 018c16567b9970c3b03e8495884239d7 |
CMS Media | 018c16567b9970c3b03e84958946f763 |
Document Media | 018c16567b9a733fb1447cc1d9561002 |
Imported Media | 018c1656ae2b7375bf74225c2ad8dc9b |
Mail Template Media | 018c16567b9a733fb1447cc1dadcad6d |
Payment Method Media | 018c1656efe37090aa0dad03fff48d60 |
Product Manufacturer Media | 018c16567b9b7338b0528f3fc4db1790 |
Product Media | 018c16567b9a733fb1447cc1db74c75c |
Shopseiten | 018c1ba7bcc87d349dce2ff707223e85 |
Theme Media | 018c16567cb172abb34341e1d12ef306 |
User Media | 018c16567b9b7338b0528f3fc60d4932 |
Shipping Method Media | 018c165744177050bb7bdb9f303cfffc |
Jetzt können wir in unserer CSV Datei die ids austauschen, so dass sie korrekt einsortiert werden. Falls der Import zuvor schon durchgeführt wurde können wir uns eine frische CSV Datei aus dem „alten“ Shop runterladen. Dann löschen wir alle Inhalte außer die der Spalten id und folder_id, ersetzen die alten folder_ids mit den neuen und führen einen zweiten import, eben nur mit den Spalten id und folder_id durch.
Am besten legen wir hierfür ein neuen Profil an, was wir Medien – Ordner Update nennen. Dafür kopieren wir das Standard Medien Profil und löschen bei Zuordnung alle übrigen Felder außer id und folder_id raus.
Wie immer: Zuerst einen Testlauf starten, wenn keine Fehler kommen den Import starten. Anschließend aktualisieren wir die iIndizes.
A propos löschen.
Die Spalten deren folder_id sagt, dass es sich um Bilder handelt, die im Ordner Payment Method Media liegen können wir grundsätzlich löschen, sofern im Quell-System keine zusätzlichen Zahlarten installiert wurden.
In der Regel wird Shopware immer etwas finden was falsch ist und meckert herum, in dem Fall müssen wir uns nach den Testläufen die Fehlerberichte herunterladen und uns durch die Fehlermeldungen beißen wie Biber durch Holz beim Dammbau.
4. Kategorien importieren
Für den Kategorie Im- und Export steht uns zunächst das Profil Standardprofil Kategorie zur Verfügung. Die Zuweisungsliste ist hier schon ein Stückchen länger und es rät sich gegebenenfalls ein abgespeckteres Profil zu erstellen. Wer zum Beispiel keinerlei Bilder in seinen Kategorien hat kann alle Felder mit media löschen.
Wer jedoch auch Bildverknüpfungen mit importiert sollte darauf achten, dass die folder_ids wieder angepasst werden.
Wer Kategorien neu anlegt muss außerdem den Inhalt der ersten Spalte id leeren, da die ids vom System angelegt werden. Zudem kann kontrolliert werden ob die Bilder mit den ids im neuen System vorhanden sind oder nicht.
Außerdem könnt ihr darüber nachdenken, die Spalte cms:page_id zu leeren, da es diese in eurem Zielshop nicht gibt und somit auch nicht gefunden werden können.
Auch mit dem Inhalt der Spalte parent_id wird der Ziel-Shop nicht viel anfangen können, da die ids erst nach dem Import vergeben werden. Daher wird es Sinn machen zuerst alle Zeilen zu importiren, die keine parent_id haben. dann muss man gucken welche id diese bekommen haben und entsprechen die Werte in den parent_id Feldern angleichen.
Das macht man im Grunde Ebene für Ebene.
a) Zuerst importiert man die die keine parent_id haben
b) Dann importiert man deren direkte children, hier darf wie gesagt, nicht vergessen werden die parent_id Werte auszutauschen.
In einem zweiten Import zieht man die Kategorien nach, die eine parent_id haben.