croual Posted December 29, 2023 Share Posted December 29, 2023 (edited) Bonjour à tous, Je rencontre un problème sur notre boutique en ligne que je n'arrive pas à résoudre, et ce problème devient de plus en plus fréquent, ce qui pose des difficultés à notre service client. Le problème : Quand on est dans le back-office et que l'on crée une nouvelle commande, on sélectionne un client, et normalement, si tout va bien : on a la liste des paniers et des commandes. Cependant, parfois, nous sommes confrontés à un 'chargement infini' qui nous bloque. La seule solution est alors de changer de client puis de revenir sur le client précédent pour que la liste s'actualise. Sans cela, nous ne pouvons pas accéder aux autres panneaux pour créer la commande du client. Voir la capture d'écran ci-jointe. Après avoir cherché un peu dans la console, je constate que la requête aboutit à une erreur 500. Malheureusement, le mode debug ne m'est pas d'une grande aide dans ce cas, car voici le résultat que j'obtiens dans la consol -> Aperçu : {,…} message:"Une erreur inattendue s'est produite. [Symfony\\Component\\Debug\\Exception\\ContextErrorException code 0] : Notice: Trying to get property 'id' of non-object." Question : Existe-t-il une solution pour résoudre ce problème ? Ou avez-vous déjà rencontré ce problème ? Je m'excuse si ce problème a déjà été abordé, mais je n'ai trouvé aucun sujet ni réponse à ce problème sur le forum. Je vous remercie par avance pour votre aide. Informations sur la boutique : Version PrestaShop : 1.7.8.10 Version PHP : 7.4 Multi-Boutique : Oui Si vous avez besoin de plus d'infos ou autre, je reste à votre disposition. Edited January 23 by croual (see edit history) Link to comment Share on other sites More sharing options...
croual Posted January 23 Author Share Posted January 23 ... Merci pour votre réactivité, mais j'ai finalement trouvé une solution au problème.Cause du problème : Je ne sais pas par quelle magie cela et possible, mais un hook destiné au front-end était appelé dans le back-office. Il tentait de charger un objet client pour vérifier s'il était bien connecté, ce qui créait une erreur 500 et était à l'origine de mon problème.Résolution : j'ai modifier je ne sais plus quelle fichier pour ajouter quelque chose de similaire à ceci : if($this->context->customer == null) { return; } if ($this->context->customer->isLogged() === false) { return; } Ajout de vérifications pour empêcher le chargement d'un objet côté back-office qui ne peut pas être chargé à cet emplacement, étant donné qu'il est prévu pour le front-end. Les vérifications ajoutées permettent de : Vérifier si l'objet existe dans le contexte actuel. SI l'objet existe, on vérifie s'il est connecté. Seulement si c'est deux conditions sont remplie, on exécute le code. Cela évite les erreurs 500 dues à l'utilisation de fonctions (dans ce cas, isLogged()) sur un objet null ou inexistant. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now