Aller au contenu principal
Terrain

Mettre à jour PrestaShop sans casser sa boutique

13 octobre 20268 min de lecturePar Slim Sayari

Mettre à jour PrestaShop sans casser sa boutique

Une mise à jour PrestaShop mal préparée peut bloquer le tunnel de commande d'une boutique en production. Contrairement à WordPress, PrestaShop repose sur un mécanisme d'overrides et de modules tiers que le module d'upgrade ne désactive pas de lui-même — chaque fichier de surcharge PHP qui survit à la mise à jour est une source potentielle de conflit. Ce guide détaille chaque étape de la procédure, la marche à suivre en cas d'échec, et les dix catégories de modules les plus souvent responsables des incidents lors des montées de version 8.x.

Pourquoi les mises à jour PrestaShop sont plus risquées qu'une mise à jour WordPress

Overrides PHP et thèmes Smarty : les deux sources principales d'incidents

PrestaShop permet aux développeurs de surcharger les classes core en déposant leurs personnalisations dans override/classes/ et override/controllers/. Ces fichiers survivent à la désinstallation du module qui les a créés. Lorsque le core change, les overrides qui ciblaient les mêmes méthodes entrent en conflit silencieusement : pas d'erreur fatale immédiate, mais un comportement inattendu sur le panier ou la page de paiement.

Le moteur de templates Smarty ajoute une couche supplémentaire : tout module qui injecte son propre fichier .tpl dans le thème cesse de fonctionner si le thème est mis à jour en même temps. La règle de base est de ne jamais mettre à jour le core et le thème dans la même opération.

Version mineure (8.x.y) vs version majeure (vers 9.x) : quelle différence ?

Une version mineure — 8.1.6 vers 8.1.7 par exemple — n'introduit pas de rupture d'API. Les modules natifs se mettent à jour automatiquement ; les modules tiers restent généralement fonctionnels. Une version majeure est une autre opération : PrestaShop 9 a supprimé les hooks legacy de la page produit, la classe PrestaShopAutoload et les hooks de connexion en back-office. Tout module qui dépend de ces éléments cesse de fonctionner sans une mise à jour spécifique de sa propre version.

Pour une migration vers PS 9, l'audit de compatibilité des modules doit précéder l'ouverture du module d'upgrade de plusieurs semaines. Pour les versions mineures 8.x, une fenêtre de maintenance d'une à deux heures suffit, à condition de suivre la procédure ci-dessous.

Procédure de mise à jour sécurisée

1. Sauvegarde complète — fichiers et base de données

Avant toute opération, une sauvegarde complète est le seul filet de sécurité fiable. Elle couvre deux périmètres distincts :

  • Fichiers : répertoire racine de PrestaShop (core, modules, thème, uploads), exporté via FTP ou snapshot de volume chez votre hébergeur.
  • Base de données : export SQL complet depuis le back-office (Paramètres avancés → Sauvegarde BDD) ou via mysqldump en ligne de commande.

Sur un parc de boutiques, l'automatisation des sauvegardes nocturnes garantit qu'une archive de moins de vingt-quatre heures est disponible avant chaque intervention. C'est la condition pour lancer une mise à jour sans improviser le plan de reprise.

2. Inventaire des overrides et mode maintenance

Listez les fichiers présents dans override/ avant de lancer l'upgrade. Pour chaque fichier, identifiez le module d'origine et vérifiez sa compatibilité avec la version cible. Les overrides orphelins — ceux dont le module a été désinstallé depuis — doivent être supprimés manuellement : ils resteraient actifs et provoqueraient des conflits que le module d'upgrade ne signale pas.

Activez ensuite le mode maintenance depuis Paramètres de la boutique → Maintenance. Ne lancez pas la mise à jour en pic d'activité : choisissez tôt le matin ou pendant une période creuse, quand le volume de commandes est minimal.

3. Paramètres recommandés pour le module 1-Click Upgrade

