Ajouter l’email client dans une facture PDF de Magento

email-client-dans-facture-magento

Comme vous le savez surement, un e-commerçant (comme tout commerçant d’ailleurs) doit garder une copie papier de chaque pièce comptable que génère son store. Magento, le célèbre framework e-commerce propse bien évidemment, une fois qu’une transaction est terminée, d’éditer une facture et de générer un pdf.

Ce document éléctronique reprend les éléments essentiels d’une facture à savoir l’adresse de facturation du client, l’adresse de livraison, le numéro de la facture, la date de facturation et le détail des achats réalisés.

Cependant il manque l’adresse email du client. Bon vous me direz c’est pas très grave, mais l’email étant la première source de contact avec les clients d’un site e-commerce, il est toujours bon que ce dernier soit renseigné! En tout cas, moi, au boulot, ça à l’air de pas mal arranger les filles du market et de l’admin d’avoir l’e-mail.

nb: Ce tuto est réalisé avec la version 1.7 de Magento. Notez aussi que Magento utilise la fonction de génération de pdf de Zend pour générer les factures en pdf.

Bref, pour rajouter l’email du client il vous faut surcharger ce fichier app/code/core/Mage/Sales/Model/Order/Pdf/Abstratct.php (ne modifiez pas, directement le coeur de Magento sous peine de rencontrer des difficultés lors de vos futures migration/évolution du CMS).

Juste après :


if ($putOrderId) {
            $page->drawText(
                Mage::helper('sales')->__('Order # ') . $order->getRealOrderId(), 35, ($top -= 30), 'UTF-8'
            );
        }
        $page->drawText(
            Mage::helper('sales')->__('Order Date: ') . Mage::helper('core')->formatDate(
                $order->getCreatedAtStoreDate(), 'medium', false
            ),
            35,
            ($top -= 15),
            'UTF-8'
        );

Il nous faut rajouter :

// Ajout des email client
        $page->drawText(
             Mage::helper('sales')->__('Customer Email') . ': ' . $order->getCustomerEmail(), 35, ($top -= 15), 'UTF-8'
        );

Il faut ensuite agrandir la taille du header et modifiant un peu plus haut dans le fichier abstract :


$page->setFillColor(new Zend_Pdf_Color_GrayScale(0.45));
$page->setLineColor(new Zend_Pdf_Color_GrayScale(0.45));
$page->drawRectangle(25, $top, 570, $top - 75);
$page->setFillColor(new Zend_Pdf_Color_GrayScale(1));
$this->setDocHeaderCoordinates(array(25, $top, 570, $top - 75));
$this->_setFontRegular($page, 10);

Le header est désormais d’une hauteur plus importante et l’adresse email de votre client apparait.

Laisser un commentaire

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