Shopify naar Magento migreren: wat gaat er mee?

Haimanti Dekker
Haimanti Dekker
3 november 20269 min

Van Shopify naar Magento migreren doe je niet omdat het platform zelf stuk is, maar omdat je tegen iets aanloopt wat Shopify niet oplost: B2B-prijslogica, een afwijkende checkout, of een ERP-koppeling die verder gaat dan een app aankan. Heb je die keuze nog niet gemaakt, lees dan eerst Magento of Shopify?. Ga je er wel voor, dan is de vraag die overblijft praktischer: wat gaat er mee en wat niet. De data is meestal het makkelijke deel; het werk zit in URL’s, wachtwoorden en het uitzoeken wat al die apps eigenlijk deden.

Wat van Shopify naar Magento meegaat en wat niet

Een migratietool suggereert vaak dat alles overgaat met één druk op de knop. Dat klopt voor een deel: productgegevens en klantgegevens exporteer en importeer je relatief rechtlijnig. Voor de rest moet je keuzes maken. Varianten vertalen zich niet één op één naar de Magento-structuur, metafields gaan maar deels mee in de standaardexport en wachtwoorden gaan nergens mee naartoe. URL’s veranderen sowieso, want Shopify en Magento gebruiken andere structuren. En wat apps deden, moet je stuk voor stuk opnieuw vinden in Magento: als ingebouwde functie, als extensie of als maatwerk.

Producten en klanten: exporteren en importeren

Bij Shopify exporteer je producten via Producten > Exporteren als CSV. Klanten exporteer je op dezelfde manier als CSV; heb je meer dan 50 klanten, dan kun je het bestand niet direct downloaden maar krijg je het per e-mail. Orders kun je ook als CSV exporteren, maar dat werkt alleen één kant op: Shopify ondersteunt die CSV alleen voor export, niet om orders ergens mee te importeren. Wil je orderhistorie terugzien in Magento, dan vraagt dat maatwerk: een script of de API, geen exportknop.

Kom je van WooCommerce, dan heb je een ingebouwde productexport als CSV. Een volwaardige klant- en orderexport zit daar niet standaard in; via Analytics download je hooguit een rapport als CSV. Voor de echte data heb je een extensie of de WooCommerce REST-API nodig.

In Magento zelf komt alles binnen via System > Data Transfer > Import, met apart aan te leveren bestanden voor Products, Advanced Pricing, Customers Main File en Customer Addresses, of klanten en adressen samen in één bestand via Customers and Addresses. Moet je vaker importeren, bijvoorbeeld een proefimport en daarna de definitieve, dan is een script via de REST-API vaak handiger dan steeds bestanden uploaden.

Collections en content verdienen een eigen check. Handmatige collections worden gewone categorieën. Automatische collections, die Shopify vult op basis van regels, hebben in Magento Open Source geen direct equivalent: die worden vaste categorieën of vragen een extensie. Pagina’s en blogposts landen in Magento als CMS-pagina’s, of in een blogextensie, want een blog zit niet in Magento zelf.

Wachtwoorden gaan nooit mee

Wachtwoorden worden bij elk platform gehasht opgeslagen. Dat is geen Shopify- of Magento-eigenaardigheid, maar hoe wachtwoordbeveiliging werkt: een hash is niet terug te rekenen naar het originele wachtwoord. Dat betekent dat klantenwachtwoorden nooit meegaan, naar welk platform dan ook.

De oplossing is niet wachten tot een klant vastloopt bij het inloggen, maar zelf het initiatief nemen. Stuur bij livegang een reset-mail naar je klantenbestand met duidelijke uitleg waarom dat nodig is. Dat voorkomt een stroom aan supportvragen in de eerste week na de overstap.

Varianten worden configurable products

Shopify werkt met varianten: maximaal drie opties, zoals maat, kleur of materiaal, onder één product. Magento kent dat niet als los concept maar als configurable product: één hoofdproduct met daaronder losse simple products per variant, elk met een eigen SKU en eigen voorraad.

Die vertaling is geen simpele doorvoer. Per optie maak je een keuze: wordt dit een Magento-attribuut dat je in meerdere producten hergebruikt, of blijft het een eigenschap van dit ene product? Hoe je dat invult, bepaalt later hoe makkelijk je filtert, zoekt en voorraad beheert. Dit is het moment om de productstructuur te bekijken, niet om alles automatisch over te nemen.

Metafields en extra velden

Metafields zijn in Shopify de manier om extra informatie aan een product te hangen die niet in een standaardveld past. Het probleem: in de standaard CSV-export zitten alleen productmetafields waarvoor je een definitie hebt aangemaakt; metafields zonder definitie en variantmetafields gaan niet mee. Wil je die ook overzetten, dan heb je een app nodig zoals Matrixify, of je haalt ze op via de API.

In Magento richt je het andersom in: vooraf bepaal je welke attributen je nodig hebt en in welke attribuutset ze horen. Dat is meer voorbereiding dan bij Shopify, maar levert een opgeruimdere structuur op dan een stapel metafields die niemand meer kan uitleggen.

URL’s en redirects: hier zit het echte werk

Shopify legt je URL-structuur vast. Je zit aan voorvoegsels als /products/, /collections/, /pages/ en /blogs//, en daar kun je niets aan veranderen. In Magento bepaal je de URL-structuur zelf. Dat is prettig voor de lange termijn, maar het betekent wel dat elke oude URL een nieuwe krijgt.

