jolvil Posted November 28, 2008 Share Posted November 28, 2008 Je cherche à ajouter le message du client fait pendant le processus de commande sur l'email de notification de commande recu par le commercant.Je suis en Beta 3J'ai ajouté {order_message} dans new_order.htmlet j'ai ajouté:'{order_message}' => $order->order_message,dans mailalerts.phpmais cela ne marche pas!quelqu'un aurait il une piste? :roll:-----------------------------------------------------------------------------Problème résolu!J'édite ce post pour joindre les fichiers avec les modifications apportées dans modules/mailalerts/mailalerts.php et modules/mailalerts/mails/fr/new_order.html et new_order.txt pour avoir le message client dans l'email d'alerte de commande.-----------------------------------------------------------------------------A noter que la fonctionnalité sera dispo pour la beta4 new_order.html Link to comment Share on other sites More sharing options...
DrÿSs' Posted November 29, 2008 Share Posted November 29, 2008 Bonjour,Bizarre, votre implémentation a plutôt l'air correcte.Que se passe-t-il dans le mail reçu par le client ?La variable {order_message} est-elle remplacée, ou apparaît-elle comme ça ? Link to comment Share on other sites More sharing options...
jolvil Posted November 29, 2008 Author Share Posted November 29, 2008 Merci de la réponseJe n'ai pas le texte entré lors de la commande et la variable {order_message} n'apparait pas non plus. Link to comment Share on other sites More sharing options...
Patric Posted November 29, 2008 Share Posted November 29, 2008 Chaque mail est en deux formats .txt et .html, tu es bien sûr d'envoyer le mail au format correspondant au format modifié ? :red: Link to comment Share on other sites More sharing options...
DrÿSs' Posted November 29, 2008 Share Posted November 29, 2008 Si vous dite que la variable {order_message} n'apparaît pas, c'est qu'elle a bien été remplacée !Mais... par rien !Donc le problème vient du fait que soit vous n'avez pas de message dans votre commande (je doute que vous ayez fait le test sans en mettre un), ou alors que la variable récupérée ($order->order_message) est vide.Je regarde en détail et je vous dis cela. Link to comment Share on other sites More sharing options...
jolvil Posted November 29, 2008 Author Share Posted November 29, 2008 voila ce que j'ai dans mailalerts.php // Filling-in vars for mail $template = 'new_order'; $subject = $this->l('New order'); $templateVars = array( '{firstname}' => $customer->firstname, '{lastname}' => $customer->lastname, '{email}' => $customer->email, '{delivery_firstname}' => $delivery->firstname, '{delivery_lastname}' => $delivery->lastname, '{delivery_address1}' => $delivery->address1, '{delivery_address2}' => $delivery->address2, '{delivery_city}' => $delivery->city, '{delivery_postal_code}' => $delivery->postcode, '{delivery_country}' => $delivery->country, '{delivery_state}' => $delivery->id_state ? $delivery_state->name : '', '{delivery_phone}' => $delivery->phone, '{invoice_firstname}' => $invoice->firstname, '{invoice_lastname}' => $invoice->lastname, '{invoice_address2}' => $invoice->address2, '{invoice_address1}' => $invoice->address1, '{invoice_city}' => $invoice->city, '{invoice_postal_code}' => $invoice->postcode, '{invoice_country}' => $invoice->country, '{invoice_state}' => $invoice->id_state ? $invoice_state->name : '', '{invoice_phone}' => $invoice->phone, '{order_name}' => sprintf("d", $order->id), '{shop_name}' => Configuration::get('PS_SHOP_NAME'), '{date}' => $order_date_text, '{carrier}' => (($carrier->name == '0') ? Configuration::get('PS_SHOP_NAME') : $carrier->name), '{payment}' => $order->payment, '{items}' => $itemsTable, '{total_paid}' => Tools::displayPrice($order->total_paid, $currency), '{total_products}' => Tools::displayPrice($order->getTotalProductsWithTaxes(), $currency), '{total_discounts}' => Tools::displayPrice($order->total_discounts, $currency), '{total_shipping}' => Tools::displayPrice($order->total_shipping, $currency), '{total_wrapping}' => Tools::displayPrice($order->total_wrapping, $currency), '{order_message}' => $order->order_message, '{currency}' => $currency->sign); Mail::Send($id_lang, $template, $subject, $templateVars, split(',', $this->_mails), NULL, $configuration['PS_SHOP_EMAIL'], $configuration['PS_SHOP_NAME'], NULL, NULL, dirname(__FILE__).'/mails/'); } et new_order.html que j'ai modifié, {order_message}est inséré en bas > <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Nouvelle commande Asie-Shopping</title> </head> <body style="padding:20px; font-family: Tahoma, Verdana, Arial, sans-serif; font-size: 11px;"> COMMANDE ASIE-SHOPPING n° {order_name} De: {firstname} {lastname} Date: {date} Mode de paiement: {payment} </pre> <table width="100%" cellpadding="5" cellspacing="0" style="border:1px solid #CCCCCC;">RéférenceQtéArticleP.U.Prix totalProduits{total_products}Réductions{total_discounts}Frais de port{total_shipping}Total{total_paid}</table> <br><br><br> Transporteur : <b>{carrier}</b><br><br><br><br><br><table width="100%" cellpadding="5" cellspacing="0" style="border:1px solid #CCCCCC;">Adresse de facturationAdresse de livraison{invoice_firstname} {invoice_lastname} {invoice_address1} {invoice_address2} {invoice_city} {invoice_postal_code} {invoice_country} {invoice_state} {invoice_phone}{delivery_firstname} {delivery_lastname} {delivery_address1} {delivery_address2} {delivery_city} {delivery_postal_code} {delivery_country} {delivery_state} {delivery_phone}</table> <br><br><br><br><br><table width="100%" cellpadding="5" cellspacing="0" style="border:1px solid #CCCCCC;">Message client:{order_message} </table> <br><br><br></body><br></ht J'ai refais un essai sans succésLe message est bien enregisté et apparait sur le recapitulatif de commande du compte client Link to comment Share on other sites More sharing options...
DrÿSs' Posted November 29, 2008 Share Posted November 29, 2008 En fait, c'est tout à fait normal : les messages de commandes constituent un objet métier à part, il n'existe donc pas de propriété order_message à un objet Order.Donc vous ciblez du vide !Rapidement, voici comment faire marcher votre ajout de code : $sql = 'SELECT `message` FROM `'._DB_PREFIX_.'message` WHERE `id_order` = '.$order->id.' ORDER BY `id_message` desc LIMIT 1'; $result = Db::getInstance()->ExecuteS($sql); $order_message = $result[0]['message']; En fait, on fait une requète dans la base de données pour prendre le dernier message de la commande.Puis on l'ajoute dans la liste des variables mails : '{order_message}' => $order_message, Ce code n'est pas très "propre", mais il est fonctionnel :-) Link to comment Share on other sites More sharing options...
jolvil Posted November 29, 2008 Author Share Posted November 29, 2008 Merci de l'avis de l'expert.J'ai placé le 1er code au dessus de // Filling-in vars for mail dans mailalerts.phpet '{order_message}' => $order_message,à la place de '{order_message}' => $order->order_message,mais cela ne marche pas .Est ce que j'ai bien placé le code?Ou faut il le placer?Merci (faut toujours que je pose des problemes pas simples! %-P ) Link to comment Share on other sites More sharing options...
DrÿSs' Posted November 30, 2008 Share Posted November 30, 2008 Votre intégration est correcte, cela devrait marcher...Pouvez-vous mettre en dessous du premier code cette ligne : Tools::dieObject($order_message); Et me copier-coller le résultat ?Merci. Link to comment Share on other sites More sharing options...
jolvil Posted November 30, 2008 Author Share Posted November 30, 2008 Bonjour!J'ai le message END sur une page blanche à la fin du processus de commande Link to comment Share on other sites More sharing options...
Jeff_30 Posted November 30, 2008 Share Posted November 30, 2008 Bonjour,Je viens de tester cette modification ; il est vrai qu’il est plus pratique, afin d’éviter de faire un oubli, de recevoir le message client fait au moment de la commande dans le mail.J’ai fait exactement les mêmes modifications demandées ci-dessous et à chaque étape j’ai les mêmes conclusions que : Jolvil.Pour la dernière modif, j’ai aussi le message END sur page blanche avec le header et la colonne de gauche.Pas de mail de confirmation de commande, par contre celle-ci se retrouve bien dans les historiques codés BO et FO (historique de commandes)... Link to comment Share on other sites More sharing options...
DrÿSs' Posted November 30, 2008 Share Posted November 30, 2008 Serait-il possible d'avoir un accès FTP à l'un de vos comptes (jolvil ou cameleon), ça sera plus rapide !Doit yavoir un tout petit truc qui coince, pas grand chose. Link to comment Share on other sites More sharing options...
Korn651 Posted November 30, 2008 Share Posted November 30, 2008 Bonjour, Merci de partager avec nous le résultat si vous y arrivez, parce que justement je cherche à faire la même chose que vous.Cordialement,Korn651 Link to comment Share on other sites More sharing options...
DrÿSs' Posted November 30, 2008 Share Posted November 30, 2008 Bon, il semblerait qu'il faudrait que je dorme d'avantage...J'avais oublié la ligne la plus importante dans le code que j'ai donné !Jai corrigé cela (message édité), ainsi que sur les boutiques de jolvil et cameleon.Ca devrait fonctionner pour vous aussi Korn651, en suivant mon précédent message. Link to comment Share on other sites More sharing options...
Jeff_30 Posted November 30, 2008 Share Posted November 30, 2008 Ca fonctionne parfaitement,Merci. Link to comment Share on other sites More sharing options...
jolvil Posted November 30, 2008 Author Share Posted November 30, 2008 Oui j'ai recu le message moi aussi donc ca fonctionneMerci de vous être penché sur le probleme!et bonne nuit ! Link to comment Share on other sites More sharing options...
Korn651 Posted December 1, 2008 Share Posted December 1, 2008 Bonjour,Ca ne marche pas chez moi : le fichier /template/fr/new_order.html ne se met pas à jour quand je reçois un mail... c'est toujours l'ancienne version. Bizarre ! Une idée ? Link to comment Share on other sites More sharing options...
Jeff_30 Posted December 1, 2008 Share Posted December 1, 2008 Korn651,As tu bien modifié ton fichier qui se trouve dans :modules/mailalerts/mails/fr/new_order.html et rajouter :{order_message} Link to comment Share on other sites More sharing options...
jolvil Posted December 1, 2008 Author Share Posted December 1, 2008 J'ai ajouté le fichier new_order.html à telecharger dans le premier post.Ca marche très bien tu dois faire une petite erreur quelque part. Link to comment Share on other sites More sharing options...
Korn651 Posted December 2, 2008 Share Posted December 2, 2008 Salut merci pour tes fichiers, mais je reçois toujours un eMail qui indique qu'une commande a été passée, mais cet eMail n'a pas la même forme que new_order.html ! C'est vraiment étrange... quel serait la source du template de mon mail si c'est pas new_order.html ? Link to comment Share on other sites More sharing options...
jolvil Posted December 2, 2008 Author Share Posted December 2, 2008 l'email est envoyé sous 2 formes: texte et html Link to comment Share on other sites More sharing options...
Korn651 Posted December 2, 2008 Share Posted December 2, 2008 Ah en fait j'ai compris, le template source de l'eMail utilisé se trouve dans boutique/mails/fr/new_order.htmlEt celui qui se trouve dans /modules ne sert pas en fait.C'est une erreur de ma version peut-être ? Je sais pas laquelle c'est... Link to comment Share on other sites More sharing options...
Korn651 Posted December 2, 2008 Share Posted December 2, 2008 C'est pas possible ce truc Link to comment Share on other sites More sharing options...
Jeff_30 Posted December 2, 2008 Share Posted December 2, 2008 Korn651 reprend tout depuis le début :Tout se passe dans : modules/mailalerts/mails/ Link to comment Share on other sites More sharing options...
jolvil Posted December 2, 2008 Author Share Posted December 2, 2008 tu es sur la V1, la V1.1 a été modifiéenew_order.html etait dupliqué dans le dossier mails à l'installation du module, ce qui n'est plus le cas avec la V1.1 Link to comment Share on other sites More sharing options...
Korn651 Posted December 2, 2008 Share Posted December 2, 2008 Mince... Je me disais bien que j'avais tout fait et que ça allait pas pourtant.C'est chaud de faire une mise à jour ? Link to comment Share on other sites More sharing options...
Jeff_30 Posted December 2, 2008 Share Posted December 2, 2008 Je te déconseille de passer sur la beta3 en production surtout si tu veux utiliser toutes les nouvelles fonctions.Certain fichiers sont à récupérer sur le SVN et soit attentif aussi bug traker.Après c’est à toi de voir si tu es capable de faire face aux divers petits bug qui existent encore. Mais la mise en production de la beta3 n’est pas conseillée. Link to comment Share on other sites More sharing options...
DrÿSs' Posted December 3, 2008 Share Posted December 3, 2008 A noter que la fonctionnalité a été inclue de base sur le SVN et donc dispo pour la beta4. Link to comment Share on other sites More sharing options...
jolvil Posted December 3, 2008 Author Share Posted December 3, 2008 bonne nouvelle! :-) Link to comment Share on other sites More sharing options...
Jeff_30 Posted December 3, 2008 Share Posted December 3, 2008 Yes, c'est cool... 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