cyssoo Posted March 9, 2015 Share Posted March 9, 2015 (edited) Salut à tous ! Hébergeur : OVH dédié entreprise Version de Prestashop : 1.6.0.11 Voici ma problématique : pour un client j'ai besoin d'afficher le transporteur de la commande x dans chaque mail envoyé lorsque la commande change d'état. Je dispose d'un module super sympa qui permet à l'administrateur de changer le transporteur depuis le back-office, mais je souhaite que lorsque la commande change d'état, le mail envoyé (du genre in_transit) précise le transporteur, qu'il aie changé ou non. Je me sens un peu nul à demander ça là où pas mal de personnes ont déjà parlé de la class mail sur le forum, et je l'utilise déjà sur certains modules custom, mais récupérer l'info du transporteur pour une commande précise, et renvoyer la valeur dans un template de mail, ben là je sèche un peu... J'ai hésité à faire une requête à la base de données pour récupérer l'info, mais après faut bien l'envoyer dans le template de mail, et je doute que ce soit à la fois le plus propre et le plus facile... Donc merci de vos idées et/ou de vos infos ! P.S. : et si au passage vous savez comment virer tous les prix partout sur Prestashop tout en conservant le processus de commande, ça m'aiderait bien, il y en a toujours un ou deux qui traîne, notamment sur le mail de conf de commande. Encore merci ! Edited March 10, 2015 by cyssoo (see edit history) Link to comment Share on other sites More sharing options...
fred-vinapresta Posted March 9, 2015 Share Posted March 9, 2015 Bonjour, il faudrait overrider la fonction addWithMail de la classe Order/OrderHistory.php. avant la fonction de l'envoi de mail, il faudrait ajouter quelquechose comme if ($this->id_order == x) { $id_carrier = $order->id_carrier; $carrier = new Carrier((int)$id_carrier, $order->id_lang); $data['{carrier_name}'] = $carrier->name; } Link to comment Share on other sites More sharing options...
J. Danse Posted March 9, 2015 Share Posted March 9, 2015 En termes de surcharges, je serais plus partant d'intégrer cette modification: https://github.com/PrestaShop/PrestaShop/pull/2554/files Ainsi, vous aurez la possibilité d'ajouter un module ayant ce type de point d'accroche: public function hookActionGetExtraMailTemplateVars($params) { $template = $params['template']; $template_vars = $params['template_vars']; $extra_template_vars = $params['extra_template_vars']; if ($template == 'in_transit') $params['extra_template_vars']['{carrier}'] = $this->l('Carrier name'); } Cette proposition est établie sur GitHub et pourrait être intégrée par la suite dans PrestaShop (vous permettant ainsi de supprimer la surcharge par la suite). Link to comment Share on other sites More sharing options...
cyssoo Posted March 10, 2015 Author Share Posted March 10, 2015 (edited) OK, merci, voici ce que j'ai fait : J'ai fait une simple surcharge de la class orderHistory avec cette info (à partir de la ligne 390) : $id_carrier = $order->id_carrier; $carrier = new Carrier((int)$id_carrier, $order->id_lang); $data = array( '{lastname}' => $result['lastname'], '{firstname}' => $result['firstname'], '{id_order}' => (int)$this->id_order, '{carrier}' => $carrier->name, '{order_name}' => $order->getUniqReference() ); Le tout fonctionne bien, c'est nickel ! D'un autre côté, dans le cadre de développement de module, je vais utiliser la surcharge de la class mail proposée sur Github, elle m'aidera beaucoup et je la trouve même essentielle pour maîtriser totalement les variables sur les templates de mail. Merci à vous ! Edited March 10, 2015 by cyssoo (see edit history) 1 Link to comment Share on other sites More sharing options...
cinquante5 Posted October 6, 2015 Share Posted October 6, 2015 Bonjour et merci, Pourriez-vous détailler la mise en place ? De plus, comment afficher aussi le numéro de suivi ? À bientôt, 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