Blog

Déterminer la cause d'un bug sur Prestashop

Page blanche, erreur 500, bouton qui ne réagit plus… Avant de pouvoir corriger un bug sur votre boutique Prestashop, il faut évidemment en trouver la cause. Je vous propose donc dans cet article une méthode simple pour cela, étape par étape, adaptée à Prestashop 1.7, 8 et 9.

Déterminer la cause d'un bug sur Prestashop

Avant toute chose : sauvegardez et posez-vous les bonnes questions

Avant de toucher à quoi que ce soit, faites une sauvegarde complète de votre boutique : fichiers et base de données. La plupart des hébergeurs proposent des sauvegardes automatiques : vérifiez que vous y avez accès et que vous savez les restaurer.

 

Demandez-vous ensuite ce qui a changé récemment. Dans la grande majorité des cas, un bug apparaît après une modification :

 

  • L'installation ou la mise à jour d'un module ou du thème.
  • Une mise à jour de Prestashop.
  • Un changement de version de PHP par votre hébergeur, souvent fait sans prévenir.
  • Une modification de code ou de configuration.

 

Si vous le pouvez, faites vos tests sur une copie de votre boutique (préproduction) plutôt que sur la boutique en ligne. Cela vous permettra de tout essayer sans gêner vos clients.

 

Activez le mode debug

Par défaut, Prestashop masque les erreurs aux visiteurs. Une page blanche ou une erreur 500 cache donc presque toujours un message d'erreur précis. Pour l'afficher, activez le mode debug :

 

  • Depuis le back-office : Paramètres avancés >> Performances, option Mode debug.
  • Si le back-office est inaccessible : ouvrez le fichier config/defines.inc.php de votre boutique et remplacez define('_PS_MODE_DEV_', false); par define('_PS_MODE_DEV_', true);.

 

Rechargez ensuite la page qui pose problème : le message d'erreur s'affiche, avec le fichier et la ligne concernés. Notez-le précisément, ou faites une capture d'écran.

 

Important : désactivez le mode debug dès votre diagnostic terminé. Il ralentit la boutique et affiche des informations techniques qui ne doivent pas rester visibles par vos visiteurs.

 

Consultez les journaux d'erreurs

Certaines erreurs ne s'affichent pas à l'écran mais sont enregistrées :

 

  • Journaux de Prestashop : depuis la section Paramètres avancés >> Logs de votre back-office.
  • Fichiers du dossier var/logs de votre boutique : qui contiennent les erreurs détaillées.
  • Journal d'erreurs de votre hébergement : souvent accessible depuis votre espace client ou votre espace d'administration (rubrique Erreurs ou Logs).

 

Vérifiez la console de votre navigateur

Un bouton qui ne réagit plus, un panier qui ne se met pas à jour, un menu qui ne s'ouvre pas : ces bugs viennent souvent d'une erreur JavaScript, invisible dans les journaux de Prestashop.

 

Appuyez sur F12 pour ouvrir les outils de développement de votre navigateur, puis rechargez la page et reproduisez le problème :

 

  • L'onglet « Console » affiche les erreurs JavaScript en rouge, avec le fichier en cause.
  • L'onglet « Réseau » montre les requêtes en échec, comme par exemple un ajout au panier qui renvoie une erreur 500.

 

Videz le cache

Un bug d'affichage qui persiste après une modification vient parfois simplement du cache. Videz-le depuis la section Paramètres avancés >> Performances de votre back-office, bouton Vider le cache. Pensez aussi à vider le cache de votre navigateur, ou testez en navigation privée.

 

Isolez le module ou le thème en cause

Parfois les erreurs rencontrées sont bien visibles, mais n'affichent aucune information ni aucun log et il faut alors procéder à des tests afin d'en trouver la cause.

 

Les modules

Dans la section Paramètres avancés >> Performances de votre back-office, le mode debug propose deux options très pratiques :

 

  • Désactiver les modules non natifs : tous les modules qui ne sont pas fournis par Prestashop sont désactivés d'un coup.
  • Désactiver toutes les surcharges : les modifications du cœur de Prestashop apportées par les modules (overrides) sont ignorées.

 

Si le bug disparaît, réactivez vos modules un par un, en commençant par les derniers installés ou mis à jour, jusqu'à ce qu'il réapparaisse : vous tenez le coupable.

 

Le thème

Pour savoir si votre thème est en cause, testez avec le thème Classic fourni avec Prestashop (en l'activant depuis la section Apparence >> Thème et logo). Si le problème persiste, votre thème est innocent !

 

Attention : changer de thème modifie certains réglages (positions des modules, formats d'images...). Faites ce test de préférence sur une copie de votre boutique.

 

Vérifiez la compatibilité des versions

Beaucoup de bugs viennent d'une incompatibilité entre la version de Prestashop, celle de PHP et celles des modules ou du thème. La page Paramètres avancés >> Informations de votre back-office indique votre version de Prestashop et de PHP, ainsi que la configuration de votre serveur.

 

Comparez-les avec les versions compatibles indiquées par les auteurs de vos modules et de votre thème. Si votre hébergeur vient de changer de version de PHP, c'est souvent la piste à privilégier.

 

Conclusion

Une fois la cause identifiée, vous pourrez souvent corriger le problème vous-même : mettre à jour ou désactiver un module, revenir à une version de PHP compatible, restaurer une sauvegarde…

 

Sinon, vous saurez à qui vous adresser. Contactez l'auteur du module ou du thème en cause en lui transmettant le message d'erreur exact, votre version de Prestashop et de PHP, et les étapes pour reproduire le problème. Il pourra intervenir beaucoup plus rapidement et efficacement.

Partager cet article

Auteur de cet article :

Sabrina ROUSSEAU

Développeur web freelance spécialiste de la solution e-commerce Prestashop depuis 2010. Créatrice du site web Prestacrea ainsi que des produits qui y sont proposés.

Aucun commentaire

Commentaires

Cet article a été rédigé il y a plus d'un an. Les commentaires sont fermés.