09/30/21 Franck Bugnet Catégorie Guide

Comment réparer et nettoyer PrestaShop

Votre boutique PrestaShop est cassée, le site affiche des pages blanches, l'administration est devenue très lente... pas de panique, ce cms est assez fragile, mais il est toujours possible de réparer PrestaShop. Sitolog partage son expérience.

Réparer les pages blanches PrestaShop



Les forums de PrestaShop regorgent de témoignages d'e-commerçants en panique parce que du jour au lendemain, une ou toutes les pages du site ou de l'admin ne s'affichent plus. A la place on a juste une bel écran blanc. Chaque minute qui passe c'est une perte de clients potentiels. 

Qu'est ce qui se passe ?



L'écran blanc fait fuir les clients, mais c'est juste la partie immergée de l'iceberg. Elle indique juste que le script d'affichage du contenu de la page n'a pas pu s'exécuter correctement.
Les causes possibles sont quasi infinies : blocage ou plantage du serveur, erreur javascript, problème réseau, base cassées avec des infos manquantes ou en double,... 
Aucun affichage ne donne évidement aucune info, c'est pour cela que l'on se sent si démuni.  Il faut faire parler le monstre :-)

Mode debug PrestaShop pour optenir plus d'infos sur la cause de l'erreur



Ce qui est indispensable pour corriger une panne, c'est de comprendre ce qui en est à l'origine. Pour cela il faut essayer d'obtenir du système plus d'information, l'idéal étant l'affichage d'un message d'erreur plutôt qu'un écran blanc.

C'est à cela que sert cette option, qui est non activé par défaut.

Activer le debug dans PrestaShop 1.7 :



  1. Allez dans la partie "Configurer" du menu et cliquez sur "Paramètres avancés".
  2. Puis cliquez sur "Performances".
  3. Basculez l'interrupteur sur oui.
  4. Enregistrez, c'est simple.

Activer le mode debug dans PrestaShop 1.7

A partir de ce moment là, PrestaShop sera plus bavard et vous indiquera les erreurs (voir aussi les notices selon les autres réglages dans le même fichier) sous cette forme :

Affichage d'un message d'erreur

On est bien d'accord, vous avez fait le plus facile. Il faut à présent essayer de comprendre le sens du message d'erreur et en déduire l'action suivante.
Ce n'est pas toujours le cas, mais fréquement le message contiendra le nom du module incriminé, dans ce cas il suffira de le désactiver temporairement le temps de le débugger à part sur un site de test.
Parfois on trouve le nom du fichier qui plante, voir même la ligne de code en question.

Mais bien souvent on a juste un message générique, du style Error 500, ou un charabia incompréhensible pour le néophite. Dans ces cas de figure, on vous recommande deux méthodes (voir ci-dessous pour plus de détails) : désactivation par bloc des modules non standards et des overrides (surcharges), changement du thème, puis si rien ne marche, reste la possibilité de chercher de plus d'info sur internet et les forums à partir du texte contenu dans le message d'erreur. En dernier recourt se tourner vers un professionel ou réinstaller PrestaShop.

Activer le debug dans PrestaShop 1.6 ou plus ancien :



Dans les anciennes versions de PrestaShop, on ne peut pas activer le mode débug depuis l'interface d'administration. Il faut pour cela modifier la valeur d'un paramètre directement dans un des fichiers de configuration.

  • Le fichier à modifier : "defines.inc.php" qui se trouve dans le répertoire "config" des fichiers de PrestaShop sur le serveur.
  • Outil à utiliser: n'importe quel traitement de texte suffit, comme notepad sous Windows.
  • Comment accéder au fichier : il faut utiliser un outil d'acces ftp pour le télécharger sur le pc et le télécharger à nouveau sur le serveur après modification. Le plus connu et gratuit est "Filezilla Client". Attention lors de l'installation de ce soft, bien lire les petits textes car souvent cela installe en même temps des extensions dans votre navigateur dont vous n'avez pas besoin et qui vont ensuite vous spammer.
  • Comment configurer le client FTP : il faut trois informations, l'url ou adresse de votre serveur FTP obligatoirement inclu avec votre hébergement, votre "user ftp" et mot de passe ftp. Tout cela peut vous être communiqué par votre hébergeur.

  1. Une fois connecté à votre site en ftp, allez dans le dossier "config".
  2. Faites un clic droit sur le fichier "defines.inc.php".
  3. Cliquez sur Afficher/Editer.

Télécharger defines.inc.php


Une fois le fichier ouvert dans un outil d'édition de texte, repérez la ligne "define('_PS_MODE_DEV_', false);" en début de texte et remplacez le mot "false" par le mot "true" dans cette ligne.

