Jump to content

Message sur facture et BL


Recommended Posts

Bonjour, je reste bloqué sur ce message que les clients peuvent stipuler lors de la commande mais qui n’apparaît pas sur la facture ou BL.

Y aurait il une option que je n'ai pas vu ?

Après certaines recherches j'ai trouvé des codes à ajouter sur les fichiers de facture et bl mais qui n'ont pas l'aire d'être encore valable pour le Presta 1.7.6.2  et +

Quelles sont les codes ou variables par défaut pour les {message} donnés par les clients ?

Ou une astuce pour que le client puisse ajouter un commentaire visible sur la commande.

Merci d'avance. 

Edited by Coeur_De_Lion (see edit history)
Link to comment
Share on other sites

Voici les infos que j'ai trouvées qui datent de 2013 mais qui ne fonctionne pas de mon coté :

 

On 2/27/2013 at 11:51 AM, Yoya said:

- modifier le fichier /classes/pdf/HTMLTemplateInvoice.php en ajoutant ligne 71 :


'messages' => Message::getMessagesByOrderId($this->order->id),
- modifier le fichier /pdf/invoice.tpl et ajouter ou tu souhaites :

 


<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>
 

a suivre

Link to comment
Share on other sites

Toujours de 2013

On 12/15/2013 at 4:21 PM, Roy Rene said:

J'ai réussi :)

Pour ceux que ca pourrait interesser il faut : 

dans classes/pdf/HTMLTemplateInvoice.php il faut ajouter aux alentours de la ligne 71 :


$this->smarty->assign(array(
		//**le reste de la boucle au dessus
			'gift_message' => $this->order->gift_message,
		)); 

puis dans pdf/invoice.tpl ajouter là où vous voulez :


{$gift_message} 

Et voilà :D

 

a suivre

Link to comment
Share on other sites

J'ai trouvé aussi ceci 

 

Quote

1. Modification du fichier OrderInvoice.php

Copiez le fichier /classes/order/OrderInvoice.php

Collez le dans /override/classes/order/

Editez ce fichier:

Partez à la recherche de la fonction getProducts($products…

Dans cette fonction, juste après la ligne « foreach ($products as $row) { « , rajoutez:

// Début modif
if( end($products) === $row ) {
$row['first_order_message'] = nl2br($order->getFirstMessage());
}
// Fin modif

Sauvegardez le fichier modifié

Editez le fichier /pdf/invoice.product-tab.tpl

Rajoutez à l’emplacement voulu le code suivant:

{if isset($order_detail.first_order_message) && $order_detail.first_order_message}

<table id="order_msg" class="product" width="100%">
  <tr>
    <td class="center grey bold" width="20%">{l s='Message client' pdf='true'}</td>
    <td class="left white" width="80%">{$order_detail.first_order_message}</td>
  </tr>
</table>

{/if}

 

Mais toujours rien.

Dites moi si jamais pour vous une des solutions a fonctionné.

Si quelqu'un a une idée, je suis preneur.

Edited by Coeur_De_Lion (see edit history)
Link to comment
Share on other sites

  • 2 weeks later...

Personne n'aurait une astuce afin de faire apparaître le 1er message du client lorsqu'il passe la commande. Je présume que certains doivent avoir le même problème. Quand un client passe une commande et que le message se perd au milieu de tous les autres messages clientèle, sav et technique, c'est un peu le souk. Si ca le stipule sur la facture, on ne peut pas passer a coté.

Merci d'avance.

Link to comment
Share on other sites

  • 1 month later...
  • 8 months later...
On 4/23/2020 at 11:44 AM, Coeur_De_Lion said:

Je reviens aux nouvelles au cas ou.

Si quelqu'un n'a ne serait-ce qu'un début d'idée, je suis preneur.

Merci d'avance.

Bonjour,

j'ai la même problématique, avez-vous trouvez une solution?

merci

Link to comment
Share on other sites

  • 2 weeks later...

J'ai refait quelques tests et il y a ceci. (exemple prit sur Roy)

A tester. (toujours faire une sauvegarde ou tester sur un site test)

Dans "tonsite/classes/pdf/HTMLTemplateInvoice.php" remplacer vers la ligne 70 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'));
    }

par 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 tu ajoutes dans "tonsite/pdf/" dans le fichier ou tu désires mettre le message et à l'emplacement de ton choix :

{foreach $messages as $message}
	<br />
	{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}

A tester, il y a surement mieux et fait par de vrais pro ^^

Edited by Coeur_De_Lion (see edit history)
Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...