Le module autoupgrade officiel de PrestaShop expose plusieurs options critiques. Ces quatre paramètres doivent être vérifiés avant de lancer l'opération :

ParamètreValeur recommandéeRaison
Désactiver les modules non natifsOuiIsole les modules tiers pendant le remplacement des fichiers core
Désactiver les overridesOuiÉvite les conflits de méthodes au moment de la mise à jour
Fichiers par lot (max_files_per_batch)400Réduit le risque de timeout sur hébergement partagé
Sauvegarde intégrée du moduleActivéeAlimente le rollback depuis l'interface en cas d'erreur

Laissez le module créer sa propre sauvegarde même si vous en avez déjà une externe : c'est elle que le rollback intégré utilisera en cas d'erreur pendant l'opération.

4. Tests post-mise à jour avant de lever la maintenance

Après la mise à jour, avant de lever la maintenance, vérifiez dans cet ordre :

  1. Accès au back-office : connexion, liste des commandes, catalogue produits.
  2. Catalogue côté front : fiche produit, images, déclinaisons, moteur de recherche interne.
  3. Tunnel de commande complet : ajout au panier, choix du transporteur, paiement en mode test, confirmation de commande et réception de l'email transactionnel.
  4. Réactivation des modules tiers un par un : commencez par les modules SEO et finissez par les modules analytics — les derniers à réactiver, les premiers à isoler en cas de problème.
  5. Vidage du cache : Paramètres avancés → Performance → Vider le cache.

Rollback : procédure si quelque chose tourne mal

Deux scénarios appellent un rollback immédiat : une erreur critique durant l'upgrade, ou un tunnel de commande cassé découvert après remise en ligne.

  1. Via l'interface 1-Click Upgrade : le module propose le rollback automatiquement en cas d'erreur durant le processus.
  2. Via la ligne de commande : php bin/console backup:restore --backup=[nom-du-backup] <dossier-admin>
  3. Restauration manuelle : remplacez les fichiers par ceux de votre sauvegarde FTP, restaurez la base de données depuis le dump SQL, puis videz le cache d'op-code côté serveur.

Après tout rollback, documentez précisément ce qui a déclenché l'échec — module impliqué, override en cause, message d'erreur exact — avant de relancer. Un module incompatible désactivé au préalable peut suffire à débloquer la mise à jour suivante sans recommencer depuis le début.

Les 10 catégories de modules à surveiller lors d'une MAJ 8.x

La majorité des incidents post-MAJ provient d'un module tiers incompatible. Les catégories suivantes concentrent les signalements les plus fréquents lors des montées de version 8.x, avec le point d'action pour chacune.

#Catégorie de moduleSymptôme typeWorkaround
1Modules de paiement (Stripe, Mollie, PayPal sur mesure)Page de paiement vide ou erreur sur le checkoutMettre à jour le module avant le core ; vérifier la version compatible dans l'espace partenaire de l'éditeur
2Modules transporteurs (Colissimo, Mondial Relay, DPD)Aucun mode de livraison affiché au panierAppliquer la mise à jour du module avant celle du core ; tester avec une commande fictive à faible poids
3Modules de checkout one-pagePage commande blanche ou boucle de redirectionLes hooks de la page commande changent à chaque version mineure 8.x ; contacter l'éditeur pour un patch ciblé avant la mise à jour
4Modules SEO et balises metaTitles vides, erreur sur les classes Product ou CategorySupprimer les overrides issus du module dans override/classes/ avant la mise à jour du core
5Modules de fidélité et points de récompenseTotal du panier erroné, page commande bloquéeOverrides sur la classe Cart : tester tout le tunnel avec une commande incluant des points en environnement de staging avant la production
6Modules d'avis clients (Trusted Shops, Avis Vérifiés)Bloc absent, erreur JavaScript en consoleDépendance jQuery : vérifier la version chargée par le thème après mise à jour du core
7Modules de personnalisation produit (gravure, configurateur visuel)Champs de personnalisation absents ou données de commande incomplètesVérifier l'intégrité des tables personnalisées en base de données après migration ; conserver un dump ciblé avant l'opération
8Modules d'import/export catalogueErreur SQL sur colonnes manquantes ou types modifiésCes modules accèdent aux tables via des requêtes directes : comparer le schéma avant et après mise à jour pour identifier les colonnes supprimées ou renommées
9Modules analytics avancés et GTMTracking cassé, erreurs en console, events manquantsInjectés via les hooks displayHeader et displayFooter : réactiver en dernier, après validation complète du tunnel de commande
10Connecteurs ERP et gestion des stocks tiersStocks non synchronisés, commandes orphelines dans l'ERPCes connecteurs appellent l'API interne directement : déclencher une synchronisation manuelle après la mise à jour et comparer les niveaux de stock avant remise en production

