Migrer PrestaShop 1.6 (ou 1.5) vers 1.7

7 Juin 2019 (Mis à jour le 09 Juillet 2019) - par Olivier LE CORRE

Le 4 Juin 2019 j'ai animé un atelier au PSDay de PrestaShop, le sujet "Migrer PrestaShop 1.6 vers 1.7", j'ai adoré cet atelier et j'ai reçu des retours positifs, ce qui m'encourage à développer plus le sujet.

Voici déjà les slides de l'atelier et au format PDF

Faut-il migrer son site sur la 1.7 ?

Vaste question, il n'y a pas de réponse toute faite alors je donnerai mon point de vue sur le sujet en tant qu’agence avec notre expérience.

L’entreprise PrestaShop ne sera peut être pas d'accord avec moi mais il ne faut pas se précipiter et je vais argumenter au maximum.

Cela fait 10 ans que je fais du PrestaShop et que je défends tous les jours cette solution, qui est une bonne solution ! La 1.7 est prometteuse, progresse bien et va dans le bon sens mais elle n'est pas terminée !

La roadmap, GitHub et les relations renouées avec l'équipe PrestaShop font que je continuerai à défendre cette solution.
Aujourd'hui avec la 1.7.5 il me parait risqué de partir sur un nouveau projet sur une 1.6 qui est en fin de vie.

Sur cette question de migration, j’ai demandé à un client (une agence) “pourquoi migrer ?”

Question posée car ils nous ont demandé de faire la migration d’une 1.6 vers la dernière 1.7.

Voici la liste des arguments qu’il m’a fourni et en dessous mes réponses :

  • Pérennité des modules
    Je suis d'accord, certains modules 1.6 datent un peu et si il faut acheter les mises à jour autant les acheter en 1.7. Il y a aussi de plus en plus de modules qui ne sont développés que pour la 1.7.

    Je comprend les développeurs car maintenir un module pour 1.6 et 1.7 (avec la 1.7 qui évolue sans cesse) représente beaucoup de travail.
  • Fin de support du 1.6
    La je suis pas vraiment d'accord, pour moi ce n'est pas un argument pour migrer. Du moins pas pour le moment. Nous, agences avons tellement de site en 1.6 que nous ne pouvons pas abandonner cette version. La communauté est très active et supportera la 1.6 aussi longtemps que nécessaire. Regardez la dernière alerte en date, le spam sur les formulaires d'inscriptions : la communauté a sorti une solution en moins de 24h.

    Quant à la question sur la sécurité, en 10 ans, les alertes de sécurités de PrestaShop sont plutôt rares et venaient majoritairement de modules mal développés. De plus les soucis de sécurité viendront plus de l'hébergement laissé en PHP 5.6 qui n'est plus supporté.

    Il devient important de mettre à jour (si possible) la 1.6 en 1.6.1.24 qui est compatible PHP 7.1.
    Pour info, nous serons bientôt capable de faire fonctionner la 1.6 sur PHP 7.2.

    Depuis le 1er Juillet 2019, par mon intermédiaire, OHweb est "maintener" de la 1.6, lire l'annonce
  • Ergonomie du Front amélioré (surtout depuis la 1.7.5)
    Oui c'est un argument si vous envisagez de refaire entièrement votre site, refonte graphique etc... Les thèmes 1.7 sont plus modernes (techniquement), plus travaillés et mieux optimisés que les thèmes 1.6 qui dates de quelques années maintenant.
  • Thème enfant
    C'est une avancée très intéressante, permettant de personnaliser un thème sans toucher les fichiers d'origines. Les fans de wordpress apprécieront cette évolution et ela permet d’effectuer les mises à jour d’un thème.
  • Véritable prise en compte du SEO
    Voir ma réponse pour l'ergonomie améliorée, c'est lié.
  • Tunnel de commande en une étape qui est bien étudié
    Entre les 5 étapes de la 1.6 ou le one page, il n’y a pas photo le tunnel de la 1.7 est plus simple et ergonomique.
  • Symfony > plus de développeurs disponibles pouvant travailler dessus correctement
    Symfony > le champs des possibilités est plus grand pour du développement spécifique


    Sur ces points c'est vrai depuis la 1.7.5 qui est pour nous la version la plus intéressante. Nous avons commencé de gros projets avec des développements spécifiques sur la 1.7.5 car ces développements peuvent être fait en Symfony.

    Vouloir passer en 1.7 pour ne rester que sur du legacy (code PrestaShop de la 1.6) a pour moi peu d'intérêt maintenant. Si vous ne savez faire que du Legacy il serait temps de vous mettre à Symfony car vous serez vite limité sur la 1.7.

Après ces arguments, dans quel cas puis-je migrer en 1.7 ?

