mudplanet Posted August 29, 2009 Share Posted August 29, 2009 Bonjour à tous,J'ai vu plusieurs post au sujet de cette erreur, mais je n'ai pas vu la solution clairement expliquée. Il semble qu'il s'agisse d'un problème de caractère UTF-8, mais de grâce ne dites pas des trucs du genre "il faut paramétrer votre éditeur pour qu'il enregistre en UTF-8". Cela ne REGLE pas le problème, car le problème n'est pas, actuellement, dans mon éditeur, mais dans mon site !Alors s'il s'agit effectivement de fichiers qui doivent être sauvés en UTF-8 (je n'ai pas souvenir d'avoir édité un quelconque fichier, pourant ...), la solution serait d'expliquer comment CORRIGER cet état de fait, non comment l'éviter.Donc, en gros, je modifie un produit, et quand je sauve, hop : message. Frustrant. Je crois que j'ai testé le fait d'être prévenu lorsqu'un produit revient en stock, donc il doit y avoir un envoi automatique de mail là-dessous. Mais ça ne me dit pas où est le problème, ni comment le corriger.Si quelqu'un a la bonté de donner une explication claire et complète (ou un lien vers un endroit où la soluce est explicitée), je l'en remercie par avance.Patrice Link to comment Share on other sites More sharing options...
mudplanet Posted August 30, 2009 Author Share Posted August 30, 2009 Après quelques investigations, j'ai ajouté dans le fichier classes/mail.php quelques traces pour vérifier ce qui génère le message en question.Il s'avère qu'en fait, il n'est pas question ici de caractères UTF-8 comme je l'avais dit dans on précédent post (induit en erreur par un autre post qui ne devait finalement pas avoir grand chose à voir).Dans le fichier mail.php, la fonction send() commence par un certain nombre de validations. Celle qui ne fonctionne pas est la suivante : le paramètre $to est vide ... Évidemment, envoyer un mail sans indiquer le destinataire, c'est pas bien.Dans mon cas, $toName est vide aussi.Le seul truc notable que j'ai fait récemment, c'est de cliquer sur le bouton "prévenez-moi lorsque ce produit sera en stock" (libellé indiqué de mémoire) alors que j'étais connecté comme client. Il est possible aussi que le client en question ai été supprimé depuis ...Après avoir vérifié que ma table des client est vide (je suis sur une base test ...), je vois qu'il traine un enregistrement dans la table mailalert_customer_oos ... et en supprimant cet enregistrement, évidement , le bug disparaît.Soit il y a un bug sur la suppression des enregistrements dans cette table, soit il y a eu une erreur sur la suppression du client concerné ... Link to comment Share on other sites More sharing options...
yvesbj Posted April 2, 2010 Share Posted April 2, 2010 le problème vient simplement du fait qu'un client à demander à recevoir un mail lorsque le produit sera de nouveau en stock. seulement, entre temps, vous avez du virer ou modifier des paramètres.le plus simple est de refaire la fiche produit au propre pour ne plus revoir l'erreur. Link to comment Share on other sites More sharing options...
Raph59 Posted May 13, 2010 Share Posted May 13, 2010 Bonjour,Je viens d'avoir le problème, en réalité ce problème viens bien du module mailalert car justement j'ai depuis peu installé ce module, donc en rencontrant le message d'erreur "les paramètres du mail sont corrompus" en modifiant la quantité d'un produit, sachant pertinemment que justement des mail devais être envoyé a des clients pour dire que j'ai été réapprovisionné, je me suis donc penché sur ce module.Le problème de ce module ( mailalert ) , c'est qu'il ne fait aucune vérification à savoir si le mail entré par le client est bien valide AVANT d'entrer ce mail dans la base de donnée... donc quelqu'un qui appui sur la case là ou il faut entrer le mail (ce qui efface [email protected] ) , qu'il n'entre aucun email, et qui clic sur le lien "Prévenez-moi lorsque le produit est disponible", et bien on se retrouve avec une belle entré dans la base de donnée avec le champs "customer_email" vide...Donc quand vous entrez un produit en stock et qu'il essais d'envoyer un mail, sa bloque tout car le champs expéditeur se retrouve vide!!Pour info en réalité pour rendre la déclinaison de nouveau fonctionnel, il faut aller dans sa base de donnée et refaire le lien dans la table ps_product_attribute_combination , car vous remarquerai que l'entré de la déclinaison en question a été supprimer ... enfin attention utilisateur averti seulement!!!! sinon pour éviter tout risque simplement recréer le produit...Donc il faudrait simplement créer une fonction php qui vérifie si c'est bien un mail valide avant d'entrer ce dernier dans la base de donnée, avec du javascript si possible afin que l'utilisateur puisse rectifier son erreur afin qu'il soit réellement averti le jour ou on reçoit du stock En attendant pour éviter ce genre d'erreur, le meilleur moyen que je connaisse c'est qu'avant d'ajouter du stock, il faut aller dans sa base de donnée, se rendre à la table "ps_mailalert_customer_oos" et d'effacer toute entré avec le champs "customer_email" vide ou invalide... Link to comment Share on other sites More sharing options...
plumaffut Posted September 7, 2010 Share Posted September 7, 2010 Bonjour,Vous voulez dire que mes prospect qui auront entré leur mail en espérant recevoir l'info de disponibilité ne vont pas être informé de l'arrivée des produits ??? A cause d'autrre qui n'auront pas rentrés les bons mail ...Comment éviter cela ?A ce moment là je préfère qu'ils ne puissent même pas renseigné leur mail Link to comment Share on other sites More sharing options...
Raph59 Posted September 8, 2010 Share Posted September 8, 2010 Bonjour,pour éviter cela il faut faire un ménage directement dans la base de donnée pour virer les mails non valide, mais bien entendu il faut des connaissances en MySQL pour cela Link to comment Share on other sites More sharing options...
plumaffut Posted September 8, 2010 Share Posted September 8, 2010 Je connais un peu (comment ouvrir, effacer une entrée, etc ..Dans quelle table cela se trouve ?merci Link to comment Share on other sites More sharing options...
Fabrice Posted September 8, 2010 Share Posted September 8, 2010 post déplacé :-) ce n'est PAS un rapport de bugs...merci de respecter les règles du forum ;-) Link to comment Share on other sites More sharing options...
Raph59 Posted September 10, 2010 Share Posted September 10, 2010 La table c'est ps_mailalert_customer_oosSi la colonne id_customer contient un chiffre autre que 0, c'est ok car il va chercher l'email avec le compte client, si en revanche la colonne id_customer est à 0 EST que le champs email est vide, c'est une entré qu'il faut effacer!!En cadeaux voici la requêtes SQL que j'execute pour trouver les mauvaise entré pour les effacers SELECT * FROM `ps_mailalert_customer_oos` WHERE `id_customer` =0 AND `customer_email` NOT LIKE '%@%' Link to comment Share on other sites More sharing options...
KTech Posted May 28, 2011 Share Posted May 28, 2011 Chez moi le problème venait du fait qu'il avait pas de template mail affecté à "En attente du paiement par chèque" (Onglet Commandes -> Stauts).Le mail est envoyé à partir de OrderHistory.php ligne 156. 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