Comment résoudre un problème de chargement (pop-up ou contenu) ?

Si une page, une fenêtre pop-up, un contenu ou la génération d’un fichier ne se charge pas correctement, les étapes ci-dessous permettent de récupérer le message d’erreur utile au diagnostic.

Activez le mode debug avant de reproduire l’erreur. Utilisez-le temporairement, de préférence sur une boutique de préproduction, puis désactivez-le dès que les informations nécessaires ont été récupérées.

1. Activer temporairement le mode debug

Depuis le back-office de PrestaShop 1.7, 8 ou 9

  1. Ouvrez Paramètres avancés > Performances.
  2. Dans la section Mode debug, activez le mode debug.
  3. Enregistrez le réglage.

Si le back-office est inaccessible, ou sur une ancienne version

Depuis l’accès aux fichiers de votre hébergement, ouvrez config/defines.inc.php dans le dossier de la boutique. Repérez la définition existante de _PS_MODE_DEV_ et remplacez sa valeur false par true :

define('_PS_MODE_DEV_', true);

Enregistrez le fichier. Modifiez la définition existante : n’ajoutez pas une seconde définition de cette constante. Si vous n’êtes pas à l’aise avec cette intervention, demandez à votre webmaster de l’effectuer.

2. Reproduire une erreur de chargement de page

Une fois le mode debug activé, rechargez la page concernée et refaites l’action qui échoue. Une page blanche ou un message générique, à lui seul, ne permet pas toujours de trouver la cause.

Relevez le message d’erreur complet, ainsi que le nom du fichier et le numéro de ligne lorsqu’ils sont indiqués. Une capture lisible ou une copie du texte permettra au support d’identifier le problème.

Si aucun détail supplémentaire n’apparaît, demandez à votre hébergeur ou à votre webmaster de consulter les journaux d’erreurs PHP correspondant à l’heure de l’incident.

3. Examiner une erreur Ajax ou une génération de fichier

Une fenêtre pop-up ou un message Internal Ajax error peut signaler l’échec d’une requête exécutée en arrière-plan. Le détail de l’erreur se trouve alors dans la réponse de cette requête.

  1. Ouvrez les outils de développement du navigateur avec un clic droit sur la page, puis Inspecter.
  2. Ouvrez l’onglet Réseau / Network. Vous pouvez utiliser le filtre Fetch/XHR pour repérer les requêtes Ajax.
  3. Gardez les outils ouverts, puis reproduisez l’erreur : ouvrez de nouveau la fenêtre ou relancez, par exemple, la génération du fichier.
  4. Dans la colonne Nom / Name, sélectionnez la requête correspondant à cette action. Relevez son statut HTTP.
  5. Ouvrez Réponse / Response pour lire le message retourné. L’onglet Aperçu / Preview peut aussi faciliter la lecture d’une réponse HTML.
Requête Fetch/XHR coffee/ avec le statut HTTP404 dans Réseau
Requête de démonstration : la colonne Nom et le statut404 permettent de repérer la ressource introuvable.

Un statut HTTP 200 ne garantit pas que l’opération a réussi : vérifiez aussi le contenu de la réponse.

Onglet Réponse de la requête coffee/ contenant Not Found
La même requête dans Réponse renvoie « Not Found ». Sur votre boutique, lisez le message réellement retourné ; il peut s’agir d’un autre statut ou d’une erreur applicative.

Si aucune requête liée à l’action n’apparaît, vérifiez également l’onglet Console et transmettez les éventuelles erreurs JavaScript. Si une navigation efface la liste des requêtes, activez Conserver le journal / Preserve log avant de recommencer.

4. Reconnaître une limite de temps ou de mémoire PHP

Temps d’exécution dépassé

Maximum execution time of ... seconds exceeded

Ce message indique que la limite de temps d’exécution PHP a été atteinte. La directive concernée est max_execution_time.

Mémoire disponible épuisée

Allowed memory size of ... bytes exhausted

Ce message indique que le script a atteint sa limite de mémoire PHP, définie par memory_limit. Les points de suspension représentent les valeurs propres au message reçu.

Transmettez l’erreur à votre hébergeur ou à votre administrateur afin de vérifier les limites réellement appliquées à la boutique et de déterminer si une adaptation est nécessaire. Sur un hébergement mutualisé, les possibilités de modification dépendent de l’offre souscrite. Si l’opération concerne un grand catalogue, demandez aussi au support si elle peut être traitée par lots.

Le serveur web peut appliquer ses propres délais d’attente. Un statut 502 ou 504 ne suffit donc pas à conclure que la limite PHP est en cause. Une augmentation des limites doit rester adaptée au diagnostic et aux ressources de l’hébergement.

5. Envoyer les éléments utiles au support, puis désactiver le mode debug

Ajoutez à votre demande de support :

Masquez les mots de passe, clés et jetons d’accès éventuellement présents dans les éléments transmis.

Une fois les informations récupérées, désactivez le mode debug dans Paramètres avancés > Performances. Si vous l’avez activé dans le fichier, remettez la constante à false :

define('_PS_MODE_DEV_', false);

Les deux captures utilisent la démonstration officielle de Chrome et montrent une requête Fetch en erreur404. Il s’agit d’un exemple de lecture de Réseau, pas d’une erreur provoquée dans le module.

Autres FAQ dans la même catégorie