26 Sep 2019

Ajouter l’email client dans les factures PDF de Prestashop 1.7

Un tutoriel et des fichiers pour permettre l’affichage de l’adresse mail client sur les factures de votre Prestashop 1.7.

Vous utilisez peut-être les factures clients PDF pour préparer les commandes ou encore pour la comptabilité. Si vous avez besoin de contacter votre client par mail, vous êtes obligé d’aller dans le compte client. Grâce à ce tutoriel Prestashop très simple vous allez pouvoir afficher l’e-mail du client sur vos factures PDF.

Créer un Override sur votre Prestashop

Vous allez devoir faire une surcouche du fichier HTMLTemplate.php sur votre serveur.
Il faut créer ce fichier dans : override -> classes -> PDF

Ensuite collez ceci dans votre fichier :

<?php

/*  
  Override add telephone on PDF Invoice
  https://www.matthieu-jalbert.fr/
*/

abstract class HTMLTemplate extends HTMLTemplateCore {
 
    public function assignCommonHeaderData()
        {
            $this->setShopId();
            $id_shop = (int)$this->shop->id;
            $shop_name = Configuration::get('PS_SHOP_NAME', null, null, $id_shop);
            $path_logo = $this->getLogo();
            $customer = new Customer((int)$this->order->id_customer);
     
            $this->smarty->assign(array(
                'logo_path' => $path_logo,
     
                'img_update_time' => Configuration::get('PS_IMG_UPDATE_TIME'),
                'date' => $this->date,
                'title' => $this->title,
                'shop_name' => $shop_name,
                'shop_details' => Configuration::get('PS_SHOP_DETAILS', null, null, (int)$id_shop),
                'width_logo' => $width,
                'height_logo' => $height,
                'customer_id' => sprintf("%04d", $customer->id),
                'customer_email' => $customer->email
            ));
        }
}

Je joins le fichier tout prêt : Override mail facture PDF PS (109 téléchargements)

Ensuite il faut afficher la variable {$customer_email} créé, dans la facture. Il faut aller à la racine de votre site, dans le dossier PDF. Cherchez ensuite le invoice.tpl.

Pour ma part je mets l’adresse mail sous l’adresse par exemple à la ligne 35 :

<!-- Invoicing -->
	<tr>
		<td colspan="12">
			{$addresses_tab}
			{$customer_email}
		</td>
	</tr>

Vous pouvez maintenant aller dans l’onglet commande et vérifier cela sur une facture.
Si cela ne s’affiche pas, pensez à vider le cache de votre Prestashop.

Tenir une bonne comptabilité sur votre Prestashop

Vous savez maintenant comment rajouter cette option sur les factures dans Prestashop. Cependant il faut savoir qu’un site e-commerce doit suivre des « règles » de comptabilité. Une entreprise physique ou virtuelle est soumise aux mêmes lois. J’ai publié une vidéo pour parler de comptabilité. Tenez-vous informé pour ne rien oublier dans votre compta.

17 commentaires sur “Ajouter l’email client dans les factures PDF de Prestashop 1.7
  1. bonjour,

    novice en prestashop, j’ai suivi votre article (très bien expliqué), mais je dois faire une erreur.
    J’ai téléchargé votre fichier que j’ai inséré dans override -> classes -> PDF
    Ensuite, j’ai modifié comme indiqué le fichier invoice.tpl (->pdf) mais sur ma facture l’email n’apparait pas. emrci de votre aide. bonne journée

    1. Bonjour,

      Quelle est la version de votre Prestashop ?
      Cet article date d’un moment et il se peut que cela ne soit pas compatible avec Prestashop 1.7.6.X

      Avez-vous vidé le cache dans les performances du site ? Vu que c’est une fichier de « surcouche » il peut y avoir du cache.
      Générer une nouvelle commande test pour voir.

  2. Bonjour, comme l’intervenant précédent,
    J’ai bien suivi votre explication mais malheureusement cela ne fonctionne pas malgré le fait d’avoir vidé le cache à plusieurs reprises.
    Prestashop 1.7.5.2

    Merci de vos conseils

        1. Il nous faut des détails 😉

          Vous parlez de vendeur, c’est un site sous forme de marketplace avec plusieurs vendeurs ?
          Ou bien vous voulez juste mettre le ‘vendeur’, le propriétaire du site Prestashop ?

          1. Vous utilisez donc un module particulier ?
            Le problème c’est qu’il faut faire un développement particulier pour pouvoir récupérer la variable vendeur.
            Une fois que cela est fait, il faut l’intégrer de la même façon que l’email sur la facture

  3. Nous utilisons le module jmarketplace, les données vendeurs je les récupère avec la variable $seller (qui me renvoie un objet « Seller »). Pour le nom des vendeurs il faut utiliser {$seller->name}. Forcément cela ne s’affiche pas sur le pdf des factures. J’ai essayé plein de manière de la récupérer et de l’intégrer comme vous ,mais cela ne fonctionne pas (sachant que votre démo fonctionne chez moi ,donc le problême vient de moi).

    Si vous pouvez m’aider, ça serait top !

Laisser un commentaire

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