Migration PrestaShop 1.7 → 9 — RSRC
Contexte
RSRC est un e-commerce spécialisé dans les voitures radiocommandées, en forte croissance depuis plusieurs années. À l'approche de ses 10 ans, la boutique tournait encore sur PrestaShop 1.7.6 avec le thème Classic — une base devenue contraignante à maintenir et incompatible avec les nouvelles fonctionnalités de PrestaShop 9.
Renaud Savoya m'a confié la migration complète : mise à niveau vers PrestaShop 9, migration de toutes les données de production (clients, commandes, statistiques, blog…) et refonte du thème vers Hummingbird v2.
L'enjeu principal : zéro perte de données, zéro perte SEO, et un temps d'arrêt le plus court possible sur une boutique active.
Réalisations
Migration de la base de données
La migration de données entre deux versions majeures de PrestaShop est un exercice délicat : le schéma de base de données évolue significativement entre PS 1.7.6 et PS 9. J'ai développé un ensemble de scripts PHP sur mesure (~1 450 lignes au total) pour orchestrer la migration :
migrate-delta.php— Script principal de migration delta. Stratégie TRUNCATE + réinsertion intégrale depuis la source. Gère les différences de schéma table par table : colonnes supprimées en PS9 (ex.shipping_numbersurps_orders), colonnes ajoutées avec valeur par défaut (ex.note,product_mpn,total_refunded_tax_excl). Mode--dry-runpour valider sans écriture. Traitement par batch de 500 lignes.migrate-cart-rule.php/migrate-cart-rule-prod.php— Migration des règles de réduction (coupons), avec gestion séparée staging et production.import-products.php— Import du catalogue produit.
Tables migrées : clients, adresses, invités, paniers, commandes, détails de commande, historiques, transporteurs associés, paiements, factures, avoirs, retours, stock, messages SAV, statistiques natives PrestaShop, stats module Op'art (opartstat), blog (module PrestaBlog).
La synchronisation des fichiers (images produits, médias) a été réalisée via rsync et scripts Bash pour minimiser le volume de transfert au moment de la bascule.
Stratégie de bascule
Le workflow de mise en production :
- Migration complète en staging (DDEV), tests exhaustifs
- Dump de production → import dans la base source locale
- Exécution du script delta en
--dry-runpour contrôle - Mise en maintenance de la boutique
- Exécution du delta réel (données de production fraîches)
- Synchronisation des médias via rsync
- Bascule DNS
Adaptation du thème Hummingbird v2
Le thème Hummingbird v2 est la nouvelle référence front-end de PrestaShop, pensé pour PS 9.1.x. La boutique étant en 9.0.x, quelques ajustements ont été nécessaires pour assurer la compatibilité. Personnalisation visuelle complète à partir de la base Hummingbird.

Gestion des modules
La compatibilité PS 9 a imposé un tri rigoureux des modules existants. Certains ont été remplacés, d'autres mis à jour, plusieurs simplement supprimés — l'occasion de désencombrer une installation chargée par 10 ans d'évolutions.
Difficultés techniques
Schéma de BDD divergent entre PS 1.7.6 et PS 9 : certaines colonnes ont disparu, d'autres ont été ajoutées. Le script gère ces cas table par table, en excluant les colonnes sources absentes de la cible et en injectant des valeurs par défaut pour les nouvelles colonnes.
Données en mouvement : sur une boutique active, les commandes continuent d'arriver pendant que le staging est en place. Le script delta, lancé après le dump de production au moment de la mise en maintenance, garantit que la cible PS 9 est à jour à la seconde de la bascule.
Hummingbird prévu pour 9.1.x : quelques incompatibilités mineures avec PS 9.0.x ont nécessité des ajustements ciblés.
Modules front-office lourds : le score Lighthouse mobile plafonne autour de 75-80, l'objectif 90 restant difficile à atteindre sans désactiver des modules tiers indispensables au fonctionnement de la boutique.
Résultats
- Downtime < 15 minutes sur une boutique en production active
- Trafic SEO conservé, puis en progression post-migration
- Lighthouse mobile : 40 → 75+ (score initial sur PS 1.7.6 / Classic)
- Accès aux nouvelles fonctionnalités PS 9 : multicarrier, product page v2, Admin API
- Base technique propre pour les évolutions futures