Dat is waar de meeste tijd in een overstap gaat zitten, niet in de data. Elke oude URL krijgt een 301 (permanente redirect) naar zijn nieuwe plek, geen 302. In Magento zie je die terug onder Marketing > SEO & Search > URL Rewrites. Bij een paar honderd producten en categorieën zet je ze er met een script in, niet met de hand. Mis je een deel van die mapping, dan verlies je geïndexeerde posities in Google, ook al staat de content weer online.

Na livegang dien je een nieuwe sitemap in bij Google Search Console en houd je 404’s in de gaten. Een paar losse 404’s zijn normaal; een oplopend aantal is een teken dat er URL’s zijn gemist in de mapping. Het volledige traject rondom een migratie, inclusief deze stap, staat uitgebreider in het stappenplan voor een Magento-migratie.

Apps worden extensies, standaardfuncties of maatwerk

Elke Shopify-app die je gebruikt, moet je in Magento opnieuw vinden, en niet altijd op dezelfde manier. Soms bestaat de functie al standaard. Productreviews bijvoorbeeld: in Shopify zitten die in een app zoals Judge.me of Yotpo, met een eigen export die je los moet meenemen. Magento heeft productreviews gewoon ingebouwd.

Andere functies vind je terug als Magento-extensie, en weer andere bestaan nergens als kant-en-klare oplossing en vragen maatwerk. Plan dit per app: welke functie levert hij precies, bestaat dat al standaard in Magento, is er een extensie voor, of moet het gebouwd worden. Twijfel je of een bestaande extensie of stuk maatwerk wel in goede staat is, dan is dat een vraag voor een code review.

Betalen zonder Shopify Payments

Shopify Payments bestaat alleen binnen Shopify; die optie neem je niet mee. In Magento kies je een payment service provider met een eigen Magento-module, zoals Mollie, Adyen of MultiSafepay.

Dat is meteen ook een voordeel van de overstap. Kies je in Shopify een externe provider in plaats van Shopify Payments, dan rekent Shopify daar een opslag over: afhankelijk van je abonnement 0,2 tot 2 procent per transactie. Die opslag bestaat in Magento niet: je betaalt alleen de tarieven van je PSP.

Wanneer je beter niet overstapt

Niet elke shop moet overstappen. Draait je shop prima op Shopify of WooCommerce, heb je geen B2B-prijslogica, geen complexe productvarianten en geen ERP dat om een stevige koppeling vraagt, dan koop je met Magento vooral meer beheer en meer hostingvereisten, zonder dat daar meteen iets tegenover staat. Bij Shopify zit hosting inbegrepen; bij Magento regel je dat zelf, zie wat Magento aan hosting vereist.

Zoek je vooral een snellere of goedkopere shop, dan is Magento daar niet automatisch het antwoord op. De winst zit in wat je ermee kunt bouwen, niet in een lagere maandrekening.

Zo pakken we een overstap aan

Een migratie van Shopify of WooCommerce naar Magento pakken we in stappen aan, niet als los dataproject.

Eerst inventariseren: welke apps draaien er, wat doen ze precies, en wat moet daarvan terugkomen als standaardfunctie, extensie of maatwerk. Daarna richten we de productstructuur in Magento in, inclusief attributen en attribuutsets, vóórdat we data overzetten, zodat varianten en metafields een logische plek krijgen in plaats van los erbij geplakt te worden.

Parallel daaraan bouwen we de URL-mapping op en testen we die voordat de shop live gaat. Klanten en productdata zetten we over via Magento’s eigen importtools of de API, afhankelijk van omvang en complexiteit.

Tussen de laatste export en de livegang blijft de oude shop orders en nieuwe klanten ontvangen. Dat verschil zet je bij de overstap nog één keer over, of je zet de oude shop kort op pauze. Welke van de twee hangt af van je ordervolume. Na livegang volgt een periode van extra aandacht voor 404’s, zoekposities en betaalflows, voordat het project als afgerond geldt.

Meer over onze aanpak staat bij Magento migratie, en wat er verder bij komt kijken lees je bij Magento webshop laten maken. Wil je weten wat er in jouw geval meegaat? Neem contact op, dan kijken we naar je huidige shop.

Veelgestelde vragen

Kan ik mijn wachtwoorden meenemen naar Magento?

Nee, bij geen enkel platform. Wachtwoorden zijn gehasht opgeslagen en niet terug te rekenen. Stuur klanten bij livegang zelf een reset-mail.

Verlies ik mijn Google-posities bij een overstap?

Alleen als de URL-mapping niet klopt. Shopify en Magento gebruiken andere URL-structuren, dus elke pagina krijgt een nieuwe URL. Zet je daar steeds een 301-redirect op, dan behoud je grotendeels je posities. Mis je URL’s in die mapping, dan val je terug in de resultaten.

Gaan mijn Shopify-apps automatisch mee naar Magento?

Nee, Shopify-apps werken alleen in Shopify. Per app zoek je uit of de functie al standaard in Magento zit, zoals productreviews, als extensie bestaat, of maatwerk vraagt. Dat is een inventarisatie vooraf, niet iets wat je tijdens de migratie ontdekt.

Kan ik mijn orderhistorie overzetten naar Magento?

Beperkt. Shopify’s CSV-export bevat orders, maar dat formaat is niet geschikt om terug te importeren. Wil je oude orders zichtbaar in Magento, dan vraagt dat maatwerk via een script of de API, geen standaardfunctie.

Meer lezen?

Bekijk al onze artikelen over e-commerce en development.