presta'luv Posted November 6, 2012 Share Posted November 6, 2012 Bonjour à tous, Je cherche simplement à trouver la formule qui permet de récupérer le lien vers les fiches produits d'une commande, dans un mail automatique. Je m'explique : En changeant le statut d'une commande (par exemple "livré"), je voudrais rajouter dans le template du mail "Livré" (dossier >mails > FR), une phrase afin de récupérer le lien vers le (ou les) produit commandé. J'ai vu que la formule {shop_url} récupérai le lien url de la boutique, quelle est celle qui permet de récupérer le lien des produits ? J'ai essayé {product_url} et {product_link}, ça ne fonctionne pas. Merci à tous ceux qui ont pris le temps de me lire, Link to comment Share on other sites More sharing options...
Zun Posted November 30, 2012 Share Posted November 30, 2012 Bonsoir, J'ai cherché dans les template des mails de Prestashop, mais lorsqu'un client passe commande, seul le nom des produits est présent. Je n'ai pas de réponse. Ce serai très intéressant d'avoir une technique pour créer ce genre de liens afin de proposer au client de laisser un avis sur la page du produit commandé. Je vais suivre le fil... Link to comment Share on other sites More sharing options...
Zun Posted April 28, 2013 Share Posted April 28, 2013 Toujours pas de solution trouvée ? Link to comment Share on other sites More sharing options...
presta'luv Posted April 29, 2013 Author Share Posted April 29, 2013 Non toujours pas, obligé de passer par un module d'envoi de messages pour déposer un avis.. Link to comment Share on other sites More sharing options...
Zun Posted April 29, 2013 Share Posted April 29, 2013 Dommage, merci. ;-) Link to comment Share on other sites More sharing options...
Gwendall Posted November 29, 2013 Share Posted November 29, 2013 Bonjour, Je souhaiterai faire la même chose. Avoir un lien vers la fiche produit sur l'email de commande afin de pouvoir déposer un avis. Presta’Luv, de quel module parles-tu ? "Non toujours pas, obligé de passer par un module d'envoi de messages pour déposer un avis." Merci de votre aide. Link to comment Share on other sites More sharing options...
Patrick_64 Posted December 16, 2013 Share Posted December 16, 2013 Bonjour, je me permets de me rajouter à ce pots, j'ai le même besoin, afin de faciliter l'ajout des commentaires client je voudrais mettre le lien des produits soit dans le mail , soit dans les récaps de commandes clients. Quand il demande le détail de sa commande, il y a bien le titre du produit, on doit bien pouvoir récupérer l'url quelque part. Merci Link to comment Share on other sites More sharing options...
hubair Posted December 17, 2013 Share Posted December 17, 2013 Idem, si quelqu'un à une piste pour remonter le lien vers les articles commandés dans un mail...Ce serait chouet ;-) Link to comment Share on other sites More sharing options...
lmdc Posted January 30, 2014 Share Posted January 30, 2014 Pas de solution apparemment ? Cette fonctionnalité serait pourtant très intéressante à exploiter... Link to comment Share on other sites More sharing options...
Patrick_64 Posted January 30, 2014 Share Posted January 30, 2014 Peut-être que ceux qui ont trouvé le moyen, vendent leur module . . . . qui sait . . . . Link to comment Share on other sites More sharing options...
hubair Posted January 30, 2014 Share Posted January 30, 2014 J'ai finalement résolu le problème avec ce module :http://www.prestashop.com/forums/topic/262069-modulo-enviar-solicitud-de-comentario-ps15/ Je l'ai configuré pour qu'au passage d'une commande au statut "livré" il envoi un mail automatique de demande d'avis.Et pour le lien vers les produits, voici le code que j'ai modifié dans sendreviewrequest.php : foreach($this->getProducts($order) as $review_product) { $product = new Product((int)$review_product['id_product'], true, (int)$id_lang); $image = Image::getCover((int)$review_product['id_product']); $product_link = Context::getContext()->link-> getProductLink((int)$review_product['id_product'], $product->link_rewrite, $product->category, $product->ean13, $id_lang, (int)$order->id_shop, 0, true); $image_url = Context::getContext()->link->getImageLink($product->link_rewrite, $review_product['id_product'], $image['id_image'].'-home_default'); $file_attachment .= array('content' => $image_url, 'name' => $product->name, 'mime' => 'image/jpg'); $products_list .= '<tr> <td style="padding: 0.6em 0.4em;width: 25%;text-align: center;background-color: #eee;"><img src="'.$image_url.'" title="'.$product->name.'" alt="'.$product->name.'" /></td> <td style="padding: 0.6em 0.4em;width: 75%;text-align: left;background-color: #eee;"><strong><a href="'.$product_link.'#idTab5" title="'.$this->l('Click to go to product page').'">'.$product->name.'</a></strong></td> </tr>'; } Mis en place sur http://www.planetepartitions.com/ J’espère que ça pourra en aider certains... Car moi, j'ai mis du temps à trouver la solution qui me convenait. Link to comment Share on other sites More sharing options...
lmdc Posted January 30, 2014 Share Posted January 30, 2014 mon idée était d'utiliser le statut Livré pour envoyer automatiquement un mail au client, qui l'invite à liker son produit sur facebook Link to comment Share on other sites More sharing options...
Galadrum Posted December 8, 2015 Share Posted December 8, 2015 Bonjour, Ce post date un peu mais j'avais aussi trouvé ce module très pratique qui fonctionne bien sauf pour l'image, elle ne s'affiche jamais dans les mails (prestashop 1.6.0.9). J'ai repris ce code mais sans succès J'ai finalement résolu le problème avec ce module :http://www.prestashop.com/forums/topic/262069-modulo-enviar-solicitud-de-comentario-ps15/ Je l'ai configuré pour qu'au passage d'une commande au statut "livré" il envoi un mail automatique de demande d'avis.Et pour le lien vers les produits, voici le code que j'ai modifié dans sendreviewrequest.php : foreach($this->getProducts($order) as $review_product) { $product = new Product((int)$review_product['id_product'], true, (int)$id_lang); $image = Image::getCover((int)$review_product['id_product']); $product_link = Context::getContext()->link-> getProductLink((int)$review_product['id_product'], $product->link_rewrite, $product->category, $product->ean13, $id_lang, (int)$order->id_shop, 0, true); $image_url = Context::getContext()->link->getImageLink($product->link_rewrite, $review_product['id_product'], $image['id_image'].'-home_default'); $file_attachment .= array('content' => $image_url, 'name' => $product->name, 'mime' => 'image/jpg'); $products_list .= '<tr> <td style="padding: 0.6em 0.4em;width: 25%;text-align: center;background-color: #eee;"><img src="'.$image_url.'" title="'.$product->name.'" alt="'.$product->name.'" /></td> <td style="padding: 0.6em 0.4em;width: 75%;text-align: left;background-color: #eee;"><strong><a href="'.$product_link.'#idTab5" title="'.$this->l('Click to go to product page').'">'.$product->name.'</a></strong></td> </tr>'; } Mis en place sur http://www.planetepartitions.com/ J’espère que ça pourra en aider certains... Car moi, j'ai mis du temps à trouver la solution qui me convenait. Quelqu'un aurait une idée ? Link to comment Share on other sites More sharing options...
Romano__victory Posted July 27, 2021 Share Posted July 27, 2021 Bonjour, il y a une solution qui permet de récupérer le lien vers la fiche produits en passant par les override pour surcharger quelque classe . Link to comment Share on other sites More sharing options...
Timéo007 Posted September 28, 2021 Share Posted September 28, 2021 @Galadrum, j’ai testé ceci mais mon problème n’est pas encore résolu, est-ce que vous avez une autre astuce? Link to comment Share on other sites More sharing options...
Romano__victory Posted October 3, 2021 Share Posted October 3, 2021 (edited) On 9/28/2021 at 4:07 PM, Timéo007 said: @Galadrum, j’ai testé ceci mais mon problème n’est pas encore résolu, est-ce que vous avez une autre astuce? Salut. Pour avoir un lien vers les affiches produits. Il faut faire quelques étapes : 1 - Crée un override pour les 2 fichiers "OrderHistory.php" et "Mail.php". 2 - Dans override/classes/order/OrderHistory.php : Créer le bouton dans la fonction sendEmail() : <?php public function sendEmail($order, $template_vars = false){ /................................................/ $products = $order->getProducts(); /************************************************/ /**Insérer ce code juste après*/ foreach($products as &$product) { array_push($product_id, $product['product_id']); array_push($product_name, $product['product_name']); array_push($product_buttom, '<button class="button-avis" style="background-color: #DCDCDC;">Donner mon avis</button>'); array_push($image_dir,_PS_IMG_DIR_.'p/'.$product['image']->getExistingImgPath().'.jpg'); array_push($product_link,Context::getContext()->link->getProductLink( (int)$product['product_id'], $product['link_rewrite'], $product['category'], $product['ean13'] )); } for ($i=0; $i < $data['{nbProducts}']; $i++) { $data['{product_id_'.$i.'}'] = $product_id[$i]; $data['{product_name_'.$i.'}'] = $product_name[$i]; $data['{product_buttom_'.$i.'}'] = $product_buttom[$i]; $data['{image_dir_'.$i.'}'] = $image_dir[$i]; $data['{product_link_'.$i.'}'] = $product_link[$i]; } /***************************************************/ 3 - Dans override/classes/Mail.php : <?php public static function Send($id_lang, $template, $subject, $template_vars, $to, $to_name = null, $from = null, $from_name = null, $file_attachment = null, $mode_smtp = null, $template_path = _PS_MAIL_DIR_, $die = false, $id_shop = null, $bcc = null, $reply_to = null) { /.............................../ if (isset($reply_to) && $reply_to) $message->setReplyTo($reply_to); $template_vars = array_map(array('Tools', 'htmlentitiesDecodeUTF8'), $template_vars); $template_vars = array_map(array('Tools', 'stripslashes'), $template_vars); /*****************************************************/ /*Insérer ce portion de code juste après!*/ for ($i=0; $i < $template_vars['{nbProducts}']; $i++) { $template_vars['{product_id}'] .= $template_vars['{product_id_'.$i.'}'].'<br>'; $template_vars['{product_name}'] = '<div class="product_name col-sm-6" style="margin-left:15px;width:50%;margin-bottom:10px;"><p>'.$template_vars['{product_name_'.$i.'}'].'</p></div>'; $template_vars['{product_buttom}'] = '<div class="product_buttom col-sm-3" style="margin-top:15px;width:30%;"><a href="'.$template_vars['{product_link_'.$i.'}'].'">'.$template_vars['{product_buttom_'.$i.'}'].'</a></div>'; $template_vars['{image_dir}'] .= $template_vars['{image_dir_'.$i.'}']; $template_vars['{product_image}'] ='<div class="product_image col-sm-3" style="margin-top:14px;"><img style="display:block;margin-left:auto;margin-right:auto;" src="'.$message->attach(new Swift_Message_EmbeddedFile(new Swift_File($template_vars['{image_dir_'.$i.'}']), null, ImageManager::getMimeTypeByExtension($template_vars['{image_dir_'.$i.'}']))).'"width="55px" height="55px" /></div>'; $template_vars['{products}'] .='<div class="products">'.$template_vars['{product_image}'].''.$template_vars['{product_name}'].''.$template_vars['{product_buttom}'].'</div>'; } /*******************************************************/ 4 - Créer votre Template de mail dans le dossier mails/ : ajouter par exemple avis.html : Insérer ce bloc de code dedans : <div class="box-product" style="border:1px solid #D6D4D4;width:100%;"> {products} </div> Ajuster l'affichage après par des propriétés CSS. Edited October 3, 2021 by Romano__victory (see edit history) Link to comment Share on other sites More sharing options...
Timéo007 Posted October 7, 2021 Share Posted October 7, 2021 Merci beaucoup, je vais essayé ceci 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