Projet : Migration d’une application e-commerce PHP/Symfony 100% sur mesure vers PrestaShop 1.7
Volume : 50 000+ références produits avec déclinaisons
Durée : 6 à 8 mois
Infrastructure : Migration AWS → serveur dédié
Statut : En production (PrestaShop 1.7 stable)
Contexte et enjeux
Motostand est une boutique e-commerce spécialisée dans la pièce moto, exploitée par PPGF Distribution. Au moment de la mission, le site fonctionnait sur une application développée entièrement sur mesure : design Bootstrap, architecture Symfony côté back, base de données et logique métier 100% propriétaires.
Le client venait de racheter l’activité et souhaitait reprendre la main sur un outil maîtrisable, évolutif, sans dépendance à un prestataire unique. Le passage à PrestaShop s’imposait — mais avec trois contraintes non négociables :
- Zéro perte SEO : le site existant avait une visibilité construite sur des années, avec une structure d’URL spécifique à conserver
- Continuité opérationnelle : 50 000+ références, des logiques stock complexes (entrepôt propre + API fournisseurs), une équipe habituée à un BO sur mesure
- Transfert complet des données : historique clients, commandes, catalogue avec toutes les déclinaisons
Travaux réalisés
1. Script de migration sur mesure
L’application source n’ayant aucune compatibilité avec les formats PrestaShop, j’ai développé un script de migration complet en PHP pur, capable de :
- Extraire et normaliser les données depuis la base Symfony (produits, déclinaisons, attributs, images, clients, commandes)
- Injecter les données directement en base PrestaShop via les ObjectModel natifs (pas d’import CSV — pour éviter les corruptions sur 50 000+ lignes)
- Gérer les cas limites : déclinaisons orphelines, produits sans image, références dupliquées, historiques commandes partiels
- Permettre des passages en dry-run pour validation avant exécution réelle
2. Conservation du SEO — enjeu critique
La structure d’URL de l’application Symfony était non standard par rapport à PrestaShop. Plutôt que d’opter pour des redirections 301 massives (risque de perte de jus SEO sur 50 000 URLs), j’ai reproduit la structure d’URL legacy directement dans PrestaShop :
- Configuration des règles de réécriture PrestaShop pour matcher l’ancien format
- Mapping automatique entre les anciens identifiants et les nouveaux IDs PrestaShop
- Gestion des canonical pour les cas non migrables
Résultat : baisse légère au lancement (inévitable lors d’un changement de plateforme), puis stabilisation et rattrapage progressif après ajustements.
3. Module de gestion stock physique + API fournisseurs
Motostand gère deux types de stock distincts :
- Stock physique entrepôt : géré directement dans PrestaShop
- Stock virtuel fournisseur : disponible en sourcing, non stocké physiquement mais commandable
J’ai développé un module PrestaShop spécifique gérant :
- La synchronisation via API fournisseur : récupération des stocks et prix en temps réel
- La logique d’affichage côté front : indicateur “disponible fournisseur” vs “en stock entrepôt”
- La gestion des délais de livraison différenciés selon la source de stock
- Les règles de priorité : stock entrepôt en priorité, puis sourcing fournisseur
4. Flux Google Ads multi-segments
Avec 50 000+ références, un flux Google Shopping unique n’était pas viable (limites de taille, difficulté de segmentation des enchères). J’ai développé un module de génération de flux multi-segments :
- Segmentation du catalogue par catégorie, marque ou type de produit
- Génération de flux XML Google Merchant distincts par segment
- Mise à jour automatique des données produits (prix, stock, disponibilité)
- Gestion des exclusions (produits épuisés, sans image, hors politique Ads)
5. Moteur de recherche métier
La pièce moto nécessite une recherche par compatibilité (marque moto, modèle, année, cylindrée). Le moteur natif PrestaShop est insuffisant pour ce cas d’usage. J’ai implémenté un module de recherche spécifique :
- Recherche par critères véhicule (marque / modèle / année)
- Filtrage des pièces compatibles selon la sélection
- Intégration dans le header du thème pour accès immédiat
6. Adaptation du Back Office
L’ancien système avait un BO sur mesure que l’équipe maîtrisait. Pour éviter une rupture trop forte dans les usages, j’ai adapté le BO PrestaShop :
- Modification des écrans de gestion des commandes (colonnes supplémentaires, indicateurs de stock source)
- Création de vues personnalisées pour la préparation des expéditions
- Simplification des flux de traitement commande pour l’équipe logistique
7. Migration infrastructure AWS → serveur dédié
L’application source tournait sur AWS. La migration vers PrestaShop a été l’occasion de rapatrier l’hébergement sur un serveur dédié, avec :
- Configuration de l’environnement serveur (Apache/PHP/MySQL) optimisée pour PrestaShop
- Mise en place du cache et des règles de performance
- Bascule DNS avec fenêtre de maintenance minimale
Stack technique
| Domaine | Technologies |
|---|---|
| Plateforme cible | PrestaShop 1.7 |
| Migration | PHP (script sur mesure), MySQL |
| Modules développés | API fournisseur, stock physique/virtuel, flux Google Ads, moteur recherche métier, BO custom |
| Source legacy | Symfony, Bootstrap, base MySQL propriétaire |
| Infrastructure | Migration AWS → serveur dédié |
| Volume | 50 000+ références produits |
Résultats
- Migration réussie de 50 000+ références sans perte de données
- SEO préservé : baisse légère au lancement, rattrapage progressif confirmé
- Gestion de stock hybride (entrepôt + fournisseur) opérationnelle dès le J+1
- Flux Google Ads multi-segments actifs, segmentation par type de produit
- Équipe back-office autonome sur le nouvel outil
- Plateforme en production sur PrestaShop 1.7 — stable depuis le lancement
Vous avez un projet de migration e-commerce similaire ? Parlons-en →