Supprimer le logo et le pied de page des factures PDF PrestaShop
Comment personnaliser les factures PDF PrestaShop en supprimant le logo ou le pied de page via un override de HTMLTemplate. Guide complet PS 1.6 à 8.x.
En bref : Pour supprimer le logo et le pied de page des factures PrestaShop, créez un override de HTMLTemplate qui retourne une chaîne vide dans getLogo() et getFooter(). Sur PS 8.x, privilégiez un module embarquant l'override pour une meilleure maintenabilité.
Pourquoi personnaliser les factures PDF PrestaShop
Les factures générées par PrestaShop incluent par défaut le logo de la boutique en en-tête et un pied de page contenant les informations légales. Dans certains contextes — facturation en marque blanche, intégration dans un ERP externe, ou simple volonté de sobriété — il est nécessaire de supprimer ces éléments.
La bonne nouvelle : PrestaShop expose toute la génération PDF via des classes PHP facilement surchargeables. Pas besoin de modifier le cœur du CMS.
Comprendre l'architecture PDF de PrestaShop
Avant de toucher au code, il est essentiel de comprendre comment PrestaShop génère ses factures.
La génération PDF repose sur la bibliothèque TCPDF (remplacée par un wrapper interne dans les versions récentes). Trois classes clés interviennent :
Les méthodes qui nous intéressent dans HTMLTemplate :
- **`getLogo()`** — Retourne le chemin du logo à afficher en en-tête
- **`getFooter()`** — Retourne le HTML du pied de page
- **`getHeader()`** — Retourne le HTML complet de l'en-tête (qui appelle `getLogo()`)
Méthode 1 : Supprimer le logo via un override
La technique la plus propre consiste à créer un override de la classe HTMLTemplate pour redéfinir la méthode getLogo().
Étape 1 : Créer le fichier d'override
Créez le fichier override/classes/pdf/HTMLTemplate.php :
<?php
/**
* Override HTMLTemplate — Suppression du logo sur les factures PDF
*/
class HTMLTemplate extends HTMLTemplateCore
{
/**
* Retourne une chaîne vide pour supprimer le logo des factures
*
* @return string
*/
protected function getLogo()
{
return '';
}
}
Cette approche est radicale : elle supprime le logo de tous les documents PDF (factures, avoirs, bons de livraison).
Étape 2 : Supprimer le cache de classes
Après avoir créé l'override, supprimez le fichier de cache pour que PrestaShop le prenne en compte :
rm -f var/cache/prod/class_index.php
# Sur PrestaShop 1.6 :
rm -f cache/class_index.php
Étape 3 : Tester la génération
Rendez-vous dans Commandes > Factures et générez un PDF pour vérifier que le logo a bien disparu.
Méthode 2 : Supprimer le logo uniquement pour les clients
Un cas d'usage fréquent : conserver le logo quand un employé génère la facture depuis le back-office, mais le masquer quand le client la télécharge depuis son espace. Cette distinction s'appuie sur la détection du contexte employé.
<?php
class HTMLTemplate extends HTMLTemplateCore
{
/**
* Affiche le logo uniquement quand un employé génère le PDF
* depuis le back-office. Côté front (client), pas de logo.
*
* @return string
*/
protected function getLogo()
{
$context = Context::getContext();
// Si pas d'employé connecté (= téléchargement client), pas de logo
if (!isset($context->employee) || !$context->employee->id) {
return '';
}
// Sinon, comportement par défaut (logo affiché)
return parent::getLogo();
}
}
Cette variante est particulièrement utile pour les marchands qui envoient leurs factures via un canal externe (ERP, comptable) et ne veulent pas de branding sur la version client.
Méthode 3 : Supprimer le pied de page
Le pied de page des factures contient généralement les mentions légales, le numéro SIRET et les coordonnées. Pour le supprimer :
<?php
class HTMLTemplate extends HTMLTemplateCore
{
protected function getLogo()
{
return '';
}
/**
* Retourne un footer vide pour supprimer le pied de page
*
* @return string
*/
public function getFooter()
{
return '';
}
}
Attention légale : En France, la facture doit obligatoirement contenir certaines mentions (SIRET, adresse, numéro TVA intracommunautaire). Si vous supprimez le footer, assurez-vous que ces informations figurent ailleurs dans le document.
Adaptation pour PrestaShop 8.x
Sur PrestaShop 8.x, l'architecture PDF a évolué mais le mécanisme d'override reste fonctionnel. Quelques différences notables :
Emplacement du cache
Le fichier de cache des classes se trouve désormais dans :
rm -f var/cache/prod/class_index.php
rm -f var/cache/dev/class_index.php
Alternative recommandée : le module
Sur PrestaShop 8.x, la méthode recommandée pour ce type de personnalisation est de passer par un module plutôt qu'un override brut. Cela garantit la compatibilité lors des mises à jour :
<?php
// modules/monmodule/override/classes/pdf/HTMLTemplate.php
class HTMLTemplate extends HTMLTemplateCore
{
protected function getLogo()
{
return '';
}
public function getFooter()
{
return '';
}
}
L'override embarqué dans un module est automatiquement installé/désinstallé avec le module, ce qui est bien plus propre qu'un fichier posé manuellement.
Alternative moderne : personnaliser le template Twig
Depuis PrestaShop 1.7.7+, il est possible de personnaliser les templates de facture via des fichiers .html.twig dans le thème. Cette approche est plus flexible mais nécessite de maîtriser Twig :
# Emplacement des templates PDF
themes/votre-theme/pdf/invoice.html.twig
Déboguer une facture PDF blanche
Si après votre override la facture affiche une page blanche, c'est presque toujours une erreur PHP silencieuse. Voici la marche à suivre :
1. Activer le mode debug
Modifiez le fichier config/defines.inc.php :
define('_PS_MODE_DEV_', true);
Sur PrestaShop 8.x, utilisez plutôt le fichier .env :
APP_DEBUG=1
APP_ENV=dev
2. Vérifier les logs PHP
tail -f var/logs/dev.log
# Ou sur PS 1.6 :
tail -f log/error.log
3. Erreurs courantes
Bonnes pratiques pour les overrides PDF
- **Toujours hériter de la classe Core** (`HTMLTemplateCore`, pas `HTMLTemplate`) pour éviter les conflits avec d'autres overrides
- **Vider le cache** après chaque modification d'override
- **Tester tous les types de documents** (facture, avoir, bon de livraison) car l'override sur `HTMLTemplate` impacte tous les PDF
- **Documenter l'override** dans un fichier README à la racine du projet pour les futurs développeurs
- **Préférer un module** sur PrestaShop 8.x pour faciliter la maintenance
Questions fréquentes
Tout ce que vous devez savoir sur ce sujet.
Un projet PrestaShop ?
Discutons-en directement.
193 projets livrés
Lire sur le blog

Alexandre Carette
Expert PrestaShop & Architecture E-commerce
Développeur PrestaShop depuis 2014, 193 projets livrés. Je conçois des architectures headless Nuxt + PrestaShop et des outils d'automatisation IA pour les e-commerçants.