dubosd33 Posted April 3, 2015 Share Posted April 3, 2015 (edited) Bonjour, Je partage et cherche en même temps comment avancer sur la problématique pour créer un Envoi automatique d'e-mail au transporteur après validation d'une commande. Je veux envoyer un e-mail au transporteur car c'est un "retrait en magasin X", "retrait en magasin Y", "retrait en magasin Z". Je n'ai pas trouver de module gratuit pouvant répondre à mes attentes, donc je vais rentrer dans le code. Dans un premier temps je pense que je vais adapter le module "Alerte mail" pour envoyer un mail au transporteur (magasin) en fonction du choix du transporteur lors de la commande. Dans un deuxième temps je rajouterai une zone de saisie e-mail dans le module transporteur. Si quelqu'un à déjà avancer sur un sujet similaire je suis preneur de toutes infos et développement. Base : Prestashop 1.6 Edited April 3, 2015 by dubosd33 (see edit history) Link to comment Share on other sites More sharing options...
Mediacom87 Posted April 3, 2015 Share Posted April 3, 2015 Bonjour, il existe un module pour cela http://www.prestatoolbox.fr/transport-logistique/241-envoyer-les-commandes-par-email-aux-transporteurs.html Link to comment Share on other sites More sharing options...
fred-vinapresta Posted April 4, 2015 Share Posted April 4, 2015 Bonjour, vous pouvez faire un module utilisant le hook hookActionValidateOrder Avec le paramètre $params de la function du hook dans votre module, vous pourrez récuperer des infos relatives à la commande et faire l'envoi de l'email en utilisant la methode send de la classe Mail.php 1 Link to comment Share on other sites More sharing options...
dubosd33 Posted April 6, 2015 Author Share Posted April 6, 2015 Pour la partie mail c'est fait : dans modules >> mailalertes >> mailalertes.php ligne : 444 ajouter le code en rouge if ($dir_mail) Mail::Send( $mail_id_lang, 'new_order', sprintf(Mail::l('New order : #%d - %s', $mail_id_lang), $order->id, $order->reference), $template_vars, $merchant_mail, null, $configuration['PS_SHOP_EMAIL'], $configuration['PS_SHOP_NAME'], null, null, $dir_mail, null, $id_shop ); } ////////////// mail au transporteur sélectionné /////////////////////////////////////////////// if($carrier->name=='Boutique 1') $merchant_mails='[email protected]'; if($carrier->name=='Boutique 2') $merchant_mails='[email protected]'; if($carrier->name=='Boutique 1' || $carrier->name=='Boutique 2'){ // Default language $mail_id_lang = $id_lang; $mail_iso = $iso; // Use the merchant lang if he exists as an employee $results = Db::getInstance()->executeS(' SELECT `id_lang` FROM `'._DB_PREFIX_.'employee` WHERE `email` = \''.pSQL($merchant_mail).'\' '); if ($results) { $user_iso = Language::getIsoById((int)$results[0]['id_lang']); if ($user_iso) { $mail_id_lang = (int)$results[0]['id_lang']; $mail_iso = $user_iso; } } $dir_mail = false; if (file_exists(dirname(__FILE__).'/mails/'.$mail_iso.'/new_order.txt') && file_exists(dirname(__FILE__).'/mails/'.$mail_iso.'/new_order.html')) $dir_mail = dirname(__FILE__).'/mails/'; if (file_exists(_PS_MAIL_DIR_.$mail_iso.'/new_order.txt') && file_exists(_PS_MAIL_DIR_.$mail_iso.'/new_order.html')) $dir_mail = _PS_MAIL_DIR_; if ($dir_mail) Mail::Send( $mail_id_lang, 'new_order', sprintf(Mail::l('Retrait en magasin chez '.$carrier->name.' : #%d - %s', $mail_id_lang), $order->id, $order->reference), $template_vars, $merchant_mail, null, $configuration['PS_SHOP_EMAIL'], $configuration['PS_SHOP_NAME'], null, null, $dir_mail, null, $id_shop );} /////////// Fin mail au transporteur sélectionné /////////////////////////////////////// } public function hookActionProductOutOfStock($params) 1 Link to comment Share on other sites More sharing options...
Oron Posted April 6, 2015 Share Posted April 6, 2015 Bonjour Votre topic semble plus parler de développement que autre sujet. Je déplace votre topic dans le forum Développement et adaptation de Prestashop Link to comment Share on other sites More sharing options...
dubosd33 Posted April 7, 2015 Author Share Posted April 7, 2015 Merci Oron. Link to comment Share on other sites More sharing options...
honeyre Posted April 7, 2015 Share Posted April 7, 2015 Nice!http://gerblog.pl Link to comment Share on other sites More sharing options...
zaouss Posted July 2, 2020 Share Posted July 2, 2020 On 4/6/2015 at 9:37 PM, dubosd33 said: Pour la partie mail c'est fait : dans modules >> mailalertes >> mailalertes.php ligne : 444 ajouter le code en rouge if ($dir_mail) Mail::Send( $mail_id_lang, 'new_order', sprintf(Mail::l('New order : #%d - %s', $mail_id_lang), $order->id, $order->reference), $template_vars, $merchant_mail, null, $configuration['PS_SHOP_EMAIL'], $configuration['PS_SHOP_NAME'], null, null, $dir_mail, null, $id_shop ); } ////////////// mail au transporteur sélectionné /////////////////////////////////////////////// if($carrier->name=='Boutique 1') $merchant_mails='[email protected]'; if($carrier->name=='Boutique 2') $merchant_mails='[email protected]'; if($carrier->name=='Boutique 1' || $carrier->name=='Boutique 2'){ // Default language $mail_id_lang = $id_lang; $mail_iso = $iso; // Use the merchant lang if he exists as an employee $results = Db::getInstance()->executeS(' SELECT `id_lang` FROM `'._DB_PREFIX_.'employee` WHERE `email` = \''.pSQL($merchant_mail).'\' '); if ($results) { $user_iso = Language::getIsoById((int)$results[0]['id_lang']); if ($user_iso) { $mail_id_lang = (int)$results[0]['id_lang']; $mail_iso = $user_iso; } } $dir_mail = false; if (file_exists(dirname(__FILE__).'/mails/'.$mail_iso.'/new_order.txt') && file_exists(dirname(__FILE__).'/mails/'.$mail_iso.'/new_order.html')) $dir_mail = dirname(__FILE__).'/mails/'; if (file_exists(_PS_MAIL_DIR_.$mail_iso.'/new_order.txt') && file_exists(_PS_MAIL_DIR_.$mail_iso.'/new_order.html')) $dir_mail = _PS_MAIL_DIR_; if ($dir_mail) Mail::Send( $mail_id_lang, 'new_order', sprintf(Mail::l('Retrait en magasin chez '.$carrier->name.' : #%d - %s', $mail_id_lang), $order->id, $order->reference), $template_vars, $merchant_mail, null, $configuration['PS_SHOP_EMAIL'], $configuration['PS_SHOP_NAME'], null, null, $dir_mail, null, $id_shop );} /////////// Fin mail au transporteur sélectionné /////////////////////////////////////// } public function hookActionProductOutOfStock($params) J'ai un peu bidouillé le code, mais je suis arrivé au résultat que je voulais sur Prestashop 1.7.6.5, envoyer un email au transporteur ( magasin pour mon cas ) si le client choisi celui-ci grace à votre code, donc je vous remercie infiniment !! BIG UP ! 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