assonance507 Posted July 31, 2018 Share Posted July 31, 2018 Bonjour, sur une de mes template de mail, lorsque l'on change l'état de commande le mail est bien envoyé. (order_conf.html) Seul problème, plutôt que d'avoir les noms des produits etc... ceux sont les balises qui sont affichées. {payment} , {date} , {products} , {discounts} , {total_products} Pourriez-vous me venir en aide ? Je suis sur Prestashop 1.6.1.18 Si quelqu'un a déjà rencontré ce problème Link to comment Share on other sites More sharing options...
Eolia Posted July 31, 2018 Share Posted July 31, 2018 avez-vous des overrides sur les classes order, order-history ou les controleurs associés ? Car ces variables sont affectées depuis ces fichiers. Link to comment Share on other sites More sharing options...
assonance507 Posted July 31, 2018 Author Share Posted July 31, 2018 Oui, une override sur Order.php et une sur OrderInvoice.php Mais aucune ligne qui modifierais ces variables sur ces 2 fichiers. Link to comment Share on other sites More sharing options...
Eolia Posted July 31, 2018 Share Posted July 31, 2018 Et sur la classe PaymentModule.php, rien non plus ? Link to comment Share on other sites More sharing options...
assonance507 Posted July 31, 2018 Author Share Posted July 31, 2018 non, aucun override sur PaymentModule.php peut-être que la condition pour afficher ces variables n'est peut-être pas respectée : if ($id_order_state != Configuration::get('PS_OS_ERROR') && $id_order_state != Configuration::get('PS_OS_CANCELED') && $this->context->customer->id) mais je ne sais pas à quoi correspondent PS_OS_ERROR et PS_OS_CANCELLED. Que ce soit dans une nouvelle commande ou quand l'on renvoi le mail idem ceux sont les balises qui apparaissent. Link to comment Share on other sites More sharing options...
Eolia Posted July 31, 2018 Share Posted July 31, 2018 ces 2 variables sont les statuts commande annulée ou erreur de paiement Link to comment Share on other sites More sharing options...
doekia Posted July 31, 2018 Share Posted July 31, 2018 Avez vous vérifié les template mail - régulièrement Prestashop a fournit des template corrompu dans les packs traductions Les templates contiennent dans ce cas la \{variable\} au lieu de {variable} Link to comment Share on other sites More sharing options...
assonance507 Posted July 31, 2018 Author Share Posted July 31, 2018 oui, les variables dans les template ne sont pas corrompues. les variables {total_paid} et {order_name} sont quant à elles inscrites correctement. DÉTAILS DE LA COMMANDE Commande : ***** passée le {date}Paiement : {payment} Référence Produit Prix unitaire Quantité Prix total {products} {discounts} Produits {total_products} Réductions {total_discounts} Paquet cadeau {total_wrapping} Livraison {total_shipping} TVA totale {total_tax_paid} Total payé 25,52 € LIVRAISON Transporteur : {carrier}Paiement : {payment} ADRESSE DE LIVRAISON {delivery_block_html} ADRESSE DE FACTURATION {invoice_block_html} Link to comment Share on other sites More sharing options...
assonance507 Posted July 31, 2018 Author Share Posted July 31, 2018 Après plusieurs tests il me semble que les mails envoyés via les états de commande ne passent pas par la classe PaymentModule.php donc les variables ne sont pas affectées aux mails. En revanche lorsque l'on passe une commande avec un module de paiement le mail envoyé est bien complet. Je vais donc changer le template de mail envoyé pour les états. Il serait tout de même intéressant de pouvoir inclure ces variables dans les emails. En tout cas merci à doekia et eolia pour vos réponses ! Bonne journée. Link to comment Share on other sites More sharing options...
Eolia Posted July 31, 2018 Share Posted July 31, 2018 si commande -> paymentModule -> mail order_conf si changement d'état ultérieur -> orderHistory -> mail order_changed ou shipped ou canceled (ca dépend de l'état affecté) Link to comment Share on other sites More sharing options...
doekia Posted July 31, 2018 Share Posted July 31, 2018 Attends, je crois comprendre. Tu veux sur un autre état que la création de commande que les variables définie dans seulement ce dernier cas existent? Désolé, sur les états c'est la function OrderHistory::addWithMail() et celle-ci ne déclare pas les variables du récap de commande A toi de te faire un override si besoin Link to comment Share on other sites More sharing options...
Knowband Plugins Posted August 13, 2018 Share Posted August 13, 2018 Vous pouvez créer votre propre modèle personnalisé qui peut être envoyé aux clients lorsque l'état de la commande est modifié. En cas de modèle de confirmation de commande, le client peut être confondu entre le courrier de confirmation de commande ou le message de mise à jour d'état. Utilisez l'exemple suivant pour utiliser les espaces réservés utilisés dans le modèle de confirmation de commande mail. $order = new Order((int)$order->id); //Fetch the Order object of the current order $invoice = new Address((int)$order->id_address_invoice); $delivery = new Address((int)$order->id_address_delivery); $delivery_state = $delivery->id_state ? new State((int)$delivery->id_state) : false; $invoice_state = $invoice->id_state ? new State((int)$invoice->id_state) : false; $customer = new Customer($order->id_customer); $data = array( '{firstname}' => $customer->firstname, '{lastname}' => $customer->lastname, '{email}' => $customer->email, '{delivery_block_txt}' => $this->_getFormatedAddress($delivery, "\n"), '{invoice_block_txt}' => $this->_getFormatedAddress($invoice, "\n"), '{delivery_block_html}' => $this->_getFormatedAddress($delivery, '<br />', array( 'firstname' => '<span style="font-weight:bold;">%s</span>', 'lastname' => '<span style="font-weight:bold;">%s</span>') ); ); protected function _getFormatedAddress(Address $the_address, $line_sep, $fields_style = array()) { return AddressFormat::generateAddress($the_address, array('avoid' => array()), $line_sep, ' ', $fields_style); } 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