Jump to content
kimzey

[Résolu] Comment afficher le champ commentaire client sur les bons de livraison ?

Recommended Posts

Bonjour,


Je cherche à ajouter le champs commentaire client sur les bons de livraison.


J'ai fouillé un peu dans delivery-slip.tpl mais je n'ai pas réussi à ajouter ce champ.


Quelqu'un sait il comment faire ?


Merci.


Edited by kimzey (see edit history)

Share this post


Link to post
Share on other sites

Bonsoir,

delivery-slip.tpl (dossier pdf) ligne 101 environ

            {if isset($message)}
            <b>{l s='Message:' pdf='true'}</b><br />
            {$message}<br />
            <br />
            {/if}

HTMLTemplateDeliverySlip.php (dossier classes > pdf) ligne 64 environ

        //add Message        
        $message = $this->order->getFirstMessage();
        
        $carrier = new Carrier($this->order->id_carrier);
        $carrier->name = ($carrier->name == '0' ? Configuration::get('PS_SHOP_NAME') : $carrier->name);
        $this->smarty->assign(array(
            'order' => $this->order,
            'order_details' => $this->order_invoice->getProducts(),
            'delivery_address' => $formatted_delivery_address,
            'invoice_address' => $formatted_invoice_address,
            'order_invoice' => $this->order_invoice,
            'carrier' => $carrier,
            'message' => $message,
        ));

Résultat

post-459329-0-12037400-1379437321_thumb.png

  • Like 1

Share this post


Link to post
Share on other sites

Bonjour,

 

Merci une nouvelle fois pour ton aide, ta solution fonctionne parfaitement !.

 

:)

  • Like 1

Share this post


Link to post
Share on other sites

Bonjour à tous,

 

Indesign, ta solution m'a bien aidé également, merci!

 

Tu ne saurais pas comment on peut afficher l'adresse e-mail du client également?

 

Merci d'avance!

Share this post


Link to post
Share on other sites

Merci indesign, très sympa!

 

J'ai aussi vu dans ton exemple que tu as rajouté le transporteur, cela m'intéresse également donc j'ai rajoute les 3 lignes de ton exemple concernant le "Carrier" dans ma classe HTMLTemplateDeliverySlip.php et dans delivery-slip.tpl j'ai rajouté :

<b>{l s='Transporteur :' pdf='true'}</b><br />
{$carrier}<br />

Mais cela ne fonctionne pas, est ce que je m'y suis mal pris?

Share this post


Link to post
Share on other sites

En m'aidant de la classe de la facture et d'éléments trouvés sur le net j'ai réussi à ajouter l'adresse e-mail finalement :

 

delivery-slip.tpl

{$customer_email}

HTMLTemplateDeliverySlip.php

$customer = new Customer((int)$this->order->id_customer);
$customer_email = $customer->email;

$this->smarty->assign(array(
	'order' => $this->order,
	'order_id' => $this->order_invoice->id_order,
	'order_details' => $this->order_invoice->getProducts(),
	'delivery_address' => $formatted_delivery_address,
	'invoice_address' => $formatted_invoice_address,
	'order_invoice' => $this->order_invoice,
	'carrier' => $carrier,
	'message' => $message,
	'customer_email' => $customer_email
));

Manque plus que le transporteur et ce sera parfait  :)

Edited by Trephisto (see edit history)
  • Like 1

Share this post


Link to post
Share on other sites

Bonjour Trephisto,

delivery-slip.tpl (dossier pdf) ligne 101 environ

            {if isset($message)}
            <b>{l s='Message:' pdf='true'}</b><br />
            {$message}<br />
            <br />
            {/if}
            {if isset($customer_email)}
            <b>{l s='Customer email:' pdf='true'}</b><br />
            {$customer_email}<br />
            <br />
            {/if}

HTMLTemplateDeliverySlip.php (dossier classes > pdf) ligne 52 environ

    public function getContent()
    {
        $delivery_address = new Address((int)$this->order->id_address_delivery);
        $formatted_delivery_address = AddressFormat::generateAddress($delivery_address, array(), '<br />', ' ');
        $formatted_invoice_address = '';

        if ($this->order->id_address_delivery != $this->order->id_address_invoice)
        {
            $invoice_address = new Address((int)$this->order->id_address_invoice);
            $formatted_invoice_address = AddressFormat::generateAddress($invoice_address, array(), '<br />', ' ');
        }

        $carrier = new Carrier($this->order->id_carrier);
        $carrier->name = ($carrier->name == '0' ? Configuration::get('PS_SHOP_NAME') : $carrier->name);
        //add Message        
        $message = $this->order->getFirstMessage();
        //add Customer email
        $customer = new Customer((int)$this->order->id_customer);
        $customer_email = $customer->email;
        $this->smarty->assign(array(
            'order' => $this->order,
            'order_details' => $this->order_invoice->getProducts(),
            'delivery_address' => $formatted_delivery_address,
            'invoice_address' => $formatted_invoice_address,
            'order_invoice' => $this->order_invoice,
            'carrier' => $carrier,
            'message' => $message,
            'customer_email' => $customer_email,            
        ));

        return $this->smarty->fetch($this->getTemplate('delivery-slip'));
    }

post-459329-0-96916100-1379936792_thumb.png

 

PS

Il faut traduire les champs

post-459329-0-96916100-1379936792_thumb.png

 

post-459329-0-20518200-1379936846_thumb.png

Edited by indesign (see edit history)

