Disponible pour missions & renforts d’agence · Réponse rapide, par la personne qui intervient

Migrer une boutique PrestaShop 1.6 vers 8

Il n’existe pas de saut direct entre PrestaShop 1.6 et 8 avec l’outil officiel : il faut passer par la 1.7, au moins transitoirement, ou repartir d’une installation neuve et migrer les données. Voici les deux méthodes, ce qui casse en chemin, et comment je choisis.

Décrire mon problème Discuter sur WhatsApp

Pourquoi il n’y a pas de raccourci vers PrestaShop 8

Le module officiel autoupgrade (anciennement 1-Click Upgrade) sauvegarde fichiers et base, puis exécute les scripts de mise à jour de schéma nécessaires pour passer d’une version majeure à la suivante. Aucune version de cet outil ne saute directement de la 1.6 à la 8 : la structure de la base change à chaque version majeure, avec de nouvelles tables et des colonnes renommées, et les scripts officiels sont écrits pour une étape à la fois.

Deux méthodes restent possibles. Enchaîner les migrations, 1.6 vers 1.7 puis 1.7 vers 8, avec sauvegarde complète et reconstruction de thème à chaque étape. Ou repartir d’une installation neuve de PrestaShop 8 et migrer uniquement les données (catalogue, clients, commandes) plutôt que le site : souvent plus rapide quand thème et modules 1.6 sont de toute façon à refaire.

Côté PHP, PrestaShop 8 demande au minimum 7.2.5, avec PHP 8.0 et 8.1, puis 8.2 depuis septembre 2024. La 1.6 fonctionne au mieux jusqu’à PHP 7.1 : le saut de version PHP fait partie intégrante de la migration, pas une option séparée.

Ce qui casse typiquement dans une migration 1.6 vers 8

  • Un module de paiement utilisant encore displayPayment (1.6) n’apparaît plus au tunnel de commande en 8, où seul paymentOptions est appelé.
  • Les modules utilisant l’ancienne syntaxe entre accolades (par exemple $array{0}) provoquent des erreurs fatales, supprimée depuis PHP 8.
  • Le thème 1.6, sur Default et Smarty seul, n’a pas d’équivalent direct dans l’architecture hybride Symfony/Twig de la 8 : reconstruction nécessaire, pas simple copie.
  • Un module ne déclarant compatibilité que jusqu’à la 1.7.8 (config.xml, $ps_versions_compliancy) est bloqué à l’installation sur PrestaShop 8.

Comment je choisis et je conduis la migration

  1. Audit de l’écosystème actuel

    Je liste les modules, leurs versions, et leur compatibilité déclarée avec la 8, et j’évalue l’état du thème.

  2. Choix de la méthode

    Chaîne 1.6 → 1.7 → 8 si thème et modules ont une bonne chance de passer, ou installation neuve en 8 si la reconstruction est de toute façon inévitable.

  3. Sauvegarde complète avant chaque étape

    Fichiers, base complète, configuration des modules critiques, sauvegardés hors du dossier d’autoupgrade avant tout lancement.

  4. Migration ou import de données sur un environnement de test

    Jamais en production. Je valide chaque étape avant de passer à la suivante.

  5. Reconstruction du thème et remplacement des modules incompatibles

    Thème reconstruit sur Classic ; je cherche un équivalent fonctionnel pour chaque module qui ne migre pas, ou je le réécris.

  6. Vérification puis bascule en production

    Bascule programmée à faible trafic, une fois la boutique de test validée.

Ce que je sauvegarde et comment je vérifie qu’il ne manque rien

Avant la première étape, je sauvegarde l’intégralité des fichiers, un dump complet de la base, la liste précise des modules avec leurs versions, et la configuration des modules de paiement et transport. Cette sauvegarde initiale est conservée à part, indépendamment de celles que génère autoupgrade à chaque étape intermédiaire, car celles-ci peuvent être écrasées.

Après la bascule finale, je vérifie que le nombre de commandes, clients et produits correspond exactement à l’avant-migration, que les URLs principales répondent toujours avec le bon code, que les redirections fonctionnent, et je passe une commande de test complète pour confirmer que le tunnel de paiement fonctionne avec paymentOptions.

config.xml
<compatibility>
  <min>1.7</min>
  <max>8.99.99</max>
</compatibility>

Pour préparer ou compléter cette migration

  • PHP 5.2 à 7.1 PrestaShop 1.6
  • PHP 7.2.5 minimum, jusqu’à 8.2 PrestaShop 8

devdocs.prestashop-project.org

Décrivez votre besoin en 1 minute

Quelques questions ciblées pour que je vous réponde avec une estimation, pas avec un questionnaire de plus.

Quelle est la version actuelle ?
Vers quelle version souhaitez-vous aller ?
Quelle est la taille du catalogue ?

C’est le premier facteur de durée d’une migration, avant même le nombre de modules.

La boutique utilise-t-elle beaucoup de modules tiers ou personnalisés ? (facultatif)

Chaque module non natif doit être vérifié, remplacé ou réécrit pour la version cible.

Qu’est-ce qui doit impérativement être conservé ? (facultatif)
Indiquez au moins un e-mail ou un téléphone pour que je puisse vous répondre.

Indiquez au moins un e-mail ou un téléphone pour que je puisse vous répondre.

Questions fréquentes

Puis-je passer directement de PrestaShop 1.6 à 8 avec le module de mise à jour ?
Non, pas en un seul lancement. autoupgrade enchaîne les paliers sans en sauter aucun, et la version du module capable de traiter une 1.6 s’arrête à la 1.7 : il faut atteindre la 1.7 d’abord, puis relancer l’outil pour aller jusqu’à la 8. L’autre voie est de repartir d’une installation neuve en 8 et de migrer les données séparément.
Vaut-il mieux migrer via la 1.7 ou repartir d’une installation neuve en 8 ?
Selon l’état du thème et des modules. Si l’essentiel a une chance de passer les étapes intermédiaires, j’enchaîne les migrations. S’ils sont de toute façon à refaire, repartir d’une 8 neuve et migrer uniquement les données est souvent plus rapide.
Quelle version de PHP faut-il pour PrestaShop 8 ?
7.2.5 minimum. PHP 8.0 et 8.1 pris en charge dès la sortie, PHP 8.2 depuis septembre 2024.
Mes modules 1.6 fonctionneront-ils sur PrestaShop 8 ?
Rarement sans adaptation. Chaque module doit déclarer sa compatibilité dans config.xml et $ps_versions_compliancy. Beaucoup de modules 1.6 utilisent aussi la syntaxe d’accès entre accolades, supprimée en PHP 8, d’où des erreurs fatales.
Que devient mon thème dans cette migration ?
Il doit être reconstruit, pas copié : le thème par défaut change (Classic remplace Default) et l’architecture passe d’un Smarty seul à une base hybride Symfony/Twig. Un chantier à part entière, à chiffrer en amont.