Migrer de Shopify vers MedusaJS : le guide 2026
En bref. Migrer de Shopify vers MedusaJS vaut le coup quand Shopify vous bride : commissions sur les ventes, personnalisation plafonnée, facturation en USD, et données hébergées hors de Suisse. Si une petite boutique standard tourne bien sur Shopify, restez-y. Sinon, voici le plan complet : mapping des données, étapes, pièges, et les points suisses (Twint via Payrexx, QR-facture, TVA).
Pourquoi migrer, et quand ne pas le faire
MedusaJS est un backend e-commerce open-source (MIT) que vous hébergez vous-même. Concrètement, contre Shopify, ça change quatre choses pour un marchand suisse :
- Aucune commission de plateforme. Vous payez votre processeur de paiement et votre hébergement, pas un pourcentage de votre chiffre d’affaires.
- Personnalisation sans limite. Logique de prix, B2B, checkout, intégrations : c’est du code que vous possédez, pas une app à louer.
- Pas de facturation en USD ni de dépendance à une roadmap d’éditeur.
- Souveraineté des données. Vous pouvez héberger en Suisse (Infomaniak, Exoscale), un argument fort sous la nLPD.
Soyons honnêtes : Medusa demande du développement. Si vous êtes une petite boutique sans équipe technique et que Shopify couvre vos besoins, la migration n’en vaut pas la peine. Medusa devient pertinent dès que vous avez une vraie spécificité (B2B, QR-facture, omnicanal, résidence des données) ou un volume qui rend les commissions douloureuses.
Shopify → MedusaJS : le mapping des données
Avant de migrer, sachez ce qui se mappe sur quoi. Medusa v2 a un modèle de données modulaire et clair :
| Shopify | MedusaJS (v2) | Notes |
|---|---|---|
| Produit | Product | Titre, description, statut, images |
| Variante | Product Variant | SKU, prix par devise/région |
| Collection | Product Category / Collection | Les catégories sont hiérarchiques |
| Client | Customer | Mots de passe non exportables → réinitialisation |
| Commande | Order (souvent en lecture seule) | L’historique se migre rarement à 100 % |
| Pages / Blog | CMS externe ou MDX | Medusa n’est pas un CMS |
| Réduction | Promotion | Règles à recréer |
| Redirection | 301 à préserver | Le point SEO critique |
Le plan de migration, étape par étape
Il n’existe pas d’outil one-click pour Medusa v2. L’ancien plugin
medusa-source-shopifyciblait la v1. Une migration v2 est un projet maîtrisé : c’est plus de travail, mais vous gardez le contrôle.
- Auditer et cadrer. Inventoriez tout : produits, variantes, collections, clients, commandes, contenu, et surtout les apps Shopify dont vous dépendez (chacune devient un module ou une intégration à prévoir).
- Monter Medusa v2.
npx create-medusa-app@latest, puis configurez une région Suisse en CHF, la TVA à 8,1 %, et vos sales channels. - Exporter depuis Shopify. Via l’Admin API GraphQL (produits, variantes, collections, clients) ou l’export CSV pour les petits catalogues. Les commandes s’exportent aussi, mais voyez d’abord si vous en avez vraiment besoin côté Medusa.
- Importer dans Medusa. Un script d’import qui appelle l’Admin API et les workflows (
createProductsWorkflow, etc.), en téléversant les images via le File Module. C’est ici que le mapping ci-dessus prend vie. - Reconstruire le storefront. Next.js (starter Medusa) ou Astro, branché sur la Store API. C’est l’occasion de gagner en performance et en SEO.
- Paiements et spécificités suisses. Démarrez avec Stripe, puis ajoutez Twint via Payrexx, la QR-facture pour le B2B, et Swiss Post pour la livraison (voir plus bas).
- SEO et redirections 301. Mappez chaque ancienne URL Shopify (
/products/<handle>,/collections/<handle>) vers la nouvelle. Sans ça, vous perdez votre référencement. - Recette et bascule. Testez tout sur un domaine de staging, puis basculez le DNS. Surveillez les commandes et les paiements les premiers jours.
Les pièges à éviter
- L’historique des commandes et clients est la partie difficile. Souvent, on garde Shopify en lecture seule un temps plutôt que de tout migrer.
- Les apps Shopify que vous utilisiez (avis, abonnements, fidélité) n’existent pas telles quelles. Il faut un module ou une intégration équivalente.
- Les redirections 301 : l’erreur n°1. Un audit d’URLs avant la bascule évite la chute de trafic.
- Le checkout : le tunnel Shopify est remplacé par le vôtre. Testez les paiements en conditions réelles avant le go-live.
Les points suisses qui changent tout
C’est là que la migration devient un vrai gain, pas juste un déménagement :
- Twint. L’API Twint n’est pas ouverte en direct, donc l’intégration passe par un PSP. Chez Composalp, c’est Twint via Payrexx (notre module arrive). En attendant, Stripe couvre cartes et wallets.
- QR-facture. Le paiement sur facture (incontournable en B2B suisse) se génère avec la librairie
swissqrbill, branchée sur la commande Medusa. - TVA à 8,1 % et trois langues nationales : gérées proprement par les régions Medusa.
- Hébergement en Suisse (Infomaniak, Exoscale) : vos données restent sur sol suisse.
Vous migrez depuis Shopify ?
Une migration Shopify → Medusa réussie tient à trois choses : un bon mapping de données, des redirections SEO carrées, et des paiements suisses qui marchent dès le premier jour. C’est exactement ce qu’on construit chez Composalp. Parlons de votre projet.
FAQ
Existe-t-il un outil pour migrer Shopify vers Medusa en un clic ?
Non pour Medusa v2. L’ancien plugin medusa-source-shopify visait Medusa v1. Une migration v2 est un projet maîtrisé : export depuis l’API Shopify, puis import via l’Admin API et les workflows de Medusa. C’est plus de travail, mais vous gardez un contrôle total.
Combien de temps prend une migration ?
De quelques jours pour un petit catalogue sans historique, à plusieurs semaines pour un B2B avec commandes, comptes clients et intégrations. Le catalogue se migre vite ; ce sont les commandes, les redirections SEO et les paiements qui prennent du temps.
Vais-je perdre mon référencement Google ?
Pas si vous préservez les URLs avec des redirections 301 (Shopify /products/handle vers vos nouvelles URLs). C’est l’étape SEO la plus critique de la migration.
Puis-je accepter Twint avec Medusa ?
Oui, via un PSP (l’API Twint n’est pas ouverte en direct). Chez Composalp, Twint passe par Payrexx, et notre module de paiement arrive prochainement. En attendant, on démarre avec Stripe.
Et la QR-facture et la TVA suisse ?
La QR-facture (paiement sur facture B2B) se génère via la librairie swissqrbill, branchée sur la commande Medusa. La TVA suisse à 8,1 % se configure proprement dans la région CH.
Dois-je tout migrer d’un coup ?
Non. Le plus sûr est une bascule par étapes : catalogue d’abord, storefront ensuite, puis paiements et go-live sur un domaine de test avant la bascule DNS.