Migration

Migration plateforme e-commerce vers Laravel

Rôle
Développeur Full Stack
Durée
~4 mois
Année
2023
Schéma du projet
01

Contexte

Revendeur e-commerce, ~30 personnes. La société opérait sur 6 sites marchands distincts (France, 5 international). Chaque site avait son propre codebase PHP dans un dossier dédié. Néanmoins, l'ensemble des sites partageaient une base de données unique.

Il y avait un autre site (orienté API sans l'être) pour la mise en commun de certaines fonctionnalités. Ce site fournissait la page de paiement pour chaque site et des fonctionnalités transverses comme la gestion du panier, la création de la commande… Produit vendu en B2C et B2B, avec des devises et des règles TVA différentes selon la typologie du produit et le profil du client (particulier, entreprise…), la localisation du client ainsi que l'endroit où le produit est consommé.

02

Problème

Le code des sites était vieillissant, difficile à maintenir et très chronophage. Le code fait maison était dispersé dans plusieurs dossiers/fichiers, héritage de plusieurs années de développement de la part de plusieurs développeurs. La dette technique était non négligeable : PHP 5 et 7, code en procédural, connexion BDD dans plusieurs fichiers, fonctionnalités non centralisées et répétées, pas de cohérence générale.

Chaque évolution fonctionnelle devait être portée manuellement sur l'ensemble des sites, triplant le coût de maintenance. Pour chaque bug en PROD, l'investigation pouvait prendre un certain temps, parfois plusieurs jours selon la complexité du bug.

Il était temps de faire évoluer les sites e-commerce vers des solutions modernes. Face à la complexité de cette refonte, migration du site FR uniquement afin de valider l'architecture et la solidité de la refonte avant d'étendre aux autres sites.

03

Solution

La première étape a été une analyse approfondie de l'existant sur l'ensemble des 6 sites (FR, DE, ES, IT, NL, UK et le site transverse de caisse) : cartographie des dépendances entre les fichiers communs et les sites, identification des flux critiques (commande, paiement, espace client) et recensement exhaustif des fonctionnalités à porter. Face à la complexité de l'ensemble, la décision a été prise de migrer en premier le site français (le plus volumineux en trafic et en données) afin de valider l'architecture avant d'étendre aux autres marchés.

Sur cette base, une architecture API-first a été retenue. Un back-end Laravel 10 expose l'ensemble des données et des actions métier via une API dédiée (connexion, inscription, création de commande, gestion du panier). Le front-end Laravel/Blade/Alpine.js/Livewire n'a aucun accès direct à la base de données : tout transite par l'API. Ce découplage était une décision délibérée pour éliminer le couplage implicite du legacy et poser des fondations saines avant d'étendre la plateforme aux autres marchés.

La migration a été conduite en coexistence avec la production : le nouveau site FR a été développé et mis en ligne pendant que l'ancien continuait de tourner, les deux systèmes partageant la même base de données. Pour assurer la continuité de service, l'ancienne page de paiement est restée active le temps d'épuiser les renouvellements d'abonnements en attente.

Le transfert des comptes clients a été réalisé via des scripts de migration écrits sur mesure : rattachement de chaque compte au nouveau site via la colonne Site_ID, avec préservation intégrale de l'historique (commandes, SAV et données associées). Les clients ont retrouvé leur historique complet dès leur première connexion sur le nouveau site.

04

Résultat

Le site français a été mis en production sans interruption de service, avec une transition transparente pour les clients. L'architecture API-first est opérationnelle : le front-end et le back-end fonctionnent comme deux instances Laravel distinctes et découplées, avec la base de données accessible uniquement via l'API.

La dette technique accumulée sur plusieurs années a été partiellement soldée : le code procédural éparpillé dans des dizaines de fichiers fait place à un référentiel structuré, versionné et maintenable. Le temps d'investigation sur un bug en production, qui pouvait atteindre plusieurs jours sur l'ancien site, est désormais considérablement réduit grâce à la lisibilité du code et à la centralisation des fonctionnalités.

Les comptes clients ont été migrés intégralement avec leur historique (commandes, SAV et données associées), sans perte de données ni action requise de leur part. L'architecture en place constitue la fondation sur laquelle les autres marchés (DE, ES, IT, NL, UK) seront progressivement intégrés.

Un projet Laravel en tête ?

Réponse sous 24 h. Missions en régie ou au forfait.

  • Île-de-France Sur site ou hybride
  • Partout en France Présentiel ponctuel à négocier — ex. Lyon, 2 jours par mois
  • International Full remote

Les données saisies servent uniquement à vous répondre. Politique de confidentialité.