Share this post


Link to post
Share on other sites

Merci beaucoup pour ces précisions indesign.

 

Il manque juste une petite chose c'est ce que qui affiche le transporteur dans le tpl. J'ai réussi à l'afficher en faisant :

{$carrier->name}

 

C'est parfait pour moi maintenant, merci encore  ;)

  • Like 1

Share this post


Link to post
Share on other sites

Bonjour, 

 

Après 3 ans je me permets de ré-ouvrir ce sujet... 

 

Je cherche à ajouter dans le BL le champs "message client" pour faciliter la vie de notre logisticien et surtout satisfaire les demandes de nos clients. 

 

J'ai appliqué les instructions ci-dessous, mais malheureusement j'ai une erreur 500 lorsque que je veux télécharger le BL.

 

Quelqu'un aurait une solution ? 

 

Version Prestashop : 1.6.1.4

 

Merci pour vos réponses !  :)

 

 

Bonsoir,

delivery-slip.tpl (dossier pdf) ligne 101 environ

            {if isset($message)}
            <b>{l s='Message:' pdf='true'}</b><br />
            {$message}<br />
            <br />
            {/if}

HTMLTemplateDeliverySlip.php (dossier classes > pdf) ligne 64 environ

        //add Message        
        $message = $this->order->getFirstMessage();
        
        $carrier = new Carrier($this->order->id_carrier);
        $carrier->name = ($carrier->name == '0' ? Configuration::get('PS_SHOP_NAME') : $carrier->name);
        $this->smarty->assign(array(
            'order' => $this->order,
            'order_details' => $this->order_invoice->getProducts(),
            'delivery_address' => $formatted_delivery_address,
            'invoice_address' => $formatted_invoice_address,
            'order_invoice' => $this->order_invoice,
            'carrier' => $carrier,
            'message' => $message,
        ));

Résultat

attachicon.gifmessage.png

Share this post


Link to post
Share on other sites

Bonjour,

J'avais appliqué ceci depuis longtemps, et cela fonctionnait très bien sur le 1.6.1.4

Depuis que j'ai fait la mise à jour vers 1.6.1.9, j'ai réappliqué le m^me methode dans mes fichiers comme indiqué ci-dessus mais je n'ai rien qui s'affiche ?

 

Avez-vous une idée ?

 

D'avance Merci.

 

André.
 

Share this post


Link to post
Share on other sites

j'ai 1.6.1.7, ça marche bien, n'oublie pas de mettre le code avant le }

 

        // footer informations
        $this->shop = new Shop((int)$this->order->id_shop);
    
    
         //add Message        
        $message = $this->order->getFirstMessage();
        
        $carrier = new Carrier($this->order->id_carrier);
        $carrier->name = ($carrier->name == '0' ? Configuration::get('PS_SHOP_NAME') : $carrier->name);
        $this->smarty->assign(array(
            'order' => $this->order,
            'order_details' => $this->order_invoice->getProducts(),
            'delivery_address' => $formatted_delivery_address,
            'invoice_address' => $formatted_invoice_address,
            'order_invoice' => $this->order_invoice,
            'carrier' => $carrier,
            'message' => $message,
        ));

    }

Share this post


Link to post
Share on other sites

Bonjour,

Comme j'ai un peu galéré, je partage ce que j'ai fait pour avoir l'email du client sur le B/L avec un Prestashop 1.6.0, en noir les lignes existantes, en rouges les lignes de codes à ajouter. Et ça marche, ouf! Par contre, pour le message du client, ça ne marchait pas, ça affichait des informations sur le paiement à la place donc j'ai supprimé la partie message et ça me va.

Voilà il ne me reste plus qu'à trouver un moyen d'afficher l'EAN des déclinaisons sur le B/L. En espérant que ce post sera utile à quelqu'un.

Fichier HTMLTemplateDeliverySlip.php (dossier classes > pdf)

// footer informations
        $this->shop = new Shop((int)$this->order->id_shop);

        //add Customer email
        $customer = new Customer((int)$this->order->id_customer);
        $customer_email = $customer->email;
        $this->smarty->assign(array(
            'order' => $this->order,
            'order_details' => $this->order_invoice->getProducts(),
            'delivery_address' => $formatted_delivery_address,
            'invoice_address' => $formatted_invoice_address,
            'order_invoice' => $this->order_invoice,
            'carrier' => $carrier,
            'customer_email' => $customer_email,            
        ));

    }

    /**
     * Returns the template's HTML content

 

Fichier delivery-slip.tpl (dossier pdf)

{if isset($carrier)}
            <b>{l s='Carrier:' pdf='true'}</b><br />
            {$carrier->name}<br />
            <br />
            {/if}
            {if isset($customer_email)}
                        <b>{l s='Customer email:' pdf='true'}</b><br />
                        {$customer_email}<br />
                        <br />
                        {/if}

            
            <!-- / CUSTOMER INFORMATIONS -->

 

Share this post


Link to post
Share on other sites

Bonjour

Je déterre le topic car ma demande est presque similaire et je ne suis pas certain qu'un nouveau post soit utile, cela sera plus en complément après réponse

Je voudrais faire apparaitre sur mon bon de livraison la référence fournisseur de chaque produit, j'utilise cette mention plus pour des infos de préparation (emplacement et/ou mention complémentaire....des infos internes pour le préparateur de paquet).

Je suis sous la version 1.6.1.4

Merci de votre aide

Share this post


Link to post
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...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More