Passage de Prestashop 1.7 à la version 8: méthodes et problèmes

Pour créer, rédiger et optimiser le SEO de vos pages web --> Contactez-nous


Les boutiques Prestashop qui étaient en 1.7 commencent maintenant en majorité à passer en 8

Bien que la "rumeur" prétende que ce soit simple, à savoir "en 1 clic", la réalité est toute autre si le site a une certaine épaisseur, à savoir des transformations du Core de Prestashop, des surcharges de modules ou même des modules un peu compliqués.

Certes, le passage de Prestashop 1.7 à la version 8 est moins compliqué que le passage de 1.6 à 1.7 (Voir l'article spécial à ce sujet)  car il n'y a pas de rupture de compatibilité entre la 1.7 et la 8 comme c'était le cas pour la 1.6 à la 1.7 (Par exemple, il fallait souvent recoder le thème pour la 1.7).

Passage de Prestashop 1.7 à Prestashop 8 : 2 options

Avant toute chose, vérifiez bien votre version de php et sa compatibilité (ou pas) avec Prestashop 8. S'il y a un problème, il va falloir AVANT TOUT, s'occuper de PHP. (Ce qui est parfois compliqué car "monter" php sur une version incompatible avec votre Prestashop actuel, ne permettra pas la migration donc dans ce cas, il faudra monter à petits pas).

Méthode 1: upgrade, c'est celle des gens qui disent "easy"


=> La mise jour en mode upgrade va écraser les modifications du core.
=> Il faudra donc dresser la liste des modifications du core et au cas par cas les remettre en place / les adapter / ne pas les remettre en place / essayer de la mettre dans une surcharge ou mieux dans un module avec un hook.
=> Le script automatique ne va pas résoudre certains problèmes : si un module n'est pas compatible avec la 8 ou s'il n'est pas compatible avec php8, il faudra soit le corriger/le désactiver définitivement / le mettre à jour en téléchargeant la dernière version.
=> Il faudra rechecker le thème.


Pour l'avoir testée, cette méthode plante souvent en plein milieu. Nous n'essayons pas de débugger parce que la documentation officielle de Prestashop ne recommande pas cette solution : "Upgrading a shop is the recommended method when you want to get your shop up-to-date without switching to the next major version." 

La procédure upgrade est la suivante :
1/ il faut installer la boutique en production sur un serveur de développement qui sera configuré initialement avec la bonne version de php
2/ Il faut ensuite lancer le script du module de mise à jour.
3/ Une fois la mise à jour effectuée , il faut basculer sur php 8.1 (cf https://devdocs.prestashop-project.org/8/basics/installation/system-requirements/)
4/ Il faut effectuer les modifications sur les modules/le thème/... (Penser à consigner toutes les modifications afin d'avoir une procédure à répéter lors de la mise à jour sur la boutique en prod)
5/ il faut tester la boutique après migration
6/ la migration peut être effectuée directement sur la boutique en production. (avec une copie de secours de la boutique actuelle afin de pouvoir remettre en place cette boutique en cas de problème).

=> cette procédure fait gagner du temps par rapport à l'option 2 (voir ci-dessous) parce que les fichiers / la base de données sont mis à jour par le script. 

Cette procédure fait gagner du temps par rapport à la 2ème méthode.

2/ Méthode 2: migration "classique" de Prestashop 1.7 à 8

=> C'est la même procédure que pour la montée en charge 1.6 -> 1.7 à l'exception du recodage du thème.

1/ Il faut configurer un serveur avec l'environnement de production qui sera en place après la migration. La différence principale est l'utilisation de php 8.1 (cf https://devdocs.prestashop-project.org/8/basics/installation/system-requirements/)

2/ Il faut installer une boutique vierge Prestashop 8

3/ Il faut configurer la boutique vierge 8 comme la boutique 1.7. C'est souvent important de le faire manuellement pour ne pas oublier de configurer les nouvelles options de la 8 et aussi pour ne pas importer toute la table ps_configuration de la 1.7.
=> il faut checker les éléments clés la config en base de donnes , par exemple les configurations des états de commande.

4/ Il faut mettre en place les modifications du Core de la 1.7 dans le nouveau Core 1.8 (en essayant si possible de les mettre dans des surcharges).
=> Il faut dresser la liste des modif de la 1.7. Cela peut se faire avec un script de comparaison de fichiers natifs vs fichiers de la prod.
=> Il est possible que certaines modifs ne soient pas nécessaires. Il faut faire au cas par cas.
=> Certaines données de la 1.7 devront être modifiées pour la version 8. Le script d'import s'en charge.

5/ Il faut importer les données de la boutique actuelle dans la boutique vierge (cf https://devdocs.prestashop-project.org/8/basics/keeping-up-to-date/migration/) :

5.0/ Il faut écrire un script qui va télécharger par ftp tous les fichiers de la 1.7 : images / pdf / fichiers de modules / ...


5.1/ Il faut commencer l'import "bdd" par les tables natives de prestashop

=> Il faut exporter les tables 1.7 et les importer dans les tables 1.8 via des scripts. Il faut effectuer ces imports table par table et préserver les ids. Comme indiqué dans la procédure Presta , il faut avant cela checker que les tables de la boutique actuelle n'ont pas été modifiées.


5.2/ Il faut ensuite faire l'import des tables des modules : module par module
=> Il faut télécharger les versions 8 des modules avant l'import.
=> Avant l'import des données, il faut installer le module 1.7 (ou la version 8) sur la boutique 8 et checker qu'il ne génère pas d'erreurs.
=> Dans le cas d'une version 8 du module, il faudra peut être faire un script transformant un peu les données 1.7.
=> Une fois les données importées, il faut checker que les fonctionnalités du module sont ok.

Et si le module ne fonctionne pas, il faut corriger ;-)


6/ Il faut checker le thème, l'adapter.
=> il n'est pas nécessaire cette fois de le recoder.

7/ Il faut rechecker le workflow des mails et corriger éventuellement les mails.

9/ Il faut tester ensuite la boutique

10/ Il faut tester le réimport des données afin de s'assure que la procédure de migration est ok.

=> Pour la mise en production, la procédure est la suivante :

1/ mise en maintenance de la boutique en production 1.7 / "coupage" des crons
2/ téléchargement de la base de données de la 1.7 sur le serveur de développement
3/ exécution du script d'import des tables dans la boutique 8 sur le serveur de développement
4/ export des fichiers/de la base de données de la 8 => import sur le serveur de production
5/ exécution d'un script remplaçant les urls de la boutique de développement par les urls de la boutique de production
6/ pointage du nom de domaine vers le dossier de la boutique 8
=> en cas de gros problème, il suffit de rebasculer sur le dossier de la boutique 1.7

=> La procédure de mise en production sera dans ce cas testée autant de fois que nécessaire jusqu'à ce qu'aucune erreur de configuration soit détectée. Le temps de la procédure peut être chronométré afin de fournir une estimation du temps de mise à niveau.

Commentaires sur: Passage de Prestashop 1.7 à la version 8: méthodes et problèmes

Poster un commentaire sur: Passage de Prestashop 1.7 à la version 8: méthodes et problèmes







« Principes pour des bons prompts | Accueil | Comment sécuriser son ordinateur avant de le laisser à un réparateur ? »



Besoin de SEO, de développement, de rédaction de contenu web ? Besoin d'un blog, de Wordpress, de Prestashop ou autres nouvelles "choses web" ? Envie de travailler dans ces domaines ? --> Contactez-nous