Supprimer ou désactiver l'opt-in partenaires sur PrestaShop
Comment supprimer la case opt-in partenaires sur PrestaShop 1.6, 1.7 et 8.x : configuration back-office, modification template et bonnes pratiques RGPD.
En bref : L'opt-in partenaires se désactive dans Paramètres de la boutique → Clients. Si la case persiste malgré la désactivation, vérifiez le cache Smarty, les overrides et le template du thème — sur PrestaShop 8.x, un hook Symfony permet aussi de retirer le champ proprement via un module.
Comprendre l'opt-in partenaires dans PrestaShop
PrestaShop intègre nativement une case à cocher « Recevoir les offres spéciales de nos partenaires » sur les formulaires d'inscription et de gestion de compte client. Cette option, appelée opt-in partenaires, permet au marchand de collecter le consentement des clients pour l'envoi de communications commerciales tierces.
Dans la pratique, de nombreux e-commerçants souhaitent supprimer cette case : soit parce qu'ils n'ont aucun partenaire commercial, soit pour simplifier le tunnel d'inscription, soit — et c'est la raison la plus fréquente depuis 2018 — pour se conformer au RGPD en limitant la collecte de consentements inutiles.
Méthode 1 : désactiver l'opt-in depuis le back-office
Avant toute modification de code, vérifiez que l'option n'est pas simplement activable/désactivable dans la configuration.
PrestaShop 1.7 et 8.x
- Rendez-vous dans **Paramètres de la boutique → Clients**
- Dans la section « Inscription », cherchez l'option **« Activer les offres partenaires »**
- Passez-la sur **Non**
- Enregistrez
- **Un thème personnalisé** qui ne respecte pas la condition `{if isset($optin) && $optin}` dans ses templates
- **Un override** du contrôleur ou de la classe `Customer` qui force la variable à `true`
- **Un cache Smarty non vidé** qui affiche encore l'ancienne version du template
- **Pas de case pré-cochée :** le consentement doit être un acte positif et volontaire
- **Finalité explicite :** l'intitulé doit préciser clairement à quoi le client consent
- **Preuve du consentement :** PrestaShop stocke la valeur dans `ps_customer.optin`, ce qui constitue une preuve exploitable
- **Droit de retrait :** le client doit pouvoir retirer son consentement facilement depuis son espace
- Videz tous les caches (Smarty + OPcache + éventuel Varnish)
- Ouvrez la page d'inscription en navigation privée
- Vérifiez que la case n'apparaît plus
- Créez un compte test et contrôlez dans le back-office que le champ `optin` est bien à `0` dans la fiche client
- Vérifiez également la page **Mon compte → Mes informations personnelles**
Cette manipulation suffit dans la majorité des cas. Le template natif conditionne l'affichage de la case via la variable $optin : si l'option est désactivée, la case disparaît automatiquement.
PrestaShop 1.6
Sur les versions 1.6, le réglage se trouve dans Préférences → Clients → Activer l'opt-in partenaires. Le principe est identique.
Méthode 2 : corriger un affichage persistant malgré la désactivation
Il arrive que la case reste visible même après désactivation dans le back-office. Ce comportement est généralement causé par l'une de ces situations :
Étape 1 : vider les caches
Commencez par vider le cache Smarty :
# Supprimer le cache des templates compilés
rm -rf var/cache/prod/smarty/compile/*
rm -rf var/cache/prod/smarty/cache/*
# Sur PrestaShop 1.6
rm -rf cache/smarty/compile/*
rm -rf cache/smarty/cache/*
Rechargez la page. Si la case a disparu, le problème était simplement un cache obsolète.
Étape 2 : vérifier les overrides
Si le problème persiste, inspectez le dossier override/ à la racine de votre boutique :
override/
├── classes/
│ └── Customer.php ← vérifier ici
└── controllers/
└── front/
├── AuthController.php
└── IdentityController.php
Un override de la classe Customer.php ou des contrôleurs AuthController / IdentityController peut forcer l'affichage de l'opt-in indépendamment du réglage back-office. Examinez ces fichiers et supprimez ou corrigez toute logique qui assigne $optin = true de manière inconditionnelle.
Après modification d'un override, supprimez le fichier d'index des classes :
# PrestaShop 1.7 / 8.x
rm var/cache/prod/class_index.php
# PrestaShop 1.6
rm cache/class_index.php
Étape 3 : modifier le template du thème
Si aucun override n'est en cause, le thème lui-même peut être responsable. Localisez le template d'inscription ou de gestion de compte :
PrestaShop 1.6 :
themes/votre-theme/identity.tpl
themes/votre-theme/authentication.tpl
PrestaShop 1.7 / 8.x :
themes/votre-theme/templates/customer/registration.tpl
themes/votre-theme/templates/customer/_partials/customer-form.tpl
Recherchez le bloc opt-in. Sur PrestaShop 1.6, il ressemble à ceci :
{if isset($optin) && $optin}
<div class="checkbox">
<label for="optin">
<input type="checkbox" name="optin" id="optin" value="1"
{if isset($smarty.post.optin) && $smarty.post.optin == 1}
checked="checked"
{/if}/>
{l s='Receive special offers from our partners!'}
</label>
</div>
{/if}
Si la condition {if isset($optin) && $optin} est absente ou mal écrite, la case s'affiche systématiquement. Vous avez deux options :
Option A — Commenter le bloc avec la syntaxe Smarty :
{* Opt-in partenaires désactivé
{if isset($optin) && $optin}
<div class="checkbox">
...
</div>
{/if}
*}
Option B — Supprimer entièrement le bloc (recommandé si vous n'utiliserez jamais cette fonctionnalité).
Bonne pratique : travaillez toujours dans un thème enfant pour que vos modifications survivent aux mises à jour.
Méthode 3 : approche moderne sur PrestaShop 8.x
Sur PrestaShop 8.x, le système de formulaires client a été modernisé avec le composant Symfony Form. L'opt-in partenaires est géré par le CustomerFormBuilder et le CustomerType.
Si la configuration back-office ne suffit pas, vous pouvez créer un module qui utilise le hook actionCustomerFormBuilderModifier pour retirer le champ :
<?php
// Dans votre module
public function hookActionCustomerFormBuilderModifier(array $params): void
{
/** @var \Symfony\Component\Form\FormBuilderInterface $formBuilder */
$formBuilder = $params['form_builder'];
if ($formBuilder->has('optin')) {
$formBuilder->remove('optin');
}
}
Cette approche est plus propre qu'une modification de template et résiste aux mises à jour du thème.
Implications RGPD à connaître
Depuis le 25 mai 2018, le RGPD impose des règles strictes sur le consentement marketing :
Si vous n'envoyez pas d'offres partenaires, désactivez l'opt-in. Collecter un consentement sans finalité réelle est contraire au principe de minimisation des données du RGPD.
Vérifier que la modification fonctionne
Après vos changements :
Questions fréquentes
Tout ce que vous devez savoir sur ce sujet.
Un projet PrestaShop ?
Discutons-en directement.
193 projets livrés
Lire sur le blog

Alexandre Carette
Expert PrestaShop & Architecture E-commerce
Développeur PrestaShop depuis 2014, 193 projets livrés. Je conçois des architectures headless Nuxt + PrestaShop et des outils d'automatisation IA pour les e-commerçants.