*  @author PrestaShop SA <contact@prestashop.com>
*  @copyright  2007-2017 PrestaShop SA
*  @license    http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
*  International Registered Trademark & Property of PrestaShop SA
*/

/* Debug only */
if (!defined('_PS_MODE_DEV_')) {
define('_PS_MODE_DEV_', true);
}
/* Compatibility warning */


Désactiver les modules non standards



Dans 90% des cas en effet, une page blanche est causée par un code défectueux dans un module, ou d'un conflit entre deux pluggins. Il suffit donc bien souvent de trouver lequel par tatonnement.
Dans un premier temps, vous pouvez tous les désactiver d'un coup pour vérifier cette hypothèse. Dans PrestaShop 1.7, c'est très simple à réaliser:

  1. Allez dans la partie "Configurer" du menu et cliquez sur "Paramètres avancés".
  2. Puis cliquez sur "Performances".
  3. Basculez l'interrupteur en face de "Désactivez les modules non développés par PrestaShop"
  4. Enregistrez, c'est assez radical, car cela risque de désactiver pas mal de fonctionnalités qui vous sont indispensables. Donc désactiver rapidement cette option une fois le test de vérification réalisé.

Désactiver tous les modules non développés par PrestaShop, dans PrestaShop 1.7

Une fois que vous savez que le problème vient bien d'un module, procédez par étapes :

  1. Désactivez la moitié des modules non standards. 
  2. Si le problème persiste, réactivez-les et désactivez l'autre moitié.
  3. Ne désactivez ensuite que le quart, et ainsi de suite, jusqu'à trouver le coupable.
Si le problème n'est pas résolu par la désactivation des addons il est possible que la panne soit causé par une surcharge.

Définition : une surcharge est un bout de programmation que le développeur demande à PrestaShop d'utiliser à la place du code natif. Cela permet de modifier le fonctionnement de PrestaShop sans pour autant toucher au script de PrestaShop.

Désactiver les surcharges PrestaShop



Avec PS 1.7, cela se passe au même endroit, dans la partie "Performance" des "Paramètres avancés" :


Désactiver toutes les surcharges dans PrestaShop 1.7

Basculer sur le thème par défaut



Un bug d'affichage, une page blanche ou même un défaut de fonctionnement, des lenteurs ou encore un mauvais référencement par les moteurs de recherche comme celui de Google, peut aussi venir du thème. En effet de nombreux thèmes font plus que changer les couleurs, la taille des polices et les images, ils ont leur propres scripts et intègrent même parfois des extensions supplémentaires.

C'est donc souvent une bonne idée dans le processus de dépannage, de passer le site en maintenance et de basculer temporairement le site sur le thème par défaut de PrestaShop. Oui vous perdrez temporairement votre beau design, mais votre site fonctionnera sur la base d'un logiciel testé et éprouvé.

Si tout fonctionne à nouveau correctement avec le thème par défaut, vous saurez que la source du bug est à chercher dans votre thème.

Debuggage avancé



Parfois, les choses sont plus complexes et ni la désactivation des extensions, ni celle des surcharges et du thème ne permet de trouver le remède.

Si le bug est bien dans le code (et non pas dans les données elles-mêmes, voir le praragraphe suivant), il faut alors soit se tourner vers un professionel, soit apprendre à utiliser des outils de débuggages.

En 2021, la plupart des navigateurs disposent d'un mode développeur déjà intégré mais masqué.
Pour Firefox par exemple, il suffit de cliquer sur la touche F12 pour ouvrir la console développeur.

L'utilisation de ce genre d'outils dépasse de loin le cadre de cet article. Des connaissances techniques de bases et parfois avancées sur les languages PHP, CSS, javascript, HTML, Smarty, Symfony sont nécessaires pour ce type de mission.

Mais tout s'apprend pour celui ou celle qui est motivé(e) et patient(e). Le web regorge de tutos (note perso de Franck : je suis passé par la, 100% autodidacte en technologies internet). 

On vous conseille de commencer par apprendre à modifier les classes CSS (les styles) avec ces consoles de dépannage navigateur. Cela vous servira aussi pour gagner en autonomie et pouvoir faire des modifications légères d'affichage sur votre boutique sans payer un webmaster à chaque fois.

Réparer en masse la base PrestaShop



Une panne dans une boutique PrestaShop, ou des lenteurs inabituelles, n'est pas toujours due à une erreur de programmation, mais bien souvent due aux données contenues dans la base. 

On peut citer de très nombreux exemples :

