Hooks sind die Art und Weise, wie Module mit PrestaShop interagieren, ohne Core-Dateien zu veraendern. Zu verstehen, welchen Hook man verwenden sollte, wann er ausgeloest wird und welche Daten er bereitstellt, ist essenzielles Wissen fuer jeden PrestaShop-Entwickler. Diese Referenz behandelt die Hooks, die Sie am haeufigsten verwenden werden.

Display Hooks vs. Action Hooks

PrestaShop hat zwei Arten von Hooks:

  • Display Hooks (Praefix: display) – rendern Inhalte an bestimmten Positionen auf der Seite. Ihre Hook-Methode gibt HTML zurueck. Beispiel: displayHeader, displayProductAdditionalInfo
  • Action Hooks (Praefix: action) – werden ausgeloest, wenn etwas passiert. Ihre Hook-Methode fuehrt Logik aus, gibt aber nichts Sichtbares zurueck. Beispiel: actionCartSave, actionOrderStatusPostUpdate

Front Office Display Hooks

Seitenstruktur

  • displayHeader – innerhalb von <head>. CSS, Meta-Tags, JS-Referenzen hinzufuegen. Wird auf jeder Front-Seite ausgeloest.
  • displayTop / displayNavFullWidth – oberer Navigationsbereich. Banner, Ankuendigungen.
  • displayHome – Inhaltsbereich der Startseite. Hervorgehobene Produkte, Slider, Aktionen.
  • displayFooter / displayFooterBefore – Footer-Inhalte. Newsletter-Anmeldung, Vertrauenssiegel.

Produktseite

  • displayProductAdditionalInfo – unterhalb des Warenkorb-Buttons. Lieferschaetzungen, Bestandswarnungen.
  • displayProductExtraContent – fuegt Tabs zur Produktseite hinzu. Gibt ein PrestaShop\PrestaShop\Core\Product\ProductExtraContent-Objekt zurueck.
  • displayAfterProductThumbs – unterhalb der Produktbilder. Zusaetzliche Medien, 360-Grad-Ansichten.
  • displayProductListReviews – in Produktlisten, unter jedem Produkt. Sternebewertungen.

Warenkorb und Checkout

  • displayShoppingCartFooter – unterhalb der Warenkorb-Tabelle. Cross-Sell-Vorschlaege.
  • displayPaymentReturn – Bestellbestaetigungsseite. Dankesnachrichten, Tracking-Informationen.
  • displayOrderConfirmation – ebenfalls auf der Bestellbestaetigung. Analytics-Tracking-Skripte.

Wichtige Action Hooks

Warenkorb-Events

  • actionCartSave – wird nach jeder Warenkorb-Aenderung ausgeloest. Fuer Echtzeit-Bestandspruefungen oder Preisneuberechnungen verwenden.
  • actionCartUpdateQuantityBefore – vor Mengenänderungen. Ermoeglicht Validierung oder Blockierung der Aenderung.

Bestell-Events

  • actionValidateOrder – wird bei Erstellung einer Bestellung ausgeloest. Enthaelt das vollstaendige Bestellobjekt, Warenkorb, Kunde und Waehrung.
  • actionOrderStatusPostUpdate – nach einer Bestellstatus-Aenderung. Benachrichtigungen ausloesen, externe Systeme aktualisieren, Bestand anpassen.
  • actionPaymentConfirmation – wenn die Zahlung bestaetigt wird. Unterscheidet sich von der Bestellvalidierung bei aufgeschobenen Zahlungsmethoden.

Kunden-Events

  • actionCustomerAccountAdd – neue Kundenregistrierung. Sync zum CRM, Willkommens-E-Mail ausloesen.
  • actionAuthentication – Kunde meldet sich an. Letzte Anmeldung aktualisieren, Sitzungsdaten synchronisieren.

Produkt-Events

  • actionProductSave – Produkt erstellt oder aktualisiert. Zu Feeds synchronisieren, Caches aktualisieren.
  • actionProductDelete – Produkt entfernt. Zugehoerige Moduldaten bereinigen.
  • actionUpdateQuantity – Bestandsaenderungen. Niedrigbestand-Alarme ausloesen, Verfuegbarkeit aktualisieren.

Dynamic Hooks (PS 1.7.7+)

PrestaShop generiert Hooks dynamisch basierend auf Entity und Action:

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

Zum Beispiel: actionProductFormBuilderModifier ermoeglicht das Hinzufuegen von Feldern zum Produktbearbeitungsformular im Admin-Panel.

Der setMedia Hook

actionFrontControllerSetMedia ist der richtige Ort, um CSS- und JavaScript-Dateien zu registrieren. Im Gegensatz zu displayHeader wird er vor dem Rendern der Seite ausgeloest und stellt den Controller-Kontext bereit:

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'
        );
    }
}

Haeufige Fallstricke

  • Schwere Datenbankabfragen in Display Hooks – Display Hooks werden bei jedem Seitenaufruf ausgeloest. Cachen Sie Ihre Abfragen oder verwenden Sie Lazy Loading.
  • Hooks registrieren, die man nicht nutzt – jeder registrierte Hook verursacht Overhead, selbst wenn die Methode nichts zurueckgibt.
  • registerHook() in install() vergessen – Hooks muessen waehrend der Modulinstallation registriert werden. Dies zu vergessen ist der Grund Nr. 1, warum Hooks nicht ausgeloest werden.
  • Controller-Klasse nicht pruefen – wenn Ihr Hook nur auf Produktseiten laufen soll, pruefen Sie instanceof ProductController bevor Sie arbeiten.

Hooks sind maechtig, erfordern aber Disziplin. Verwenden Sie den richtigen Hook fuer die richtige Aufgabe, halten Sie Ihre Hook-Methoden schnell und testen Sie immer mit aktiviertem Cache, um Performance-Probleme frueh zu erkennen.

Beitrag teilen:
David Miller

David Miller

Über ein Jahrzehnt praktische PrestaShop-Expertise. David entwickelt leistungsstarke E-Commerce-Module mit Fokus auf SEO, Checkout-Optimierung und Shop-Management. Leidenschaft für sauberen Code...

Kommentare (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.
Antworten
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.
Antworten

Kommentar hinterlassen

Lade ...
Zum Seitenanfang