Les hooks sont la façon dont les modules interagissent avec PrestaShop sans modifier les fichiers du noyau. Comprendre quel hook utiliser, quand il se déclenche et quelles données il fournit est un savoir essentiel pour tout développeur 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 (préfixe : display) – affichent du contenu à des positions spécifiques sur la page. Votre méthode de hook retourne du HTML. Exemple : displayHeader, displayProductAdditionalInfo
  • Action Hooks (préfixe : action) – se déclenchent quand quelque chose se produit. Votre méthode de hook exécute de la logique mais ne retourne rien de visible. Exemple : actionCartSave, actionOrderStatusPostUpdate

Front Office Display Hooks

Structure de page

  • displayHeader – à l'intérieur de <head>. Ajoutez CSS, meta tags, références JS. Se déclenche sur chaque page front.
  • displayTop / displayNavFullWidth – zone de navigation supérieure. Bannières, 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 à la page produit. Retourne un objet PrestaShop\PrestaShop\Core\Product\ProductExtraContent.
  • displayAfterProductThumbs – sous les images du produit. Médias supplémentaires, vues à 360 degrés.
  • displayProductListReviews – dans les listes de produits, sous chaque produit. Notes en étoiles.

Panier et Checkout

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

Action Hooks essentiels

Événements du panier

  • actionCartSave – se déclenche après toute modification du panier. À utiliser pour les vérifications de stock en temps réel ou les recalculs de prix.
  • actionCartUpdateQuantityBefore – avant les changements de quantité. Permet de valider ou bloquer la modification.

Événements de commande

  • actionValidateOrder – se déclenche quand une commande est créée. Contient l'objet commande complet, le panier, le client et la devise.
  • actionOrderStatusPostUpdate – après un changement de statut de commande. Déclencher des notifications, mettre à jour les systèmes externes, ajuster le stock.
  • actionPaymentConfirmation – quand le paiement est confirmé. Différent de la validation de commande pour les méthodes de paiement différé.

Événements client

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

Événements produit

  • actionProductSave – produit créé ou mis à jour. Synchronisation vers les flux, mise à jour des caches.
  • actionProductDelete – produit supprimé. Nettoyage des données liées au module.
  • actionUpdateQuantity – changements de niveau de stock. Déclenchement d'alertes de stock bas, mise à jour de la disponibilité.

Dynamic Hooks (PS 1.7.7+)

PrestaShop génère des hooks dynamiquement en fonction de l'entité et de l'action :

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

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

Le hook setMedia

actionFrontControllerSetMedia est l'endroit correct pour enregistrer les fichiers CSS et JavaScript. Contrairement à displayHeader, il se déclenche 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'
        );
    }
}

Pièges courants

  • Requêtes lourdes dans les Display Hooks – les Display Hooks se déclenchent à chaque chargement de page. Mettez vos requêtes en cache ou utilisez le chargement paresseux.
  • Enregistrer des hooks que vous n'utilisez pas – chaque hook enregistré ajoute de la surcharge, même si la méthode ne retourne rien.
  • Oublier registerHook() dans install() – les hooks doivent être enregistrés lors de l'installation du module. Oublier cela est la raison numéro 1 pour laquelle les hooks ne se déclenchent pas.
  • Ne pas vérifier la classe du controller – si votre hook ne doit s'exécuter que sur les pages produit, vérifiez instanceof ProductController avant de travailler.

Les hooks sont puissants mais demandent de la discipline. Utilisez le bon hook pour la bonne tâche, gardez vos méthodes de hook rapides et testez toujours avec le cache activé pour détecter les problèmes de performance tôt. 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. Passionné par le code propre et les résultats mesurables.

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
Chargement...
Retour en haut