GoodBro, animalerie en ligne pour chiens et chats

2026

GoodBro

Migration WooCommerce vers Shopify, pour l’agence Webplease · Migration complète (catalogue, clients, commandes, contenu, abonnements)

Contexte

GoodBro, animalerie en ligne pour chiens et chats, devait migrer de WooCommerce vers Shopify sans perte de données ni email envoyé aux clients pendant la bascule. L’agence Webplease, qui suit le compte, m’a confié la partie technique de la migration.

Ce n’était pas un catalogue simple : produits avec variantes et metafields nutritionnels, historique clients et commandes sur trois ans, contenu éditorial (blog vétérinaire, fiches races), abonnements et Club GoodBro sous Stripe, avis, redirections SEO, points relais Mondial Relay. Un outil Node.js sur-mesure a orchestré l’export, le mapping, l’import, la réconciliation et le delta post-cutover.

Résultat : 760 produits et 1 233 variantes migrés, environ 18 090 clients mappés, environ 37 130 commandes importées, 1 177 abonnements basculés avec 100 % de fidélité sur variante, quantité, prix et fréquence. Go-live le 11 mai 2026.

Objectifs & livrables

Zéro perte de données métier

Catalogue, clients, commandes, contenu éditorial et abonnements, tous migrés.

Zéro email envoyé aux clients

Aucune notification de compte ni reçu de commande pendant l’import.

Reprise à chaque étape

Snapshot, dry-run, idempotence, pour rejouer un import sans repartir de zéro.

Delta de cutover maîtrisé

Réconciliation entre le dernier import et le go-live, sans rien perdre entre les deux.

Sous le capot

Node.js (ES modules), client officiel @shopify/admin-api-client, REST WooCommerce/WordPress, snapshots JSONL, mappings persistés, logs par run. Snapshot d’abord, dry-run obligatoire avant toute mutation, idempotence via mapping Woo ID vers Shopify GID, zéro notification client pendant l’import.

MigrationMetafields

01 / 05

Catalogue : 760 produits, 1 233 variantes

Problème

Transporter un catalogue riche (variantes, stocks, metafields nutritionnels, taxonomie chien/chat) sans le réduire à une liste de produits génériques.

Approche

Export de 760 produits, 1 233 variantes, 55 catégories et 13 attributs, puis import avec mapping automatique des metafields custom (espèce, âge, saveur, composition, conditionnement par poids). Ensuite seulement : taxonomie Shopify, publication sur les canaux, ALT des images, nettoyage des médias. Résultat : 759 produits et 1 223 variantes reliés à Shopify, sans repartir d’un mapping manuel produit par produit.

Catalogue : 760 produits, 1 233 variantes

ClientsCommandes

02 / 05

Clients et commandes : trois ans d’historique

Problème

Reprendre l’historique client et commande sans dupliquer les comptes, sans réactiver de vieilles adresses email invalides, et sans qu’aucun client ne reçoive de notification pendant l’import.

Approche

Fusion des doublons par email, normalisation des téléphones au format E.164, reprise des consentements newsletter, filtrage des emails de test ou d’injection SQL. Les commandes conservent leur date, leur montant, leur statut financier et leur rattachement client, avec une ligne de remplacement si la variante d’origine a disparu. Aucune invitation de compte, aucun reçu de commande envoyé pendant l’import : les options d’envoi Shopify sont désactivées explicitement pour la durée de la migration.

Clients et commandes : trois ans d’historique

AbonnementsSkio

03 / 05

Abonnements : Appstle puis Skio, sans perte de fidélité

Problème

Faire basculer des abonnements actifs, et le Club GoodBro sous Stripe, d’un système à un autre sans interrompre ni fausser un seul renouvellement.

Approche

Un pipeline Woo vers CSV Appstle, puis une bascule Appstle vers Skio. Sur 1 327 abonnements actifs préparés, 1 177 ont été importés avec fidélité complète sur la variante, la quantité, le prix et la fréquence ; 151 rejets ont été traités en retry et en delta. Le Club GoodBro (variante à 59 €) a été reconstitué depuis les données Stripe, avec l’enrichissement livraison (transporteurs, points relais, paliers panier par pays).

Abonnements : Appstle puis Skio, sans perte de fidélité

SEOContenu

04 / 05

Contenu éditorial, SEO et avis

Problème

Ne pas perdre trois ans de contenu éditorial ni le référencement acquis en changeant de plateforme.

Approche

665 articles de blog et 110 fiches races (chien et chat) migrés depuis les champs ACF vers des metafields Shopify, avec réupload des images sur le CDN Shopify pour 338 articles. Des redirections 301 couvrent produits, articles, pages WordPress et sitemaps. 114 avis WooCommerce ont été transférés vers Judge.me, avec correspondance produit et export des avis orphelins qui n’ont pas pu être rattachés automatiquement.

Contenu éditorial, SEO et avis

Go-liveRéconciliation

05 / 05

Go-live et delta du 11 mai 2026

Problème

Absorber ce qui se passe entre le dernier import de test et le vrai basculement, sans perdre les commandes ou les nouveaux comptes créés entre-temps.

Approche

Entre le dernier import et le cutover : 126 nouveaux clients, 424 nouvelles commandes (environ 33 800 €), 11 nouveaux abonnements, et une synchronisation de 1 110 quantités de stock. Une réconciliation Woo/Shopify par email, date et montant, avec un tag dédié, a permis de rattraper les écarts ciblés. Après le go-live : synchronisation continue des stocks, rattachement des attributs Mondial Relay aux commandes récentes, et réparation des liens de connexion checkout mal encodés.

Go-live et delta du 11 mai 2026

Décisions

Pourquoi ces choix techniques

Un plugin générique ne gère pas les metafields nutritionnels, les abonnements, ni le zéro email exigé pendant l’import. Un outil Node.js dédié a permis le mapping, la réconciliation et les reprises précises que le projet demandait.

Suite

Une migration e-commerce sans perte de données ?

Snapshot, dry-run, idempotence : chaque étape peut être rejouée sans repartir de zéro.