# FlowConsent auf PrestaShop installieren

FlowConsent auf PrestaShop installieren: das Code-Snippet ganz oben in head.tpl des Themes einfügen, den Smarty-Cache leeren und Tracking-Module abschalten.

> Canonical: https://www.flowconsent.com/de/doc/install-prestashop
> Last updated: 2026-10-01
Auf PrestaShop gehört das FlowConsent-Code-Snippet ganz nach oben in die Datei **`templates/_partials/head.tpl`** Ihres Themes, umschlossen von den Smarty-Tags **`{literal}`**. Danach leeren Sie den Cache unter **Erweiterte Einstellungen → Leistung** (*Advanced Parameters → Performance*). Die Installation umfasst drei Schritte. Die Hauptfallen: der Smarty-Cache, der weiter den alten `<head>` ausliefert, und Tracking-Module (Google Analytics, Meta-Pixel, Google Tag Manager), die ihre eigenen Tags einbinden, ohne auf die Einwilligung zu warten.

## Bevor Sie beginnen

- Ein Konto auf [app.flowconsent.com](https://app.flowconsent.com) (kostenloser Free-Tarif, ohne Kreditkarte, bis zu 25.000 Sitzungen pro Monat).
- Ein erstelltes und bereitgestelltes Banner. Im Free-Tarif erfolgt die Bereitstellung über Ihr eigenes Cloudflare-Konto ([Cloudflare-Anleitung](/de/doc/cloudflare-deployment)), bei Pro und Enterprise mit einem Klick.
- Zugriff auf die Shop-Dateien (FTP, SFTP oder Dateimanager Ihres Hosters) und auf das PrestaShop-Backoffice. Das Backoffice bietet keinen Editor für Theme-Dateien.

## Schritt 1: Code-Snippet kopieren

Öffnen Sie **Builder → Deployment → Integration** und kopieren Sie das Code-Snippet aus dem Tab **HTML / No-code**. Es besteht aus zwei Teilen in dieser Reihenfolge: dem Google-Consent-Mode-v2-Stub (Standardwerte `denied`) und dem Banner-Loader.

## Schritt 2: In head.tpl einfügen

1. Ermitteln Sie das aktive Theme unter **Design → Theme & Logo**: Der erste Abschnitt der Seite zeigt das aktuell verwendete Theme. Sein Ordner liegt unter `themes/<theme-name>/`.
2. Öffnen Sie `themes/<theme-name>/templates/_partials/head.tpl`. Im Classic-Theme und den darauf aufbauenden Themes wird diese Datei direkt im `<head>`-Tag jedes Layouts eingebunden.
3. Fügen Sie das Snippet **direkt nach dem Block `head_charset`** ein, also vor den Stylesheets, den Theme-Skripten und dem Hook `displayHeader` der Module, und umschließen Sie es mit `{literal}` und `{/literal}`:

```html title="themes/<theme-name>/templates/_partials/head.tpl"
{block name='head_charset'}
  <meta charset="utf-8">
{/block}

{literal}
<script>
// FlowConsent Loader - VOR allen anderen Skripten im <head> platzieren
window.dataLayer=window.dataLayer||[];
function gtag(){dataLayer.push(arguments);}
gtag('consent','default',{
  'ad_storage':'denied',
  'analytics_storage':'denied',
  'ad_user_data':'denied',
  'ad_personalization':'denied',
  'wait_for_update':500
});
gtag('set','url_passthrough',true);
gtag('set','ads_data_redaction',true);
</script>
<!-- FlowConsent CMP -->
<script src="https://IHR-LIZENZCODE.consent.flowconsent.com/cookie-manager.js?code=IHR_LIZENZCODE"></script>
{/literal}

{* … der Rest der Datei, unverändert *}
```

> [!WARNING]
> Die `{literal}`-Tags sind Pflicht. Smarty wertet geschweifte Klammern aus: Ohne sie wird `function gtag(){dataLayer.push(arguments);}` als Smarty-Tag gelesen, und die Seite bricht mit einem Kompilierungsfehler ab. Alles zwischen `{literal}` und `{/literal}` wird unverändert ausgegeben.

**Theme aus dem Marketplace oder ein Theme, das Sie aktualisieren?** Ein Theme-Update überschreibt `head.tpl`. Arbeiten Sie besser in einem **Child-Theme** (Schlüssel `parent` in dessen `theme.yml`): Kopieren Sie `templates/_partials/head.tpl` in denselben Pfad des Child-Themes, fügen Sie das Snippet ein, und die Kopie des Child-Themes ersetzt die des Parent-Themes.

**Und Module zum Einfügen von Code?** Einige Marketplace-Module fügen Code in den `<head>` ein. Die meisten nutzen den Hook `displayHeader`, der **am Ende des `<head>`** gerendert wird, nach den Theme-Skripten: zu spät, um die Vorabblockierung zu garantieren. Bevorzugen Sie `head.tpl`. Wenn Sie doch ein Modul verwenden, prüfen Sie mit dem Einrichtungsassistenten, dass das Snippet vor jedem Tracker steht.

## Schritt 3: Smarty-Cache leeren

PrestaShop kompiliert die Templates und speichert sie im Cache: Solange der Cache nicht geleert ist, liefert der Shop den alten `<head>` aus. Gehen Sie zu **Erweiterte Einstellungen → Leistung** (*Advanced Parameters → Performance*) und klicken Sie auf **Cache leeren** (*Clear cache*). Ist der Smarty-Bereich so eingestellt, dass Templates nie neu kompiliert werden (*Never recompile template files*), ist das Leeren nach jeder Dateiänderung zwingend. Ein Cache beim Hoster oder CDN (Varnish, Cloudflare) muss ebenfalls geleert werden.

## Tracking-Module: abschalten und unter Services hinterlegen

> [!NOTE]
> Tracking-Module (Google Analytics, Meta-Pixel, Google Tag Manager, Werbemodule) binden ihre Tags über die Hooks des Themes ein, ohne die Entscheidung des Besuchers abzuwarten. Deaktivieren Sie sie unter **Module → Modul-Manager** (*Modules → Module Manager*) oder entfernen Sie die Tracking-ID aus ihrer Konfiguration. Hinterlegen Sie die entsprechenden Dienste dann unter **Builder → Services**: Das Banner lädt sie erst nach der Einwilligung.

Wenn Sie Google Tag Manager behalten, laden Sie FlowConsent nicht über GTM (es käme zu spät): Platzieren Sie das Snippet in `head.tpl` **oberhalb** des GTM-Containers. Google-Tags respektieren dann die Consent-Mode-v2-Signale, andere Tags benötigen **Checks auf zusätzliche Einwilligung**. Details im [Google-Consent-Mode-Leitfaden](/de/doc/google-consent-mode).

## Installation überprüfen

1. Öffnen Sie den Shop in einem privaten Fenster: Das Banner erscheint.
2. Im Tab **Netzwerk** der Entwicklertools geht vor dem Klick auf **Akzeptieren** keine Anfrage an Drittanbieter raus.
3. Starten Sie den [Einrichtungsassistenten](/de/doc/setup-wizard) (Builder → Integration): Er prüft die Live-Seite (Loader mit dem richtigen Lizenzcode vorhanden, Consent-Mode-Stub vorhanden und vor jedem Google-Tag platziert).
4. Schließen Sie mit einem Ablehnungs-Scan aus dem Tab **Konformität** ab ([Konformitätsprüfung](/de/doc/compliance-verification)).

## Mit Ihrem KI-Agenten erledigen (MCP)

FlowConsent bietet einen offiziellen MCP-Server, `https://mcp.flowconsent.com`, nutzbar aus Claude, ChatGPT oder jedem MCP-Client. Die Verbindung erfolgt per OAuth 2.0 mit Ihrem FlowConsent-Konto, ohne API-Schlüssel. Ihr Agent ruft das Snippet und die Platzierungshinweise ab (`get_banner_snippet`, `get_setup_instructions`), überprüft die Installation mit einem echten Scan (`verify_consent_compliance`) und kann eine wiederkehrende Überwachung einrichten (`monitor_compliance`). Die Änderung an `head.tpl` nehmen Sie oder Ihr Coding-Agent selbst vor: Der MCP-Server liefert Snippet, Anleitung und Überprüfung.

Beispielanfrage:

> Gib mir das Code-Snippet meines Banners für meinen PrestaShop-Shop und prüfe, ob es auf https://meinshop.de korrekt installiert ist

Mehr dazu: [MCP-Server](/de/doc/mcp-server) und [FlowConsent für KI-Agenten](/de/mcp).

## Häufige Fragen

### Ich habe das Snippet eingefügt, aber nichts ändert sich. Warum?

Der Smarty-Cache liefert noch die alte Version aus. Leeren Sie ihn unter **Erweiterte Einstellungen → Leistung**, leeren Sie einen eventuellen Hoster- oder CDN-Cache und laden Sie die Seite in einem privaten Fenster neu.

### Mein Shop zeigt nach der Änderung an head.tpl einen Fehler.

Fast immer fehlen die `{literal}`-Tags: Smarty versucht, die geschweiften Klammern des Skripts auszuwerten. Umschließen Sie das gesamte Snippet mit `{literal}` und `{/literal}` und leeren Sie danach den Cache.

### Brauche ich ein FlowConsent-Modul?

Nein. Das Snippet ist Standard-HTML, das Sie in das Theme einfügen. Das ist die zuverlässigste Methode, weil nur sie das Banner vor die von Modulen eingebundenen Skripte setzt.

### Mein Shop läuft im Multistore-Modus. Was ist zu tun?

Jedes Theme, das ein Shop verwendet, hat seine eigene `head.tpl`: Fügen Sie das Snippet in jede ein. Laufen Ihre Shops auf verschiedenen Domains mit jeweils eigenem Banner, verwenden Sie in jedem Theme den Lizenzcode des passenden Banners.
