Eine Migration von Magento zu Shopify bringt deinen Katalog von einem vorlagenbasierten Modell (Attributsets, konfigurierbare Elternprodukte mit einfachen Kindartikeln, Store Views) in das flachere Modell von Shopify (Produkte mit bis zu drei Optionen, Metafelder, Sprachen und Märkte). Für den Katalog läuft die Arbeit auf sechs Aufgaben hinaus: Produkte, Preise und jede Store View aus Magento exportieren; Attributsets in Metafeld-Definitionen umwandeln; jedes konfigurierbare Produkt als ein Shopify-Produkt mit Variantenzeilen neu aufbauen; Übersetzungen pro Sprache laden; Staffelpreise pro Kundengruppe als B2B-Kataloge nachbauen; und jede alte URL per Weiterleitung mit ihrer neuen verknüpfen.
Dieser Leitfaden geht diese Katalogarbeit Feld für Feld durch, für Magento 2 Open Source und Adobe Commerce. Er setzt voraus, dass die Plattformentscheidung gefallen ist. Falls nicht, wägt unser Vergleich Shopify vs Magento zuerst Kosten, B2B und das Variantenmodell ab. Kunden, Bestellungen, Themes und Apps sind eigene Arbeitspakete und kommen nur dort vor, wo sie Produktdaten berühren.
Sechs Phasen der Katalogmigration von Magento 2 zu Shopify
- Einfrieren und inventarisieren. Lege in Magento keine neuen Attribute mehr an und liste dann jedes Attributset, jedes Attribut mit Eingabetyp und Geltungsbereich, jedes konfigurierbare Attribut und die Store Views mit Übersetzungen auf.
- Exportieren. Ziehe die Entitäten Products und Advanced Pricing, alle Store Views und die vollständige Liste der URLs, die Traffic bekommen.
- Bereinigen und umformen. Entferne tote Produkte und ungenutzte Attribute, zerlege die gepackte Attributspalte in einzelne Felder und mache aus konfigurierbaren Eltern- und Kindprodukten Variantenzeilen.
- Zuerst die Shopify-Seite aufbauen. Lege Metafeld-Definitionen an, veröffentliche Sprachen, richte Märkte und B2B-Kataloge vor dem ersten Produktimport ein, damit der Import ein Ziel hat.
- Als Entwurf importieren und prüfen. Lade Produkte mit dem Status Entwurf, vergleiche die Anzahl und prüfe Stichproben von Varianten, Preisen, Bildern und Übersetzungen gegen Magento.
- Weiterleiten und live gehen. Importiere die Weiterleitungsdatei, stelle die Domain um, crawle dann die alte URL-Liste und behebe jeden 404-Fehler.
Die Phasen 2 bis 5 laufen über einen von drei Wegen. Eine Migrations-App aus dem Shopify App Store verbindet sich mit beiden Shops und lässt dich meist zuerst eine Testmigration fahren; die meisten übernehmen auch Kunden und Bestellungen. Der manuelle Weg exportiert CSV-Dateien und formt sie in einer Tabellenkalkulation um. Ein PIM dazwischen importiert aus Magento und exportiert zu Shopify. Die Zuordnungsentscheidungen im Rest dieses Leitfadens sind auf jedem Weg gleich; der CSV- und der PIM-Weg geben dir die meiste Kontrolle darüber.
Products, Advanced Pricing und jede Store View aus Magento exportieren
Der eingebaute Export von Magento liegt unter System > Data Transfer > Export. Die Export-Dokumentation von Adobe listet die Entitätstypen auf, und für den Katalog zählen zwei: Products und Advanced Pricing. Staffelpreise stehen nicht in der Produktdatei; sie kommen aus der Entität Advanced Pricing. Der Export läuft über die Message Queue, also muss Cron laufen, und die Datei landet in `var/export` (oder im Remote-Storage-Ordner, wenn dieses Modul aktiv ist).
Die Produktdatei hat eine Zeile pro Produkt für den Standard-Geltungsbereich plus zusätzliche Zeilen pro Store View, wo Werte abweichen, markiert durch `store_view_code`. Behalte diese Zeilen. Sie enthalten deine übersetzten Namen, Beschreibungen, Meta-Felder und URL-Keys. Weitere Spalten, auf die du achten solltest:
- `product_type` unterscheidet einfache, konfigurierbare, Bundle-, gruppierte, virtuelle und herunterladbare Produkte. Jeder Typ braucht auf Shopify seine eigene Behandlung.
- `configurable_variations` in der Elternzeile listet jede Kind-SKU mit ihren Optionswerten auf, zum Beispiel `sku=MS-TEE-NAV-M,color=Navy,size=M|sku=MS-TEE-NAV-L,color=Navy,size=L`.
- `additional_attributes` packt jedes eigene Attribut als `code=value`-Paare in eine Zelle. Zerlege sie in Spalten, bevor du irgendetwas anderes tust.
- `url_key` ist der letzte Teil der Produkt-URL. Mit einem URL-Suffix wie `.html` und aktivierter Einstellung Use Categories Path for Product URLs zeigt Adobe, dass ein Produkt unter mehreren URLs erreichbar sein kann.
- `base_image`, `small_image`, `thumbnail_image` und `additional_images` verweisen auf Dateien unter `pub/media`. Shopify braucht öffentlich erreichbare Bild-URLs, prüfe also, ob der Export sie über eine Live-Domain auflöst.
Für die URL-Liste kombinierst du drei Quellen: das Raster URL Rewrites unter Marketing > SEO & Search > URL Rewrites, den Seitenbericht in der Search Console und einen Crawl des Live-Shops. Rewrites zeigen dir, was Magento ausliefern kann; Search Console und Analytics zeigen, welche URLs tatsächlich Traffic und Links bekommen.
Aus Attributsets werden Metafeld-Definitionen: das Shopify-Schema vor dem Import aufbauen
Shopify kennt keine Attributsets. Jedes eigene Feld wird zu einer Metafeld-Definition am Produkt (oder an der Variante) mit Namespace, Schlüssel und Typ, und jedes Produkt zeigt dieselben Definitionen. Lege sie vor dem ersten Import an: Die Produkt-CSV von Shopify liest Metafeld-Spalten im Format `product.metafields.custom.material`, aber nur für bereits existierende Definitionen, und Varianten-Metafelder unterstützt sie gar nicht. Unser Leitfaden zu Shopify-Metafeldern erklärt Namespaces und Typen im Detail.
Der gewählte Typ entscheidet, ob Werte den Import überstehen. Ordne jeden Magento-Eingabetyp bewusst zu:
Magento-Attributeingabetypen und ihre Ziele in Shopify
| Text Field | material | Metafeld: einzeiliger Text | Direkt |
|---|---|---|---|
| Text Area oder Page Builder | care_instructions | Metafeld: mehrzeiliger Text, oder das Beschreibungsfeld | Zuerst HTML bereinigen |
| Dropdown | fit | Metafeld: einzeiliger Text mit einer Auswahlliste von bis zu 128 Werten | Direkt |
| Multiple Select | activity | Metafeld: Liste von Metaobjekt-Referenzen, oder Tags | Umbauen |
| Yes/No | is_vegan | Metafeld: wahr oder falsch | Direkt |
| Date | launch_date | Metafeld: Datum | Direkt |
| Price | msrp | Metafeld: Geldbetrag, oder Vergleichspreis | Bedeutung festlegen |
| Visual oder Text Swatch (konfigurierbar) | color, size | Produktoption, optional mit einem Kategorie-Metafeld verknüpft | Umbauen |
| Weight (Systemattribut) | weight | Weight value (grams) pro Variante | Einheiten umrechnen |
| Media Image | label_image | Produktmedien oder ein Datei-Metafeld, außerhalb der CSV gesetzt | Neu aufbauen |
| Fixed Product Tax | weee | Kein Produktfeld; Steuereinstellungen in Shopify | Neu aufbauen |
Zwei Gewohnheiten halten das Schema sauber. Versieh Definitionen mit einem Familienpräfix, wenn ein Attribut nur für eine Produktfamilie Sinn ergibt (`custom.bike_frame_size` statt `custom.size`), denn Shopify zeigt es an jedem Produkt. Und lass Attribute weg, die niemand füllt: Wenn `additional_attributes` ein Feld nur bei einer Handvoll Produkte zeigt, frag dich, ob es auf Shopify überhaupt existieren sollte.
Ein konfigurierbares T-Shirt als Shopify-Variantenzeilen neu schreiben
Nimm ein konfigurierbares T-Shirt `MS-TEE` mit zwei konfigurierbaren Attributen, Farbe und Größe, und vier einfachen Kindartikeln. In Magento sind das fünf Produkte: ein Elternprodukt mit Beschreibung und Bildern und vier Kinder mit eigener SKU, eigenem Preis, Bestand, Gewicht und EAN. Auf Shopify wird daraus ein Produkt mit zwei Optionen und vier Varianten. Shopify erlaubt drei Optionen und 2.048 Varianten pro Produkt, dieses Shirt passt also locker.
Ein konfigurierbares Magento-Produkt als Shopify-CSV-Zeilen
| merino-tee | Merino-T-Shirt | Farbe | Navy | Größe | M | MS-TEE-NAV-M | 49.00 | gtin:9506000134352 |
| merino-tee | Farbe | Navy | Größe | L | MS-TEE-NAV-L | 49.00 | gtin:(EAN des Kindartikels) | |
| merino-tee | Farbe | Sand | Größe | M | MS-TEE-SND-M | 49.00 | gtin:(EAN des Kindartikels) | |
| merino-tee | Farbe | Sand | Größe | L | MS-TEE-SND-L | 49.00 | gtin:(EAN des Kindartikels) |
Details, die darüber entscheiden, ob das funktioniert:
- Der Handle kommt aus dem `url_key` des Elternprodukts, nicht aus dem Titel, damit alte und neue URLs erkennbar gleich bleiben.
- Kinddaten wandern in Variantenspalten. Die EAN kommt mit Typpräfix (`gtin:` oder `upc:`; die Spalte fasst bis zu 20 Werte) in Barcodes, das Gewicht in Weight value (grams) und das Bild des Kindartikels in Variant image URL.
- Kindattribute, die keine Optionen sind (eine Schrittlänge pro Größe, ein Mustercode pro Farbe), haben keine CSV-Spalte, weil Varianten-Metafelder in der CSV nicht unterstützt werden. Lade sie über den Bulk-Editor für Varianten, die Admin API oder eine App.
- Vier oder mehr konfigurierbare Attribute erfordern, zwei zu einer Option zusammenzulegen, das Produkt aufzuteilen oder eine App. Der Beitrag zum Shopify-Variantenlimit geht jeden Weg durch.
- Einfache Produkte ohne Elternprodukt bekommen eine Zeile mit Option1 name `Title` und Option1 value `Default Title`, die Shopify-Konvention für Produkte ohne Optionen.
Store Views werden zu Shopify-Sprachen und -Märkten
Eine Magento Store View mit niederländischen oder französischen Inhalten wird auf Shopify zu einer veröffentlichten Sprache. Laut der Sprachen-Dokumentation von Shopify bekommt jede veröffentlichte Sprache eigene URLs, und Übersetzungen können aus Translate & Adapt, aus CSV-Dateien oder aus einer Übersetzungs-App kommen. Auch Handles werden übersetzt: Die Anforderungen für mehrere Sprachen zeigen, wie aus `/en-ca/products/shoes` die URL `/es-mx/products/zapatos` wird, wobei nur das Wort `products` fest bleibt. Der `url_key` jeder Store View kann also als übersetzter Handle mitkommen. Auf dem CSV-Weg exportierst du die Übersetzungs-CSV unter Einstellungen > Sprachen, sobald die Produkte existieren, und sie identifiziert jedes Produkt über seine Shopify-Ressourcen-ID, nicht über die SKU. Ordne die Magento-Zeilen mit `store_view_code` diesen IDs über Handle oder SKU zu und fülle dann die Spalte Translated content mit Namen, Beschreibungen und SEO-Feldern.
Preise teilen sich anders auf. Magento kann Preise pro Website festlegen; Shopify regelt Länderpreise über Märkte, mit prozentualen Anpassungen oder festen Preisen pro Markt (die Produkt-CSV hat eine Spalte Price / International für einen Markt namens International). Ein Magento-Setup mit einer niederländischen Website in EUR und einer britischen Website in GBP wird zu einem Shopify-Shop mit zwei Märkten. Unser Beitrag zu Shopify Markets erklärt dieses Setup.
Staffelpreise pro Kundengruppe als B2B-Kataloge neu aufbauen
In Magento sind Staffelpreise Zeilen im Advanced Pricing jedes Produkts: eine Website, eine Kundengruppe (oder ein Shared Catalog bei Adobe Commerce B2B), eine Menge und entweder ein Festpreis oder ein prozentualer Rabatt. Ein Großhändler hat vielleicht „Retailer“ mit 10 % Rabatt ab 12 Stück und „Distributor“ zum Festpreis von 31,50 EUR ab 48 Stück.
Das Gegenstück in Shopify ist der B2B-Katalog. Laut der Dokumentation zu B2B-Katalogen legt ein Katalog fest, welche Produkte und Preise ein Unternehmen sieht; Basic, Grow und Advanced erlauben bis zu drei aktive Kataloge über alle B2B-Märkte, während Plus unbegrenzte Kataloge und die direkte Zuordnung zu Unternehmen und Standorten erlaubt. Innerhalb eines Katalogs fügt die Mengenpreisgestaltung bis zu 10 Preisstaffeln pro Produkt hinzu, und Mengenregeln setzen Mindest- und Höchstmengen sowie Bestellschritte pro Variante.
- Eine Kundengruppe, ein Katalog ist die saubere Zuordnung. Zähl zuerst deine Gruppen: Mehr als drei bedeutet Plus oder Zusammenlegen.
- Prozentuale Staffeln werden zu einer prozentualen Katalogpreisanpassung plus Mengenpreisstaffeln; feste Staffeln werden zu festen Katalogpreisen.
- Staffelpreise für Endkunden (die Gruppe NOT LOGGED IN oder General) haben keinen Platz in einem B2B-Katalog. Bau sie als Rabatte oder mit einer App neu auf.
- Shared Catalogs und verhandelte Angebote aus Adobe Commerce B2B brauchen die meiste Sorgfalt; erfasse sie pro Unternehmen, bevor du entscheidest.
Eine Weiterleitungsliste von .html-URL-Keys zu /products/-Handles
Jede Magento-URL, die rankt oder Backlinks hat, braucht eine 301-Weiterleitung auf ihre Shopify-Nachfolgerin. Shopify macht das mit URL-Weiterleitungen unter Content > Menüs, und du kannst sie als CSV mit den Spalten Redirect from und Redirect to importieren. Die Dokumentation zu URL-Weiterleitungen legt die Regeln fest, die die Liste prägen:
- Limits: bis zu 100.000 Weiterleitungen, oder 20.000.000 bei Plus.
- Nur kaputte URLs werden weitergeleitet. Eine Weiterleitung greift nur, wenn der alte Pfad auf Shopify einen 404-Fehler liefert, was nach dem Domainumzug für Magento-Pfade der Normalfall ist.
- Reservierte Pfade wie `/apps`, `/cart` und `/collections/all` lassen sich nicht weiterleiten.
- Sprachunterordner: Eine Weiterleitung gilt standardmäßig für jeden Markt-Unterordner, aber lokalisierte Magento-URLs brauchen eine eigene Zeile pro Sprache, wenn der alte Pfad abwich.
- `.html`-Eigenheit: Shopify behandelt eine URL mit und ohne `.html` als gleich, du kannst also `/size-guide.html` nicht auf `/size-guide` weiterleiten. Leite sie stattdessen auf `/pages/size-guide` weiter.
Bau die Liste aus der zuvor exportierten URL-Liste: Produkt-URLs (`/merino-tee.html`, `/men/tops/merino-tee.html`) auf `/products/merino-tee`, Kategorie-URLs auf `/collections/<handle>`, CMS-Seiten auf `/pages/<handle>`. Produkte, die du zusammengelegt oder ausgemustert hast, gehen auf die nächstliegende Kollektion, nicht auf die Startseite. WISEPIM legt keine Weiterleitungen an und verwaltet sie nicht, diese Datei baut also dein Team, deine Agentur oder deine Migrations-App. Der Leitfaden zu Magento SEO erklärt die URL-Einstellungen auf Magento-Seite, die diese Pfade erzeugen.
Katalogbereinigung, die vor dem finalen Export fertig sein sollte
Jedes Problem, das du in Magento lässt, wird importiert, übersetzt und weitergeleitet. Diese Prüfungen lohnen sich am meisten vor dem letzten Export, nicht nach dem Go-live.
Magento-Katalogbereinigung vor dem Wechsel zu Shopify
Dieselbe Disziplin gilt für andere Plattformwechsel. Ein Shop, der WooCommerce verlässt, steht vor denselben Fragen zu Varianten und Metafeldern mit einem einfacheren Quellmodell, beschrieben in WooCommerce vs Shopify.
Den Katalog über ein PIM zwischen Magento und Shopify führen
Eine Migration ist ein guter Moment, die Produktdaten ganz aus dem Shopsystem herauszulösen. WISEPIM verbindet sich mit beiden Plattformen: Die Magento-2-Anbindung importiert Produkte, Kategorien und konfigurierbare Verknüpfungen, und die Shopify-Anbindung exportiert Produkte per SKU mit Varianten als Optionen, Metafeldern sowie übersetzten Titeln und Beschreibungen pro Locale. Dazwischen kannst du Attribute bereinigen, Produkte in Familien gruppieren, fehlende Store Views mit KI übersetzen und Pflichtfelder mit Quality Guard prüfen, bevor irgendetwas Shopify erreicht.
Zwei Grenzen solltest du einplanen: WISEPIM überträgt keine Kunden, Bestellungen oder Weiterleitungen, und es wandelt Magento-Attributsets nicht automatisch in Produktfamilien um. Wenn du beim Umzug auch ein älteres PIM ablöst, beschreibt die Seite zur PIM-Migration, wie Teams diese Daten übernehmen.