Ma réponse (qui n'engage que moi) :

  • Vous souhaitez refaire entièrement votre site surtout côté design
  • Vous n'avez pas de développements spécifiques ou êtes prêt à le refaire en partie
  • Vous n'utilisez pas le stock avancé ou le multi boutique (qui d'après quelques indiscrétions du PSDay serait au programme de la 1.7.7, bon j'avoue je n'ai pas été voir la roadmap). Je sais que PrestaShop a besoin de retour à ce sujet.
    Concernant le stock avancé c'est abandonné sur la 1.7
  • Vous avez une ressource ou un partenaire capable de vous dépanner, la 1.7 nécessitant d’acquérir de nouvelles connaissances techniques plus pointues que la 1.6.
La migration 1.7 n'est pas anodine, c'est PrestaShop qui le dit, voici deux liens : http://build.prestashop.com/news/prestashop-1-7-faq/#is-it-be-easy-to-upgrade-from-previous-versions-of-prestashop-to-v17
https://devdocs.prestashop.com/1.7/basics/keeping-up-to-date/

La migration est décidé, comment la faire ?

Voici la méthode que nous recommandons mais chacun est libre de faire comme il le souhaite. À la fin de cette partie de l'article vous comprendrez pourquoi ce n'est pas anodin.

Très important, ne pas toucher au site en production et ne pas utiliser le module "Mise à jour en un clic"

Pourquoi ne pas utiliser le module "Mise à jour en un clic" ?

Ce module va mettre à jour les fichiers, migrer les données mais parfois certains modules trop anciens ne se mettront pas à jour et provoqueront des erreurs. Nous avons installé une 1.6.1.23 propre et effectué la mise à jour, pas mal de soucis, le site 1.7 était inutilisable. De plus nous constatons que des clients s'amusent à installer des modules, mais ne les configurent pas ou ne les utilisent pas, ce qui est une source d’ennuis. Un nettoyage des modules est nécessaire de temps en temps.

Après ces précisions, notre méthode est manuelle et a pour but de minimiser le temps de coupure du site lors de la bascule.

Voici les grandes lignes :

  1. Installer la 1.7 dans un environnement de TEST ou de PREPROD
  2. Récupérer les données une première fois (catalogue, clients, commandes).
  3. Configurer la nouvelle version 1.7 : le thème, les modules (acheter la mise à jour des modules si vous souhaitez les garder de votre version 1.6). Attention sur la 1.7, il faut reconfigurer les modules.
  4. Au moment de la bascule re-migrer les données
Pour migrer les données, trois solutions :
  • Manuellement
  • En utilisant MigrationPro - module reconnu et testé officiellement par PrestaShop : https://addons.prestashop.com/fr/migration-donnees-sauvegarde/8934-outil-de-migration-prestashop.html)
  • En utilisant Store Commander pour contrôler l'état de la boutique AVANT la migration avec son outil "FixMyPrestaShop" qui applique une centaine de contrôles (intégrité de la base de données, sécurité de l'installation, etc.) pour éviter les dysfonctionnements lors des migrations automatiques, et aussi APRES la migration pour repartir avec une boutique "propre". La saisie des nouveaux champs de PrestaShop 1.7 peut être faite rapidement depuis l'interface de Store Commander ou depuis les outils d'export/import CSV très complets.
  • Personnellement je n'ai pas utilisé MigrationPro ou Store commander mais j'ai eu de très bon échos sur ces solutions. Je suis un ancien et je préfère faire la migration des données manuellement pour en maîtriser tous les aspects. J'ai donc toutes mes requêtes SQL dans un fichier pour mettre à jour les tables 1.6 au bon format de la 1.7. Pour cette méthode il faut une bonne connaissance de la base de données et du SQL.

    Quelques conseils :

    • Faire une première migration des données produits et ensuite je recommande de ne plus toucher aux produits le temps de la migration. Tout migrer au dernier moment peut être fastidieux car en plus des produits, il faut récupérer les images, régénérer les miniatures, les attributs, les déclinaisons, caractéristiques etc....
    • Faire une simulation avant la bascule. Cette simulation permet d'écrire un procédure, vérifier la migration des données et corriger les éventuels effet de bord pour être prêt le jour J et minimiser le temps de coupure du site en production.
    • le jour J : ne migrer que les clients, adresses, commandes.
    • Lors de la mise en place de la 1.7, il faut penser à récupérer la clé dans le settings.inc.php de la 1.6 pour que les mots de passent clients fonctionnent toujours sur la nouvelle version du site.
    • Si vous avez des modules styles "loyalty" (point de fidélité), pensez aussi à copier les tables.
    • Pour les paniers (tables cart*), il n’est pas nécessaire de les migrer mais il faut penser à modifier l'auto-incrément id_cart de la table cart pour être supérieur à la valeur max de la table 1.6.

    En conclusion :

    Il faut bien réfléchir avant de migrer, ce n'est pas une opération simple et anodine, nous parlons de site ecommerce.
    Veillez a être très rigoureux lors de la migration.
    Si vous avez le moindre doute n'hésitez pas à faire appel à un pro pour vous concentrer sur ce qui est important pour vous, votre catalogue, vos ventes, les expéditions. Ne voyez pas cette migration comme un coût mais comme un investissement.