PrestaShop bietet dank guter CSV-Importmöglichkeiten beste Voraussetzungen für die Migration eines bestehenden Onlineshops auf die moderne PrestaShop Plattform. Am Beispiel der Umstellung eines osCmax (osCommerce) Shops stelle ich das Vorgehen für eine Shopumstellung vor.
Vorbereitung
Sofern der bestehende Onlineshop eine Exportmöglichkeit in das CSV-Format bietet, empfiehlt es sich diese zu Nutzen. Ich gehe jedoch am liebsten direkt an die MySQL Datenbank und stelle mir die benötigten Felder im SQL zusammen. Dafür bietet sich das Tool MySQL Workbench an. Damit kann man die SQL Abfragen für den Export erstellen und die Daten gleichzeitig automatisiert als CSV ausgeben. Sofern in den FriendlyURLs im alten Shop die IDs der Produkte und Kataloge enthalten waren, müssen diese auch mit importiert werden. Andernfalls kann die FriendlyURL nicht mehr identisch generiert werden.
Hinweis für effizientes Arbeiten
Da bei der Umstellung eines Onlineshops oft mehrere Exporte / Importe notwendig sind, empfiehlt es sich die Vorgänge so weit wie möglich zu automatisieren. In PrestaShop kann man die Feldzuweisungen pro Importtyp (Hersteller, Kunden, etc.) speichern. Dieses „Feldmapping“ wird in der Tabelle „import_match“ abgelegt und lässt sich einfach kopieren. So kann man auf einem lokalen System den Import testen und später das Feldmapping auf den Produktivserver kopieren.
Welche Daten können importiert werden?
- Hersteller
- Kategorien
- Produkte & Varianten
- Kunden
- Adressen
Ausserdem können Varianten, Lieferanten und Aliase importiert werden. Diese Möglichkeiten habe ich bei diese Shopmigration nicht benötigt.
Hersteller
Der Herstellerimport ist der einfachste CSV Import. Ich habe diese aus der Datenbank des bestehenden Shops als CSV exportiert und nur die Felder für ID, Bezeichnung und Herstellerbild zugewiesen. Die Herstellerbilder holt PrestaShop direkt über die URL und speichert diese dann auf dem eigenen Server ab. Ich habe die Option „Force all ID“ auf aktiv gesetzt um im PrestaShop die gleichen IDs für die Hersteller zu erhalten wie im vorigen Shopsystem.
Kategorien
Kategorien werden auf Basis Ihres Namens importiert. (Achtung: es darf kein Kategorienamen doppelt vorkommen) Neben der aktuellen Kategorie muss in jeder Zeile der CSV-Datei immer auch die „Parent-Kategorie“ angegeben werden. Die Reihenfolge der Kategorien in der CSV-Importdatei ist entscheidend – eine Kategorie kann erst dann angelegt werden, wenn ihre „Eltern-Kategorie“ erstellt wurde. Ich generiere daher pro Kategorieebene ein CSV-File. Diese Files lese ich nacheinender ein, beginnend von den Hauptkategorien bis hin zum letzten Kategorie-Ast. Im ersten File (Hauptkategorien) muss im Feld „Parent category“ der Name des Root-Katalog von Ihrem PrestaShop stehen. Andernfalls schlägt der Import der ersten Ebene fehl. Diesen Root-Katalog kann man anlegen in dem man zuerst die Multi-Store Umgebung aktiviert und anschliessend unter „Katalog=>Kategorien“ die Option „Neue Root-Kategorie“ verwendet. Wichtig ist ausserdem, dass in den Katalognamen entweder keine Kommas vorkommen, oder man einen anderen „Multiple value separator“ beim Import einstellt.
Produkte
Bei den Produkten sollten gleich alle Kategoriezuweisungen importiert werden. Diese müssen mit ihrem Namen und durch Trennzeichen separiert innerhalb eines Feldes stehen. Um die passende Struktur im SQL aufzubauen habe ich vor der eigentlichen SQL Abfrage für die Produkte eine Datenbank-View erstellt, welche alle Katalogzuweisungen eines Artikels als ein Feld bereitstellt. Das Feld dieser View konnte ich dann direkt in die Produktabfrage einbinden.
Kunden
Kunden und deren Adressen sind in PrestaShop getrennt. Es gibt also einen Kundendatensatz und eine beliebige Anzahl von Adressen zu diesem Kunden.
Adressen
Sind für die Versandberechnung Bundeststaaten bzw. das Bundesländer relevant, so sollten diese beim Import der Adressen zusätzlich zum Land gleich korrekt importiert werden (Imporfeld „State“). Grund dafür ist die Versandkostenberechnung, sie erfolgt auf Basis von Zonen wobei jedes Land und eben auch jedes Bundesland zu einer Zone gehören kann. Ausserdem sollte die Länderkennung beim Adressimport die ID des Landes in PrestaShop beinhalten.