Kevin Rolin-Benitez Posted June 29, 2021 Share Posted June 29, 2021 Bonjour ! Je fais à nouveau appel à votre aide sur un petit soucis que je rencontre, j'y suis presque mais il me reste une valeur à récupérer. Je souhaite récupérer le nom du code promo qui a été utilisé. J'ai réussi à récupérer la réduction jusqu'ici mais pas le nom. Je me place dans le invoice.tpl et je dois remplacer "LE NOM DU BON DE REDUCTION A PLACER ICI" <table width="100%" id="body" border="0" cellpadding="0" cellspacing="0" style="margin:0;"> <!-- Promo utilisée --> <tr> <td colspan="12"> <!-- DEBUT LA OU DOIT APPARAITRE LE TEXTE : ex mail client $customer_email--> <table style="width: 100%"> {if $order_invoice->total_discount_tax_incl > 0} <tr style="line-height:5px;"> <td style="text-align: left; font-weight: bold">{l s='Code de réduction utilisé:' pdf='true'} :</td> <td style="text-align: left; font-weight: bold">LE NOM DU BON DE REDUCTION A PLACER ICI</td> <td style="width: 15%; text-align: left;">-{displayPrice currency=$order->id_currency price=($order_invoice->total_discount_tax_incl + $shipping_discount_tax_incl)}</td> </tr> {/if} </table> <!-- FIN LA OU DOIT APPARAITRE LE TEXTE--> </td> </tr> <tr> <td colspan="12" height="30"> </td> </tr> </table> Si vous avez une idée du nom de la variable, je vous remercie ! Cordialement. Link to comment Share on other sites More sharing options...
Shonen Posted June 29, 2021 Share Posted June 29, 2021 Salut, Le template Invoice.tpl ne récupère que la table orders_details, laquelle ne comprend que la réduction %. Le controller pour la page Orders utilise la fonction $order->getDiscounts si ça peut aider. Il faudrait ajouter cette info au controller des factures. Par contre sur du 1.7 aucune idée d'où modifier le controller qui crée les factures... 1 Link to comment Share on other sites More sharing options...
Kevin Rolin-Benitez Posted June 29, 2021 Author Share Posted June 29, 2021 Merci pour la réponse ! Normalement je dois aller fouiller dans /classes/pdf/HTMLTemplateInvoice.php Pour récupérer les messages j'avais fait ça dans $data = array( ... ) (~l.320) 'messages' => Message::getMessagesByOrderId($this->order->id), Puis dans mon invoice.tpl <div style="line-height: 1pt">Messages :</div> <table style="width: 100%"> {assign var=messages value=Message::getMessagesByCartId($order->id_cart)} {foreach $messages as $message} <tr> <td style="width: 15%"></td> <td style="width: 85%">{$message.message|nl2br}</td> </tr> {/foreach} </table> Du coup je dois comprendre comment fonctionne la fonction $order->getDiscounts et ce que je dois récupérer... Link to comment Share on other sites More sharing options...
Raziorky Posted June 29, 2021 Share Posted June 29, 2021 (edited) Bonjour, Si tu fais un {foreach from=$cart_rules item=cart_rule} {$cart_rule.name} {/foreach} tu récupères le nom du code promo Edited June 29, 2021 by Raziorky (see edit history) Link to comment Share on other sites More sharing options...
Kevin Rolin-Benitez Posted June 29, 2021 Author Share Posted June 29, 2021 (edited) Bonjour, malheureusement cela ne fonctionne pas. J'ai d'abord modifié mon HTMLTemplateInvoice.php 'discounts' => Discount::getDiscountsByCartId($this->order->id), (ainsi que avec ByOrderID ça ne fonctionne pas non plus) J'ai une erreur (la facture n'est pas dégénérée). Et ce, même si dans invoice.tpl je place : <table style="width: 100%"> {assign var=discounts value=Discount::getDiscountsByCartId($order->id_cart)} {foreach $discounts as $discount} <tr> <td style="width: 15%"></td> <td style="width: 85%">{$discount.discount|nl2br}</td> </tr> {/foreach} </table> Vraiment pas facile de récupérer cet intitulé 🤕. Edited June 29, 2021 by Kevin Rolin-Benitez (see edit history) Link to comment Share on other sites More sharing options...
Raziorky Posted June 29, 2021 Share Posted June 29, 2021 Tu utilises quelle version de prestashop ? Link to comment Share on other sites More sharing options...
Kevin Rolin-Benitez Posted June 30, 2021 Author Share Posted June 30, 2021 16 hours ago, Raziorky said: Tu utilises quelle version de prestashop ? Je suis sur du 1.7.4.2 (désolé pour la réponse en retard, merci pour l'aide). Link to comment Share on other sites More sharing options...
Raziorky Posted June 30, 2021 Share Posted June 30, 2021 Sur une version 1.7.4.2 vierge, en utilisant le code suivant dans le invoice.tpl j'obtiens le ou les nom(s) des codes promos utilisés lors de la commande, ainsi que le montant HT et TTC appliqué par le code : {foreach from=$cart_rules item=cart_rule} {$cart_rule.name} //Nom du code {displayPrice currency=$order->id_currency price=$cart_rule.value_tax_excl} //Réduction HT {displayPrice currency=$order->id_currency price=$cart_rule.value} //Réduction TTC {/foreach} Ça ne marche pas pour toi ? 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