Les sous catégories ne s'affichent plus : le fil d'Ariane est cassé dans la base ou des informations sont manquantes.
Certains produits sont absents : les relations entre les catégories et les produits sont cassées.
Des produits sont affichés en doubles : plusieurs photos sont déclarées comme étant la photo de couverture.
Les prix TTC sont incorrects : erreurs dans la configuration des taxes ou rêgles manquantes..
La sélection des attributs de déclinaisons ne fonctionne pas correctement : problème de JS ou de structure des data.
Le site est très lent : causes multiples possibles, mais nettoyer la base ne fait jamais de mal.
Les clients ne trouvent pas les bons articles : l'index est peut être à reconstruire.
Google référence mal le site.

Pour réparer ce type de problèmes, il existe plusieurs solutions, on peut soit utiliser un module PrestaShop spécialisé, soit l'outil de réparation de bases de données inclus nativement dans le logiciel Merlin Backoffice, notre couteau suisse du travail en masse. Voir cet autre article dédié à cette technique:



Que faire si je ne m'en sors pas ?



Pensez au forum de PrestaShop



Avant de lancer un SOS, faites toujours quelques recherches préalables sur le forum, histoire d'être sûr que le sujet n'a pas déjà été traité 10 fois.
Si vous décrivez bien le bug, avec le maximum de détails, des captures d'écrans, vous aurez toutes les chances d'être aidé ou mis sur une piste que vous n'avez pas encore exploré, si quelqu'un l'a déjà rencontré et résolu.
Si par contre vous postez une demande d'aide dans le style "J'ai une page blanche qui s'affiche depuis hier, merci pour votre aide", peu de chance que cette bouteille à la mer ne trouve quelqu'un pour y répondre.

Cherchez sur internet à partir de mots contenus dans le message d'erreur.



En effet dans plus de la moitié des cas, quelqu'un aura rencontré les mêmes erreurs avant vous et peut-être aura t'il pris le temps de partager quelque part la solution qu'il a trouvée, ou pas. Dans ce cas, entrez dans la danse et soyez le premier à partager votre découverte une fois le problème résolu.

Faut-il mettre à jour PrestaShop en cas de panne sévère ?



Avec la majorité des logiciels, la réponse serait oui, mais avec PrestaShop, changer de version ne sera pas notre conseil (vrai au moment où on écrit ces lignes, en 2021, espéront que cela change avec le temps), car toute migration PrestaShop s'accompagne encore trop souvent de son lot de nouveaux bugs ou difficultés.
il est souvent même plus judicieux, quand toutes les solutions essayées n'ont rien donné, d'exporter la base, de ré-installer le même CMS vierge de la même version, sans aucun addon autre que les natifs dans un premier temps et de ré-importer toute ou partie des tables. Puis d'installer par petit nombre à la fois les fonctionnalités supplémentaires. C'est la meilleure approche pour stabiliser un cms récalcitrant pas à pas. Car même si le défaut réapparaît, le fait de travailler par étapes successives à partir d'une plateforme sans fioriture, vous permettra d'identifier à coup sûr le composant défectueux.

Trois secrets des bons dépanneurs, quelque soit le domaine


(NDLR : Franck a 25 ans d'expérience professionnelle dans le monde du support informatique professionel)

  1. Décomposer la problématique en sous ensembles que l'on peut isoler et tester ou remplacer séparément, étape par étape, afin d'identifier "la cause la plus probable". Quand l'ensemble le plus probable est identifié, le décomposer en sous-ensembles plus petits pour affiner l'identification de la sous-cause la plus probable. On peut travailler ainsi en partant d'une vue globale à une vue macro, jusqu'à identifier la ligne de code ou la donnée erronée ou manquante, même quand on n'est pas un expert du domaine concerné.  Ce n'est pas une question de connaissance mais de méthode et de rigueur. L'expérience aide à aller plus vite mais n'est pas indispensable et peut être remplacée par du conseil ou de la lecture.
  2. Toujours commencer par se poser la question "qu'est ce qui a changé, a été modifié, à pu arriver etc, avant que la panne ne survienne". Quand on interroge ainsi nos clients, ils commencent toujours par répondre "rien", mais c'est presque toujours faux, une panne ne survient jamais toute seule par magie, il y a toujours quelque chose qui a changé quelque part juste avant (ou quelques temps avant, car on ne s'en apperçoit pas forcément tout de suite). Quand on a trouvé la réponse à cette question pas facile certe, on est toujours tout proche de la solution.
  3. Une panne intermittente ne peut-être corrigée que lorsque l'on arrive à trouver une façon, un processus, pour la reproduire de manière systématique. Donc avec ce type de panne, ne perdez pas votre temps à modifier des trucs au hasard en espérant résoudre le problème, vous n'allez qu'empirer les choses, mais cherchez une méthode pour la reproduire (se demander "qu'est ce que j'essayais de faire avant que ça ne plante ?").

