Maîtriser les Hooks PrestaShop : référence développeur pour 1.7, 8.x et 9.x

Les hooks sont la facon dont les modules interagissent avec PrestaShop sans modifier les fichiers du noyau. Comprendre quel hook utiliser, quand il se declenche et quelles données il fournit est un savoir essentiel pour tout developpeur PrestaShop. Cette référence couvre les hooks que vous utiliserez le plus souvent.

Display Hooks vs. Action Hooks

PrestaShop a deux types de hooks :

  • Display Hooks (prefixe : display) – affichent du contenu a des positions spécifiques sur la page. Votre méthode de hook retourne du HTML. Exemple : displayHeader, displayProductAdditionalInfo
  • Action Hooks (prefixe : action) – se declenchent quand quelque chose se produit. Votre méthode de hook execute de la logique mais ne retourne rien de visible. Exemple : actionCartSave, actionOrderStatusPostUpdate

Front Office Display Hooks

Structure de page

  • displayHeader – a l'interieur de <head>. Ajoutez CSS, meta tags, références JS. Se declenche sur chaque page front.
  • displayTop / displayNavFullWidth – zone de navigation superieure. Bannieres, annonces.
  • displayHome – zone de contenu de la page d'accueil. Produits en vedette, sliders, promotions.
  • displayFooter / displayFooterBefore – contenu du footer. Inscription newsletter, badges de confiance.

Page produit

  • displayProductAdditionalInfo – sous le bouton d'ajout au panier. Estimations de livraison, alertes de stock.
  • displayProductExtraContent – ajoute des onglets a la page produit. Retourne un objet PrestaShop\\PrestaShop\\Core\\Product\\ProductExtraContent.
  • displayAfterProductThumbs – sous les images du produit. Medias supplementaires, vues a 360 degres.
  • displayProductListReviews – dans les listes de produits, sous chaque produit. Notes en etoiles.

Panier et Checkout

  • displayShoppingCartFooter – sous le tableau du panier. Suggestions de vente croisee.
  • displayPaymentReturn – page de confirmation de commande. Messages de remerciement, informations de suivi.
  • displayOrderConfirmation – egalement sur la confirmation de commande. Scripts de tracking analytics.

Action Hooks essentiels

Événements du panier

  • actionCartSave – se declenche apres toute modification du panier. A utiliser pour les verifications de stock en temps reel ou les recalculs de prix.
  • actionCartUpdateQuantityBefore – avant les changements de quantité. Permet de valider ou bloquer la modification.

Événements de commande

  • actionValidateOrder – se declenche quand une commande est creee. Contient l'objet commande complet, le panier, le client et la devise.
  • actionOrderStatusPostUpdate – apres un changement de statut de commande. Declencher des notifications, mettre a jour les systèmes externes, ajuster le stock.
  • actionPaymentConfirmation – quand le paiement est confirme. Different de la validation de commande pour les méthodes de paiement differe.

Événements client

  • actionCustomerAccountAdd – nouvelle inscription client. Synchronisation CRM, declenchement d'email de bienvenue.
  • actionAuthentication – le client se connecte. Mise a jour de la dernière connexion, synchronisation des données de session.

Événements produit

  • actionProductSave – produit cree ou mis a jour. Synchronisation vers les flux, mise a jour des caches.
  • actionProductDelete – produit supprime. Nettoyage des données liees au module.
  • actionUpdateQuantity – changements de niveau de stock. Declenchement d'alertes de stock bas, mise a jour de la disponibilité.

Dynamic Hooks (PS 1.7.7+)

PrestaShop genere des hooks dynamiquement en fonction de l'entite et de l'action :

action{Entity}{Action}Before
action{Entity}{Action}After

Par exemple : actionProductFormBuilderModifier vous permet d'ajouter des champs au formulaire d'edition de produit dans le panel admin.

Le hook setMedia

actionFrontControllerSetMedia est l'endroit correct pour enregistrer les fichiers CSS et JavaScript. Contrairement a displayHeader, il se declenche avant le rendu de la page et fournit le contexte du controller : Pour une vue moins technique, consultez notre guide sur comment les modules communiquent avec votre boutique via les hooks. Un module de performance peut identifier les hooks lents.

public function hookActionFrontControllerSetMedia($params)
{
    $controller = $this->context->controller;
    if ($controller instanceof ProductController) {
        $this->context->controller->registerStylesheet(
            'my-module-css',
            'modules/' . $this->name . '/views/css/product.css'
        );
    }
}

Pieges courants

  • Requetes lourdes dans les Display Hooks – les Display Hooks se declenchent a chaque chargement de page. Mettez vos requetes en cache ou utilisez le chargement paresseux.
  • Enregistrer des hooks que vous n'utilisez pas – chaque hook enregistre ajoute du surcharge, même si la méthode ne retourne rien.
  • Oublier registerHook() dans install() – les hooks doivent etre enregistres lors de l'installation du module. Oublier cela est la raison numéro 1 pour laquelle les hooks ne se declenchent pas.
  • Ne pas vérifier la classe du controller – si votre hook ne doit s'executer que sur les pages produit, verifiez instanceof ProductController avant de travailler.

Les hooks sont puissants mais demandent de la discipline. Utilisez le bon hook pour la bonne tache, gardez vos méthodes de hook rapides et testez toujours avec le cache active pour detecter les problèmes de performance tot. Notre module Checkout Revolution utilise nombre de ces hooks pour une expérience de checkout optimisée.

Partager cet article:
David Miller

David Miller

Plus d'une décennie d'expertise pratique PrestaShop. David développe des modules e-commerce haute performance axés sur le SEO, l'optimisation du passage en caisse et la gestion de boutique....

Cet article vous a plu ?

Recevez nos derniers conseils, guides et mises à jour de modules dans votre boîte mail.

Commentaires (2)

D
David Chen 14/02/2026
The section on displayProductAdditionalInfo was really useful. We were hooking into the wrong place for our custom fields module. Switched to the recommended hook and it works perfectly now.
Répondre
A
Anna Petrova 14/02/2026
This hooks reference is exactly what I needed. Bookmarked! I have been searching for a comprehensive list that covers all three PS versions in one place.
Répondre

Laisser un commentaire

Loading...
Back to top