Automatiser la veille des mises à jour PrestaShop en agence

Sur un parc de plusieurs boutiques, exécuter cette procédure manuellement pour chaque client n'est pas viable. La plateforme de mises à jour Sentinelo détecte les nouvelles versions disponibles pour les modules PrestaShop dès leur publication et conserve une sauvegarde nocturne chiffrée disponible avant chaque intervention. Le core et les thèmes PrestaShop sont signalés sans être appliqués automatiquement : c'est votre équipe qui décide du moment et réalise les tests.

Pour structurer le processus complet — de la détection à la validation post-déploiement — la politique de mises à jour pour les agences détaille comment segmenter les boutiques par niveau de risque et planifier les interventions. La checklist de maintenance PrestaShop couvre les vérifications régulières à inclure dans chaque contrat.

Pour une prise en charge complète — surveillance, sauvegardes automatiques, alertes et traçabilité des interventions — découvrez l'offre de maintenance PrestaShop de Sentinelo.

Questions fréquentes

Quelle est la différence entre une mise à jour mineure et majeure de PrestaShop ?

Une mise à jour mineure (8.1.6 → 8.1.7) ne modifie pas les API du core : les modules tiers restent fonctionnels dans la grande majorité des cas. Une version majeure (8.x → 9.x) restructure le core, supprime des hooks anciens et impose une version de PHP plus récente. Les modules doivent être audités et mis à jour avant de lancer une montée de version majeure.

Peut-on faire un rollback si la mise à jour PrestaShop casse la boutique ?

Oui. Le module 1-Click Upgrade propose le rollback automatiquement en cas d'erreur durant l'opération. En ligne de commande, la commande php bin/console backup:restore restaure les fichiers et la base de données depuis la sauvegarde créée par le module. Une sauvegarde externe indépendante — fichiers FTP et dump SQL — reste indispensable comme second filet de sécurité.

Faut-il désactiver les modules avant de mettre à jour PrestaShop ?

Le module 1-Click Upgrade peut le faire automatiquement si l'option « Désactiver les modules non natifs » est activée avant le lancement. Désactiver les overrides via le paramètre dédié est également recommandé pour éviter les conflits de méthodes pendant le remplacement des fichiers core. Réactivez les modules tiers un par un après la mise à jour, en commençant par les moins critiques.

Comment tester que la boutique fonctionne après une mise à jour PrestaShop ?

L'ordre de vérification compte autant que les tests. Vérifiez d'abord l'accès au back-office, puis le catalogue côté front, puis le tunnel de commande complet : ajout au panier, choix du transporteur, paiement en mode test et réception de l'email de confirmation. Ne levez la maintenance qu'après avoir validé chacune de ces étapes.

Sentinelo applique-t-il automatiquement les mises à jour du core PrestaShop ?

Non. Pour PrestaShop, Sentinelo détecte et signale les mises à jour disponibles pour les modules, mais le core et les thèmes ne sont jamais appliqués automatiquement. La mise à jour du core reste à la charge de l'agence ou de l'équipe technique, qui peut s'appuyer sur la sauvegarde nocturne conservée par Sentinelo la veille de l'intervention.

Un parc à superviser ? Voyez ce que Sentinelo détecte chez vous.

Scanner mon site