Icedocemile Posted July 17, 2012 Share Posted July 17, 2012 Bonjour, Je n'ai trouvé aucune informations à propos de ce bug, alors je me permets de le poster, et de vous proposer une solution qui fonctionne. Symptômes possibles : - certains Emails de Contact, Mot de passe oublié ne sont jamais transmis - lors de certaines commandes, avec le module mailalerts activé, on se retrouve avec des commandes "fantômes" (= non valides, sans aucun produits, ..). Le problème vient de l'envoi d'email (de confirmation de nouvelle commande, ou d'envoi du nouveau mot de passe). En effet, le framework utilisé pour créer les Emails est Swift (visible dans le répertoire tools/Swift). Or cette version est assez ancienne, et semble avoir un bug qui provoque l'interruption du traitement de nouvelles commandes ou d'envoi de mot de passe. Voilà le type de message d'erreur que l'on peut trouver dans les logs : Fatal error: Uncaught exception 'Swift_Message_MimeException' with message 'Something went wrong whilst trying to move some MIME parts during an attach(). The MIME component threw an exception:<br />Cannot remove child part identified by '5002049111081' as it does not exist. Consider using hasChild() to check.' in /www/tools/swift/Swift/Message.php:542 Stack trace: #0 /home/ovh/www/classes/Mail.php(194): Swift_Message->attach(Object(Swift_Message_Part)) #1 /home/ovh/www/modules/mailalerts/mailalerts.php(241): MailCore::Send(2, 'new_order', 'Nouvelle comman...', Array, Array, NULL, '[email protected]...', 'AGEOD.com', NULL, NULL, '/home/ovh/www/m...') #2 [internal function]: MailAlerts->hookNewOrder(Array) #3 /home/ovh/www/classes/Module.php(758): call_user_func(Array, Array) #4 /home/ovh/www/classes/Hook.php(136): ModuleCore::hookExec('newOrder', Array) #5 /home/ovh/www/classes/PaymentModule.php(426): HookCore::newOrder(Object(Cart), Object(Order), Object(Customer), Object(Currency), Object(OrderState)) #6 /home/ov in /home/ovh/www/tools/swift/Swift/Message.php on line 542 Dans la classe /tools/Swift/Swift/Message.php, dans la fonction "moveBranchIn" à la ligne 623, il faut rajouter un test if : if($this->getReference("parent", $old_branch)->hasChild($id)) { $this->getReference("parent", $old_branch)->removeChild($id); } Si ça peut en aider certains Bonne journée ! 5 Link to comment Share on other sites More sharing options...
Gregory Roussac Posted July 17, 2012 Share Posted July 17, 2012 (edited) Hello, Je reproduis depuis le 14/07/12 je dirais. Merci pour le fix. Je teste ça ! Edited July 19, 2012 by Gregory Roussac (see edit history) Link to comment Share on other sites More sharing options...
rseasy Posted July 18, 2012 Share Posted July 18, 2012 Effectivement depuis le 13 07 2012 ou 14 07 2012, j'ai un problème de commande fantôme quelque soit le mode de paiement utilisé. Je vais tester ça tout de suite. Pour ceux qui n'aurait pas compris, il faut remplacé le code de la ligne 639 suivant " $this->getReference("parent", $old_branch)->removeChild($id); " par: /* Ajout du 18 07 2012 pour problemes de commande fantôme */ if($this->getReference("parent", $old_branch)->hasChild($id)) { $this->getReference("parent", $old_branch)->removeChild($id); } /** $this->getReference("parent", $old_branch)->removeChild($id); */ 1 Link to comment Share on other sites More sharing options...
Icedocemile Posted July 18, 2012 Author Share Posted July 18, 2012 Depuis le fix, tout est de nouveau normal sur mes boutiques. Ce que je n'ai pas réussi à comprendre pour le moment, c'est pourquoi ces problèmes ont commencé à apparaître il y a peu, sans avoir fait aucune mise à jour. Il y a certainement un autre soucis sous-jacent. Link to comment Share on other sites More sharing options...
Gregory Roussac Posted July 18, 2012 Share Posted July 18, 2012 Hello, Je pense à une mise à jour des smtp d'OVH ce week end, par ce que j'ai eu les memes logs sur des 1.2, des 1.3 et des 1.4. Merci encore d'avoir posté pour les autres !!! Link to comment Share on other sites More sharing options...
rseasy Posted July 18, 2012 Share Posted July 18, 2012 Merci beaucoup Icedocemile pour la solution que tu nous as données! Plus de soucis depuis 12 heures. Link to comment Share on other sites More sharing options...
O Gato Hobby Posted July 18, 2012 Share Posted July 18, 2012 J'ai comencé la semaine avec le même probleme.... Merci pour la solution! Link to comment Share on other sites More sharing options...
cghisi Posted July 20, 2012 Share Posted July 20, 2012 Bonjour, J'ai rencontré le même problème durant le week end et tous le début de la semaine. Cependant pas moyen de voir l'origine de l'erreur. De plus le problème est très aléatoire. Je ne rencontre pas le problème sur toutes les commandes uniquement sur certaines. Quelqu'un à t'il un début de piste ? J'ai contacté mon hébergeur et aucune modification n'a été faite sur les SMTP. Link to comment Share on other sites More sharing options...
Icedocemile Posted July 24, 2012 Author Share Posted July 24, 2012 Si tu es en hébergement mutualisé, tu devrais demander les logs d'erreurs à ton hébergeur. Ensuite tu pourras les fouiller pour essayer de trouver l'erreur qui se produit. Link to comment Share on other sites More sharing options...
jojo2076 Posted August 23, 2012 Share Posted August 23, 2012 (edited) Je rencontre actuellement le meme probleme sur un des sites Presta que j'ai, je vais donc utiliser votre code, merci! Par contre, ce probleme ne m'est apparu que sur un site. Est-ce qu'il est suggere de mettre en place ce code pour tous les autres sites egalement par prevention? Ce sont des sites 1.4 et 1.3. Edited August 23, 2012 by jojo2076 (see edit history) Link to comment Share on other sites More sharing options...
tisc0 Posted October 11, 2012 Share Posted October 11, 2012 Superbe ! Quelle chance de trouver ce patch. La communauté prestashop est fantastique. Pour ceux qui veulent en savoir un peu plus et qui ne seraient pas déjà allés voir sur le bugtracker : http://forge.prestashop.com/browse/PSCFI-6121 Have a nice day, men ! Big Up ICEDOCEMILE ! Link to comment Share on other sites More sharing options...
manuelv Posted October 12, 2012 Share Posted October 12, 2012 Fix qui marche nickel Merci! Link to comment Share on other sites More sharing options...
Orga-nikz Posted October 19, 2012 Share Posted October 19, 2012 Bonjour, Merci pour votre solution. Je voudrais juste être sur, mon code final donne cela : if($this->getReference("parent", $old_branch)->hasChild($id)) { $this->getReference("parent", $old_branch)->removeChild($id); } /** $this->getReference("parent", $old_branch)->removeChild($id); } */ $this->setReference("parent", $old_branch, $new); //parentRefs[$old_branch] = $new; } Est-ce bon ? Merci, Bonne journée Link to comment Share on other sites More sharing options...
m-Facilities.com Posted October 20, 2012 Share Posted October 20, 2012 @Orga-nikz : à mon avis, tu as pris une accolade en trop dans le commentaire. Difficile de dire sans vision globale mais je dirais plutôt: if($this->getReference("parent", $old_branch)->hasChild($id)) { $this->getReference("parent", $old_branch)->removeChild($id); } /** $this->getReference("parent", $old_branch)->removeChild($id); **/ } $this->setReference("parent", $old_branch, $new); //parentRefs[$old_branch] = $new; } @Icedocemile : merci pour ce fix. J'espère ne plus avoir de commandes fantômes... Link to comment Share on other sites More sharing options...
Icedocemile Posted November 16, 2012 Author Share Posted November 16, 2012 Hello, @m-Facilities.com : le problème est apparu sur quelle version ? Link to comment Share on other sites More sharing options...
m-Facilities.com Posted November 16, 2012 Share Posted November 16, 2012 Version 1.4.7.3 Link to comment Share on other sites More sharing options...
diabolyo Posted December 30, 2012 Share Posted December 30, 2012 Salut à tous Merci pour le fix, j'ai des commandes paypal qui ne remontaient plus (qui étaient insvisibles et en "annulées alors que le paiement était reçu). je teste et je reviens vers vous pour vous dire si c'est OK (PS1.4.6.2) A bientôt ! Lionel Link to comment Share on other sites More sharing options...
culte Posted February 24, 2013 Share Posted February 24, 2013 Merci infiniment ! Link to comment Share on other sites More sharing options...
Thor007 Posted February 25, 2013 Share Posted February 25, 2013 Près de 1 an et demi que je cherche un semblant de piste pour ce problème !! J'ai mis en place le FIX, je reviens vers vous si j'ai un problème !! En tout cas si plus de commande fantôme je vous serai éternellement reconnaissant (j'en fais peut-être un peu trop, mais je déprime un peu moins) !! Link to comment Share on other sites More sharing options...
Thor007 Posted March 8, 2013 Share Posted March 8, 2013 Depuis le 25 Fev aucune commande de perdue... ça à l'air de fonctionner à merveille !! Merci encore! Link to comment Share on other sites More sharing options...
mamz Posted March 28, 2013 Share Posted March 28, 2013 Est-ce que cette solution s'applique aussi à la version 1.3.5 ? Link to comment Share on other sites More sharing options...
Gregory Roussac Posted March 28, 2013 Share Posted March 28, 2013 Hello, Possiblement mais je pense que les versions de swift doivent diverger quand même. Link to comment Share on other sites More sharing options...
mamz Posted April 6, 2013 Share Posted April 6, 2013 Hello, Possiblement mais je pense que les versions de swift doivent diverger quand même. Merci pour cette réponse mais elle ne me "parle" pas trop, ça veut dire que le code indiqué risque de ne pas fonctionner sur ma version ? Je suis un peu désespérée, les commandes "fantômes" sont de plus en plus fréquentes !!! Link to comment Share on other sites More sharing options...
Gregory Roussac Posted April 18, 2013 Share Posted April 18, 2013 Hello, Essayez de l'appliquer mais cela peut ne pas marcher oui. Si le site envoie toujours des mails après modifications, et qu'il y a toujours des commandes perdues, il faut chercher une autre raison, du coté du moyen de paiement par exemple. Link to comment Share on other sites More sharing options...
kidoshop Posted May 15, 2014 Share Posted May 15, 2014 bonjour je découvre cette ancien message et j ai le meme soucie j ai de plus en plus de commande fantome et j ai mis ce if mais etant assez novice pourriez vous me dire si cela est bon merci case "related": $this->getReference("related", $tag)->addChild($ref, $id, $sign); break; case "mixed": $this->getReference("mixed", $tag)->addChild($ref, $id, $sign); break; } if($this->getReference("parent", $old_branch)->removeChild($id); } $this->setReference("parent", $old_branch, $new); //parentRefs[$old_branch] = $new; } /** * Analyzes the mixing of MIME types in a mulitpart message an re-arranges if needed * It looks complicated and long winded but the concept is pretty simple, even if putting it * in code does me make want to cry! */ protected function postAttachFixStructure() { switch (true) je suis en 1.4.6.2 Link to comment Share on other sites More sharing options...
loulou66 Posted May 16, 2014 Share Posted May 16, 2014 Coucou ça serai plutôt d'apres le post#3 ligne 623 remplacer $this->getReference("parent", $old_branch)->removeChild($id); par if($this->getReference("parent", $old_branch)->hasChild($id)) { $this->getReference("parent", $old_branch)->removeChild($id); } @++ Loulou66 Link to comment Share on other sites More sharing options...
kidoshop Posted May 16, 2014 Share Posted May 16, 2014 merci pour votre reponse donc sa donne cela case "related": $this->getReference("related", $tag)->addChild($ref, $id, $sign); break; case "mixed": $this->getReference("mixed", $tag)->addChild($ref, $id, $sign); break; } if($this->getReference("parent", $old_branch)->hasChild($id)) { $this->getReference("parent", $old_branch)->removeChild($id); } } $this->setReference("parent", $old_branch, $new); //parentRefs[$old_branch] = $new; } /** par contre n ai je pas un } en trop entre les lignes merci Link to comment Share on other sites More sharing options...
valade Posted September 18, 2014 Share Posted September 18, 2014 bonjour rencontrant le meme soucis sur presta 1.6.08 cette ligne de code serait elle fonctionnelle Serge 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