Au Coeur Du Web

Coeur Du Web référence en produits libre de droit ainsi que des produits testés ou estimés valoir un intérêt dans l'utilisation quotidiennes.

Insérer les messages Clients sur les factures Prestashop

Insérer les messages Clients sur les factures Prestashop

Si vous désirez insérer le message que le client a noté lors de l’achat (il est marqué lors de la select du transporteur) vous pouvez faire comme suit :

Insérer la ligne suivante dans HTMLTemplateInvoice.php qui se trouve dans => dossier: classes => dossier: pdf

'messages' => Message::getMessagesByOrderId($this->order->id),

exemple (dans mon cas, ligne 85) : 

ceci :

public function getHeader()   {
$this->assignCommonHeaderData();
     $this->smarty->assign(array('header' => Context::getContext()->getTranslator()->trans('Invoice', array(), 'Shop.Pdf')));
     return $this->smarty->fetch($this->getTemplate('header'));
}

devient ceci :

public function getHeader() {
$this->assignCommonHeaderData();
     $this->smarty->assign(array('messages' => Message::getMessagesByOrderId($this->order->id), 'header' => Context::getContext()->getTranslator()->trans('Invoice', array(), 'Shop.Pdf')));
     return $this->smarty->fetch($this->getTemplate('header'));
}

PUIS 

Si sous le lieu de livraison:

  • mettre les lignes suivantes dans le fichier “/themes/leNomDeVotreTheme/pdf/invoice.addresses-tab.tpl” 
{foreach $messages as $message}
<br />
<div style="text-align:center; border:solid 2px black">
<span>{$message.message|nl2br}</span>
</div>
{/foreach}

exemple (dans mon cas, ligne 33) : 

ceci: 

<td width="50%">{if $delivery_address}<span class="bold">{l s='Delivery Address' d='Shop.Pdf' pdf='true'}</span><br/><br/>
{$delivery_address}
{/if}
</td>

devient ceci :

<td width="50%">{if $delivery_address}<span class="bold">{l s='Delivery Address' d='Shop.Pdf' pdf='true'}</span><br/><br/>
{$delivery_address}
{/if}
{foreach $messages as $message}
<br />
<div style="text-align:center; border:solid 2px black">
<span>{$message.message|nl2br}</span>
</div>
  {/foreach}
</td>

Si vous voulez le mettre en en fin de page, sous le total:

  • mettre les ligne suivante dans le fichier “/themes/leNomDeVotreTheme/pdf/invoice.tpl” juste avant 
    <!-- Message privé -->
    <div style="line-height: 1pt">Messages :</div>
    <table style="width: 100%">
        {foreach $messages as $message}
        <tr>
            <td style="width: 15%"></td>
            <td style="width: 85%">{$message.message|nl2br}</td>
        </tr>
        {/foreach}
    </table>

Un récap du fichier avec le message et la référence chantier

<table id="addresses-tab" cellspacing="0" cellpadding="0">
    <tr>
        <td width="50%"><span class="bold">{l s='Billing Address' d='Shop.Pdf' pdf='true'}</span><br/><br/>
                {$invoice_address}
        </td>
        <td width="50%">
            {if $delivery_address}
                <span class="bold" style="text-align:center;">{l s='Delivery Address' d='Shop.Pdf' pdf='true'}</span>
                <br/>
                <br/>
                {$delivery_address}
            {/if}
            {if isset($HOOK_DISPLAY_PDF)}
                {if $HOOK_DISPLAY_PDF != ""}
                    <div class="refChantier" style="text-align:center; border:solid 2px black">    
                        <span>{$HOOK_DISPLAY_PDF}</span>
                     </div>
                 {/if}
            {/if}
            {foreach $messages as $message}
                {if preg_match("/Action réalisée/i", $message.message|nl2br)}              
                {else}
                <div style="text-align:center; border:solid 2px black">
                    <span>{$message.message|nl2br}</span>
                </div>
                {/if}
            {/foreach}
        </td>
    </tr>
</table>

Cela devait faire l’affaire.

Bonne chance pour la suite ^^

CoeurDeLion

ARTICLES SIMILAIRES

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Lire Encore x