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
- Ouvrez Paramètres avancés > Performances.
- Dans la section Mode debug, activez le mode debug.
- 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.
- Ouvrez les outils de développement du navigateur avec un clic droit sur la page, puis Inspecter.
- Ouvrez l’onglet Réseau / Network. Vous pouvez utiliser le filtre Fetch/XHR pour repérer les requêtes Ajax.
- Gardez les outils ouverts, puis reproduisez l’erreur : ouvrez de nouveau la fenêtre ou relancez, par exemple, la génération du fichier.
- Dans la colonne Nom / Name, sélectionnez la requête correspondant à cette action. Relevez son statut HTTP.
- Ouvrez Réponse / Response pour lire le message retourné. L’onglet Aperçu / Preview peut aussi faciliter la lecture d’une réponse HTML.
Un statut HTTP 200 ne garantit pas que l’opération a réussi : vérifiez aussi le contenu de la réponse.
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 :
- La page concernée et les étapes précises permettant de reproduire le problème.
- Les versions de PrestaShop, du module et de PHP, si vous les connaissez.
- Le message d’erreur complet ou une capture lisible.
- Pour une erreur Ajax, le statut HTTP et le contenu utile de l’onglet Réponse / Response.
- L’heure du problème si votre hébergeur doit retrouver l’événement dans les journaux.
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);