22 Mar 2021
Commande vide sans detail problème moduel mail alert Prestashop

Corriger l’erreur “getLocaleByIso” du module mail alert de Prestashop 1.7

Une de mes clientes à rencontrer un problème très inquiétant sur son Prestashop 1.7. Les commandes remontées dans le back-office, sans statut et sans détail, alors que le paiement était bien passé. J’ai résolu cela en travaillant sur le module alerte e-mail de.

Aucun détail de la commande dans le back-office de Prestashop

Dans le cas de ma cliente, elle recevait bien les paiements des clients via Paypal et Payplug.

Cependant dans le back-office, chaque commande n’avaient aucun statut et elles étaient vides, sans aucun détail produit :
Une commande sans détail produit sur un Prestashop 1.7

Il est donc impossible de préparer une commande sans pouvoir ce que le client a commandé.

Le temps de corriger le problème, l’astuce est de regarder le détail des mails de paiement qui récapitule les produits achetés, notamment chez Paypal.

Il faut savoir qu’on ne peut pas récupérer les détails produits. Ils n’ont pas étaient enregistré en base de données lors de la validation de paiement.

Une erreur dans le module mail alert : ps_emailalerts.php line 552

Après avoir regardé les logs du site et d’avoir réalisé des tests en mode debug sur le site, j’ai pu constater que le problème était lié à un module sur le hook actionValidateOrder et plus particulièrement le module d’alerte mail.

En front-office, lors d’un test de commande, j’ai eu directement ce message :
Message erreur getLocaleByIso module alerte e-mail Prestashop

J’ai eu ce message au moment que je cliquais sur “payer” dans le tunnel d’achat.

Cela nous donne une indication précise sur notre problème. Si vous souhaitez activer les erreurs de votre côté, je vous invite à lire mon article sur le sujet ou de regarder mon tutoriel :

Comment corriger l’erreur getLocaleByIso du module alerte e-mail ?

J’ai comparé plusieurs modules de différents Prestashop pour me rendre compte d’une chose. Celui de ma cliente était en anglais. Hors quand on l’installe depuis le catalogue de module, il est automatiquement déjà traduit.

De plus, l’erreur indique ceci :

Attempted to call an undefined method named “getLocale” of class “Language”.
Did you mean to call “getLocaleByIso”?

Je me suis donc dit que le problème était dû à une traduction ou bien un appel particulier dans le fichier php.

Entre 2 modules, de la même version 2.2.2, je n’avais pas exactement les mêmes fichiers ps_emailalerts.php… Si vous me demandez pourquoi, j’en ai aucune idée 🙂

J’ai donc supprimé le module présent dans le back-office de Prestashop pour installer un nouveau.

Je vous laisse le télécharger ici : ps_emailalerts.zip - 2.2.2 (465 téléchargements )

Après ça, directement, le problème était corrigé !

Bien sûr n’oubliez pas de vider le cache.

Override du module Alert mail dans votre thème

Voici une info bonus !

Par précaution, j’ai remplacé via le serveur FTP*, le dossier ps_emailalerts dans le dossier module du thème premium de la cliente.

Je me suis dit qu’il pouvait aussi être impacté, même s’il contient uniquement des fichiers tpl pour la page mon compte.

J’ai donc remplacé le dossier par celui du thème Classic que j’ai pris dans un zip Prestashop 1.7.7.2.

Vous pouvez le télécharger ici : Override theme ps_emailalerts (326 téléchargements )

Configurez le module alerte e-mail de Prestashop 1.7

Une fois votre problème corrigé, vous pouvez maintenant reconfigurer votre alerte.

J’explique tout ça dans cette vidéo ci-dessous :

Conclusion

J’espère que vous allez pouvoir corriger efficacement votre souci avec le module d’alerte e-mail.

Si jamais vous n’avez pas d’erreur fatale en lien avec cela, je peux vous donner 2 astuces :
– Vérifiez la comptabilité php de votre hébergement avec votre site Prestashop
– Regardez et testez les autres modules rattachés à votre hook actionValidateOrder

Je peux vous inviter à lire un autre de mes articles sur ce module : Je ne reçois plus les mails de confirmation de commande Prestashop

Vous voulez faire appel à un professionnel Prestashop ?

– Recherche de votre problème Prestashop
– Recherche et correction de l’incident si possible
– Explication par mail et/ou préconisation pour devis complémentaire

Si vous voulez travailler avec moi, n’hésitez pas à commander un support



Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *