Le thème PrestaShop ne se limite pas à l’apparence de votre boutique : il contient des templates, des feuilles de style, du JavaScript, des images et parfois des surcharges qui influencent directement le tunnel de commande. Une mise à jour du cœur, d’un module ou du thème peut donc provoquer un panier inaccessible, une page produit incomplète ou un affichage dégradé sur mobile. La bonne méthode consiste à identifier les personnalisations, travailler hors production et vérifier les parcours d’achat avant chaque mise en ligne.
Comprendre ce que la maintenance d’un thème implique
Sur PrestaShop 1.7 et 8, un thème moderne repose notamment sur les dossiers templates, assets/css, assets/js et, selon sa structure, sur des fichiers de configuration tels que config/theme.yml. Les modules participent aussi fortement au rendu : menu, recherche, avis clients, paiement, transport, bandeaux promotionnels ou blocs du pied de page.
Par conséquent, maintenir un thème ne veut pas seulement dire modifier une couleur ou installer une nouvelle version. Il faut préserver la compatibilité entre quatre éléments :
- la version de PrestaShop et celle de PHP supportée par votre hébergement ;
- le thème et ses éventuels modules compagnons ;
- les modules qui injectent du contenu dans les hooks du thème ;
- vos adaptations sur mesure, dans les fichiers, les CSS, les traductions et la configuration des modules.
Une erreur courante consiste à écraser le dossier du thème via FTP pour appliquer une mise à jour. Cette opération peut supprimer des fichiers modifiés, remplacer des templates adaptés à votre boutique ou laisser des fichiers anciens incompatibles avec la nouvelle version.
Commencer par un inventaire avant toute mise à jour
Avant d’intervenir, documentez précisément la boutique. Cet inventaire évite de découvrir, après coup, que le bouton de paiement ou le menu mobile dépendait d’une modification non recensée.
Repérer les modifications du thème
Comparez le thème actuellement installé avec son archive ou son dépôt Git correspondant à la même version. Recherchez notamment les changements dans templates/catalog, templates/checkout, templates/_partials et assets. Si vous utilisez Git, une commande comme git diff permet d’identifier les fichiers modifiés. Sans Git, un outil de comparaison de dossiers reste utile.
Listez séparément les personnalisations effectuées dans le back-office : CSS additionnel, traductions, positions des modules, réglages du menu, bannières et configuration du checkout. Une grande partie du rendu ne se trouve pas dans le dossier du thème.
Vérifier les overrides avec prudence
Les surcharges placées dans /override peuvent modifier le comportement des contrôleurs, classes et modules. Elles ne sont pas forcément liées au thème, mais elles peuvent casser une mise à jour ou masquer un problème de compatibilité. Répertoriez-les et vérifiez qu’elles sont toujours nécessaires. Ne supprimez jamais un override directement en production sans test préalable : une surcharge peut gérer une règle métier essentielle, par exemple une condition de livraison ou un champ client supplémentaire.
Sauvegarder les fichiers et les données
Réalisez deux sauvegardes exploitables : une archive des fichiers et un export complet de la base de données. Vérifiez qu’elles peuvent être restaurées, et conservez-les hors du serveur si possible. Une sauvegarde présente sur le même hébergement ne protège pas contre tous les incidents. Notez également la version de PrestaShop, la version de PHP, la version du thème et les versions des modules concernés.
Mettre en place une préproduction fidèle à la boutique
La préproduction est la meilleure protection contre une boutique indisponible. Créez une copie sur un sous-domaine ou un environnement isolé, avec une base de données clonée et une version PHP identique à la production. Protégez cet environnement par mot de passe et empêchez son indexation par les moteurs de recherche.
Après duplication, adaptez les paramètres qui ne doivent pas communiquer avec des services réels : adresses e-mail de test, clés API, paiement, transporteurs, ERP, connecteurs marketing et webhooks. Désactivez les envois d’e-mails clients ou redirigez-les vers une boîte de contrôle. Si vous utilisez un module de paiement, employez son mode test lorsque celui-ci est disponible.
Dans PrestaShop, contrôlez les URL de la boutique et la configuration du domaine afin d’éviter une redirection vers la production. Vérifiez aussi les droits des fichiers et dossiers après copie : un cache ou un dossier de compilation non accessible en écriture peut produire une page blanche ou des erreurs 500.
Appliquer une mise à jour de thème sans écrasement aveugle
Installez d’abord la nouvelle version du thème sur la préproduction, en suivant la documentation de son éditeur. Si le thème fournit un module associé, mettez à jour le thème et ce module dans l’ordre indiqué. Certains thèmes demandent l’import de données de démonstration : ne lancez pas cet import sur une boutique existante sans savoir exactement quelles données il ajoute ou remplace.
Lorsque des modifications existent, partez de la nouvelle version puis reportez uniquement les adaptations utiles. Copier intégralement les anciens fichiers personnalisés dans le nouveau thème annule souvent les correctifs de compatibilité apportés par l’éditeur.
Gérer proprement les ajustements graphiques
Pour une modification simple, privilégiez une feuille CSS personnalisée chargée après les styles du thème, plutôt qu’une édition directe d’un fichier compilé. Par exemple, une règle telle que .product-price { font-weight: 700; } peut être maintenue dans un fichier dédié documenté. Évitez de modifier les fichiers générés ou minifiés : ils peuvent être recréés lors d’une compilation ou d’une mise à jour.
Pour un changement de structure HTML, copiez uniquement le template nécessaire dans un thème enfant si votre thème et votre version de PrestaShop le permettent. Conservez un commentaire indiquant la date, la raison de la modification et la version du fichier d’origine. Cela facilite les comparaisons lors de la prochaine évolution.
Vider le cache au bon moment et diagnostiquer les erreurs
Après une mise à jour sur la préproduction, videz le cache depuis Paramètres avancés > Performances, puis rechargez les pages dans une fenêtre de navigation privée. Pendant le diagnostic, désactivez temporairement le cache Smarty et la concaténation/minification des CSS et JavaScript afin d’obtenir des erreurs plus lisibles. Réactivez ensuite les optimisations après validation.
En cas de page blanche, d’erreur 500 ou de template non trouvé, consultez les journaux PHP de l’hébergement ainsi que les logs PrestaShop. En environnement de test, le mode debug peut aider à afficher la pile d’erreurs. Il ne doit pas rester activé en production, car il peut révéler des chemins de fichiers, des détails techniques ou des informations de configuration.
Tester les parcours qui génèrent du chiffre d’affaires
Un contrôle visuel de la page d’accueil ne suffit pas. Testez la boutique avec un compte client existant et un nouveau compte, sur ordinateur et sur mobile. Utilisez un produit simple, un produit avec déclinaisons et, si votre catalogue en comporte, un produit dématérialisé ou personnalisé.
- Recherchez un produit et utilisez les filtres de catégorie.
- Ouvrez la fiche produit, changez une déclinaison et ajoutez au panier.
- Modifiez les quantités, appliquez un code promotionnel et vérifiez les frais de livraison.
- Passez les étapes adresse, livraison et paiement avec chaque moyen de paiement important.
- Contrôlez la création de commande, l’e-mail de confirmation et le décrément de stock.
- Vérifiez les pages CMS, le formulaire de contact, les liens légaux et le menu mobile.
Inspectez aussi la console du navigateur pour repérer les erreurs JavaScript. Un script en erreur peut empêcher l’ouverture du menu, le changement de déclinaison ou le chargement d’un moyen de paiement, même si la page semble correctement affichée.
Préparer une mise en production réversible
Planifiez l’intervention sur un créneau calme. Effectuez une nouvelle sauvegarde juste avant le déploiement, notez les actions à réaliser et préparez un plan de retour arrière : archive du thème précédent, liste des modules mis à jour et sauvegarde de la base si une migration modifie des données.
Activez le mode maintenance uniquement si l’opération peut affecter les visiteurs. Ajoutez votre adresse IP autorisée pour conserver l’accès au front-office durant l’intervention. Sur les versions récentes, le réglage se trouve généralement dans Paramètres de la boutique > Général > Maintenance. Une fois le thème publié, videz le cache, désactivez le mode maintenance et rejouez immédiatement une commande de test. Surveillez ensuite les logs, les commandes et les erreurs de paiement pendant les heures qui suivent.
Peut-on mettre à jour PrestaShop sans mettre à jour son thème ?
Oui, mais la compatibilité doit être vérifiée sur une préproduction. Une évolution du cœur peut modifier des templates, des hooks ou des comportements utilisés par le thème. Conservez la version du thème si elle est compatible, puis planifiez sa mise à jour séparément si nécessaire.
Comment savoir quel thème est actif dans PrestaShop ?
Dans le back-office, ouvrez la section Apparence ou Thème et logo selon votre version de PrestaShop. Vous y voyez le thème actif. Le dossier correspondant est généralement présent dans /themes/ sur le serveur.
Faut-il désactiver tous les modules avant une mise à jour de thème ?
Non. Désactiver tous les modules peut compliquer le diagnostic et modifier le rendu. Identifiez plutôt les modules fournis avec le thème et ceux qui agissent sur les pages concernées. Testez leur compatibilité sur la préproduction, puis désactivez ponctuellement un module seulement pour isoler une erreur.
Pourquoi les changements CSS ne s’affichent-ils pas immédiatement ?
Le cache PrestaShop, celui du navigateur, un CDN ou la concaténation des fichiers CSS peuvent servir une ancienne version. Videz le cache PrestaShop, testez en navigation privée et purgez le CDN si vous en utilisez un. Vérifiez également que votre feuille CSS est chargée après celle du thème.
Comment éviter que Google indexe un site de préproduction PrestaShop ?
Protégez la préproduction avec une authentification HTTP ou un accès restreint par IP. Ajoutez aussi une directive noindex, mais ne comptez pas uniquement sur elle : une protection par mot de passe empêche l’exploration et l’accès public aux données de test.