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.

Les captures ci-dessous proviennent d’anciennes interfaces. Leur présentation peut différer de celle de votre boutique ou de votre navigateur.

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.
Réglage du mode debug dans le back-office de PrestaShop 1.7
Exemple du réglage dans PrestaShop 1.7.

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.

Emplacement de la définition _PS_MODE_DEV_ dans config/defines.inc.php sur une ancienne version de PrestaShop
Exemple de la constante à modifier sur une ancienne version.

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.

Erreur générique de chargement avant récupération du message détaillé
Exemple de message d’erreur générique.

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.

Erreur PHP détaillée indiquant le fichier et le numéro de ligne
Exemple d’erreur détaillée obtenue avec le mode debug activé.

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.

Message Internal Ajax error dans l’interface du module
Exemple d’erreur sur une requête exécutée en arrière-plan.
  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.
Sélection de la requête Ajax dans l’onglet Network du navigateur
Exemple de sélection de la requête associée à l’action en erreur.

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

Erreur PHP affichée dans la réponse d’une requête Ajax
Exemple d’erreur PHP affichée dans Aperçu sur une ancienne interface des outils de développement.

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);

Autres FAQ dans la même catégorie