# Installer FlowConsent sur PrestaShop

Installer FlowConsent sur PrestaShop : coller l'extrait de code en haut du head.tpl du thème, vider le cache Smarty et désactiver les modules de suivi.

> Canonical: https://www.flowconsent.com/fr/doc/install-prestashop
> Last updated: 2026-10-01
Sur PrestaShop, l'extrait de code FlowConsent se colle dans le fichier **`templates/_partials/head.tpl`** de votre thème, tout en haut, entouré de balises Smarty **`{literal}`**, puis on vide le cache dans **Paramètres avancés → Performances**. L'installation tient en trois étapes. Les pièges principaux : le cache Smarty qui continue de servir l'ancien `<head>`, et les modules de suivi (Google Analytics, pixel Meta, Google Tag Manager) qui injectent leurs propres balises sans attendre le consentement.

## Avant de commencer

- Un compte sur [app.flowconsent.com](https://app.flowconsent.com) (offre Free gratuite, sans carte bancaire, jusqu'à 25 000 sessions par mois).
- Une bannière créée puis déployée. Sur l'offre Free, le déploiement passe par votre compte Cloudflare ([guide Cloudflare](/fr/doc/cloudflare-deployment)) ; sur Pro et Enterprise, il se fait en un clic.
- Un accès aux fichiers de la boutique (FTP, SFTP ou gestionnaire de fichiers de l'hébergeur) et à l'administration PrestaShop. Le back-office ne propose pas d'éditeur de fichiers de thème.

## Étape 1 : copier l'extrait de code

Ouvrez **Builder → Déploiement → Intégration** et copiez l'extrait de code de l'onglet **HTML / No-code**. Il comporte deux parties, dans cet ordre : le stub Google Consent Mode v2 (valeurs `denied` par défaut), puis le chargeur de la bannière.

## Étape 2 : le coller dans head.tpl

1. Repérez le thème actif dans **Apparence → Thème et logo** (*Design → Theme & Logo*) : la première section de la page rappelle le thème utilisé. Son dossier se trouve dans `themes/<nom-du-thème>/`.
2. Ouvrez `themes/<nom-du-thème>/templates/_partials/head.tpl`. Dans le thème Classic et les thèmes qui en dérivent, ce fichier est inclus directement dans la balise `<head>` de chaque mise en page.
3. Collez l'extrait de code **juste après le bloc `head_charset`**, donc avant les feuilles de style, les scripts du thème et le hook `displayHeader` des modules, en l'entourant de `{literal}` et `{/literal}` :

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

{literal}
<script>
// FlowConsent Loader - PLACER AVANT tout autre script dans le <head>
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://VOTRE-CODE-LICENCE.consent.flowconsent.com/cookie-manager.js?code=VOTRE_CODE_LICENCE"></script>
{/literal}

{* … le reste du fichier, inchangé *}
```

> [!WARNING]
> Les balises `{literal}` ne sont pas optionnelles. Smarty interprète les accolades : sans elles, `function gtag(){dataLayer.push(arguments);}` est lu comme une balise Smarty et la page plante avec une erreur de compilation. Le code entre `{literal}` et `{/literal}` est rendu tel quel.

**Thème du marché ou thème mis à jour ?** Une mise à jour du thème écrase `head.tpl`. Travaillez plutôt dans un **thème enfant** (clé `parent` dans son `theme.yml`) : copiez-y `templates/_partials/head.tpl` au même chemin, ajoutez l'extrait de code, et la copie du thème enfant remplace celle du parent.

**Et les modules d'injection de code ?** Certains modules du marché ajoutent du code dans le `<head>`. La plupart passent par le hook `displayHeader`, rendu **en fin de `<head>`**, après les scripts du thème : trop tard pour garantir le blocage préalable. Préférez `head.tpl` ; si vous passez par un module, vérifiez avec l'assistant d'installation que l'extrait de code arrive bien avant tout traceur.

## Étape 3 : vider le cache Smarty

PrestaShop compile les gabarits et les met en cache : tant que le cache n'est pas vidé, la boutique sert l'ancien `<head>`. Allez dans **Paramètres avancés → Performances** (*Advanced Parameters → Performance*) et cliquez sur **Vider le cache** (*Clear cache*). Si la section Smarty est réglée pour ne jamais recompiler les gabarits (*Never recompile template files*), ce vidage est indispensable à chaque modification de fichier. Un cache côté hébergeur ou CDN (Varnish, Cloudflare) doit aussi être purgé.

## Les modules de suivi : à désactiver puis déclarer dans Services

> [!NOTE]
> Les modules de suivi (Google Analytics, pixel Meta, Google Tag Manager, modules publicitaires) injectent leurs balises via les hooks du thème, sans attendre le choix du visiteur. Désactivez-les dans **Modules → Gestionnaire de modules** (*Modules → Module Manager*), ou retirez l'identifiant de suivi de leur configuration, puis déclarez les services correspondants dans **Builder → Services** : la bannière ne les charge qu'après consentement.

Si vous gardez Google Tag Manager, ne chargez pas FlowConsent depuis GTM (il arriverait trop tard) : placez l'extrait de code **au-dessus** du conteneur GTM dans `head.tpl`. Les balises Google respectent alors les signaux Consent Mode v2 ; les autres balises demandent des « Paramètres supplémentaires de consentement ». Détails dans le [guide Google Consent Mode](/fr/doc/google-consent-mode).

## Vérifier l'installation

1. Ouvrez la boutique en navigation privée : la bannière s'affiche.
2. Dans l'onglet **Réseau** des outils de développement, aucune requête vers un service tiers ne part avant le clic sur **Accepter**.
3. Lancez l'[assistant d'installation](/fr/doc/setup-wizard) (Builder → Intégration) : il contrôle la page en ligne (chargeur présent avec le bon code de licence, stub Consent Mode présent et placé avant chaque tag Google).
4. Terminez par un scan de refus depuis l'onglet **Conformité** ([vérification de conformité](/fr/doc/compliance-verification)).

## Le faire depuis votre agent IA (MCP)

FlowConsent dispose d'un serveur MCP officiel, `https://mcp.flowconsent.com`, utilisable depuis Claude, ChatGPT ou tout client MCP. La connexion se fait en OAuth 2.0 avec votre compte FlowConsent, sans clé d'API. Votre agent récupère l'extrait de code et les consignes de placement (`get_banner_snippet`, `get_setup_instructions`), vérifie l'installation par un vrai scan (`verify_consent_compliance`) et peut poser une surveillance récurrente (`monitor_compliance`). C'est vous, ou votre agent de code, qui modifiez `head.tpl` : le serveur MCP fournit l'extrait, les instructions et la vérification.

Exemple de demande :

> Donne-moi l'extrait de code de ma bannière pour ma boutique PrestaShop et vérifie qu'il est bien installé sur https://maboutique.fr

En savoir plus : [serveur MCP](/fr/doc/mcp-server) et [FlowConsent pour les agents IA](/fr/mcp).

## Questions fréquentes

### J'ai collé l'extrait de code mais rien ne change, pourquoi ?

Le cache Smarty sert encore l'ancienne version. Videz-le dans **Paramètres avancés → Performances**, purgez un éventuel cache d'hébergeur ou de CDN, puis rechargez en navigation privée.

### Ma boutique affiche une erreur après la modification de head.tpl.

C'est presque toujours l'absence des balises `{literal}` : Smarty tente d'interpréter les accolades du script. Entourez tout l'extrait de code de `{literal}` et `{/literal}`, puis videz le cache.

### Faut-il installer un module FlowConsent ?

Non. L'extrait de code est du HTML standard qui se colle dans le thème. C'est la méthode la plus fiable, car elle seule place la bannière avant les scripts injectés par les modules.

### Ma boutique est en multiboutique : que faire ?

Chaque thème utilisé par une boutique a son propre `head.tpl` : ajoutez l'extrait de code dans chacun. Si vos boutiques ont des domaines différents avec chacune sa bannière, utilisez dans chaque thème le code de licence de la bonne bannière.