Besoin d'aide, quel est le coût du support PrestaShop ?



ATTENTION : un webmaster n'est pas un forcément un bon réparateur. Un webmaster sait faire des affichages, voir des sites en entier, mais n'a pas toujours la compétence technique pour faire du débuggage javascript ou Ajax par exemple.


Le prix d'une intervention technique est assez variable.
Chez PrestaShop, vous aurez affaire à des spécialistes, mais au prix fort, de l'ordre de 150€ht les 3/4 d'heures, sans garantie de résultat pour autant.
Chez les freelances spécialisés, comptez entre 50€ht et 80€ht de l'heure d'intervention. Le plus cher n'est pas forcément le meilleur. Un seul conseil pour bien le choisir : faites vous toujours conseiller dans votre choix par d'autres e-commerçants ayant déjà travaillé avec cet intervenant.

Sitolog assure t'il ce type d'intervention ?



Nous l'avons fait par le passé pendant plusieurs années, mais aujourd'hui on préferre réserver notre temps à l'assistance gratuite accordée aux utilisateurs de Merlin Backoffice.
Par contre, si vous ne trouvez aucune ressource compétente pour dépanner votre PrestaShop, même en questionnant le forum PS "Services payants", contactez-nous en privé, on vous mettra en relation gracieusement avec un ou des spécialistes que nous avons sélectionnés pour leur compétence et leur professionalisme.

Certains bugs sont connus depuis des années et non corrigés, que faire ?



C'est vrai que certains défauts de PS mettent du temps à être traités, mais en toute honneté la situation s'améliore nettement depuis quelques mois, avec une meilleure relation avec la communauté d'experts (on pense aux FOP en particulier, les "Friends Of Presta") et des efforts certains pour traiter des problèmes récurrents (comme la gestion des taxes dans les remboursements).

D'autres défauts sont dus à des choix historiques de conception, on pense en particulier au crash de l'admin quand un produit à plus de quelques milliers de déclinaisons ou si le nombre de catégories est trop important. Mais c'est aussi à cause de cela (ou grâce à cela)  qu'est né Merlin Backoffice. De conception technique totalement différente (client lourd sous Windows ou Mac avec Parallels Desktop), il ne souffre d'aucune des limitations inhérentes aux applications en ligne WEB ou SAS.

Donc si votre admin PrestaShop est lente ou plante souvent et que vous perdez plus de temps qu'autre chose pour administrer votre catalogue, pensez à tester la solution alternative de gestion sous Merlin, vous risquez bien d'être fort surpris et d'adorer à nouveau votre boutique PS. Pour rappel, c'est sans risque grâce à notre garantie automatique "Satisfait ou remboursé" de 15 jours renouvellable une fois sur simple demande.

Réalisez un audit SEO une fois la boutique réparée. 



C'est particulièrement important si vous avez exécuté des scripts de réparation ou fait une restauration partielle ou compléte.
Mieux vaut anticiper, plutôt que de réagir plus tard, souvent trop tard, lorsque le site aura dégringolé dans la SERP (positionnement SEO).

Il y a des points faciles et rapides à vérifier concernant les produits et les catégories, avec l'aide de l'application Merlin Backoffice, comme par exemple : 

  • Que tous les produits ont bien une image principale et une seule.
  • Que les produits déclinés ont tous une déclinaison par défaut et une seule
  • Que les champs SEO des produits et des catégories ne soient pas vides : balises titre et méta descriptions.
  • Qu'il n'y ait pas de doublons dans les champs méta.
  • Qu'il n'y a pas de produit orphelin.
  • Que le fil d'Ariane soit correct.
  • Vérification qu'il n'y ait pas trop de liens externes dans les descriptions (URL externe). 
  • Verification du bon fonctionnement des urls de maillage interne.
  • Profitez en pour alléger l'hébergement et la base. 


Comment faire un diagnostic SEO ?



Les techniques d'audit SEO est assez simple, il suffit de savoir utiliser soit les pré-filtres soit l'outil de recherche avancé dans le logiciel Merlin.
Par exemple dans l'outil loupe de Merlin, d'un clic vous pouvez obtenir la listes de tous les articles sans image de couverture.
Ou avec les pré-filtre, il est facile de demander la liste de tous les produits contenant des urls (recherche des chaines de caractères "http://" ou "https://") dans leur description.
Vous pouvez aussi alléger le volume hébergé avec nos outils de fusion des attributs et des caractéristiques ou encore de suppression des images orphelines.
Cet article vous a plu ? Partagez-le !