PrestaShop

Cacher les prix aux visiteurs PrestaShop B2B

Comment masquer les prix aux visiteurs non connectés sur PrestaShop 8 et 9 : mode catalogue natif, override Smarty, et module B2B pour une gestion avancée des groupes clients.

Les boutiques B2B ont souvent besoin de masquer les prix publics : grilles tarifaires personnalisées par client, accords commerciaux confidentiels, ou simple volonté de forcer la création de compte. PrestaShop propose plusieurs approches selon la granularité souhaitée.

Méthode 1 : Mode catalogue natif (la plus simple)

PrestaShop intègre un mode catalogue qui masque les prix et le bouton « Ajouter au panier » pour tous les visiteurs :

  1. Allez dans Préférences → Produits
  2. Activez Mode Catalogue → Oui
  3. Enregistrez

Limite : ce mode masque les prix pour tout le monde, y compris les clients connectés. Ce n’est pas idéal pour du B2B où les clients identifiés doivent voir leurs tarifs.

Méthode 2 : Groupes clients (recommandé pour B2B)

PrestaShop permet de gérer des groupes avec des droits différents :

  1. Créez un groupe « Visiteur sans prix » dans Clients → Groupes
  2. Dans les paramètres du groupe, décochez Afficher les prix
  3. Affectez le groupe par défaut « Visiteur » à ce nouveau groupe

Les clients connectés (groupe « Client » ou « Grossiste ») verront les prix, les visiteurs non.

Configuration du groupe

Clients → Groupes → Modifier le groupe "Visiteur"
  ├── Afficher les prix : Non
  ├── Remise : 0%
  └── Méthode d'affichage des prix : HT ou TTC selon votre besoin

Méthode 3 : Override Smarty (PS 1.6 et 1.7 classic)

Si vous utilisez un thème basé sur Smarty (le thème classic ou un thème 1.6), vous pouvez conditionner l’affichage via la variable $logged :

Sur la page produit

Dans votre fichier de template produit (par exemple themes/votre-theme/templates/catalog/product.tpl pour PS 1.7, ou themes/votre-theme/product.tpl pour PS 1.6) :

{* Masquer le prix et le bouton panier si non connecté *}
{if $customer.is_logged}
    <div class="product-prices">
        {block name='product_prices'}
            {include file='catalog/_partials/product-prices.tpl'}
        {/block}
    </div>
    <div class="product-add-to-cart">
        {block name='product_add_to_cart'}
            {include file='catalog/_partials/product-add-to-cart.tpl'}
        {/block}
    </div>
{else}
    <div class="login-to-see-price">
        <p>
            <a href="{$urls.pages.authentication}" class="btn btn-primary">
                Connectez-vous pour voir les prix
            </a>
        </p>
    </div>
{/if}

Sur les listings catégorie

Même logique dans product-miniature.tpl (PS 1.7) ou product-list.tpl (PS 1.6) :

{if $customer.is_logged}
    <span class="price">{$product.price}</span>
{else}
    <span class="price-hidden">Prix sur demande</span>
{/if}

N’oubliez pas de vider le cache

Après toute modification de template :

  1. Paramètres avancés → Performances
  2. Désactivez le cache (temporairement) ou cliquez sur Vider le cache
  3. Activez Forcer la compilation pendant vos tests
  4. Remettez les paramètres de production une fois terminé

Méthode 4 : CSS rapide (déconseillé)

On voit parfois cette astuce CSS, mais elle est à éviter car les prix restent visibles dans le code source :

/* NE PAS FAIRE - les prix restent dans le HTML */
.not-logged .product-price { display: none; }

Un concurrent ou un client malin n’a qu’à inspecter le code pour voir vos tarifs. Préférez toujours une solution côté serveur (override PHP ou groupes clients).

Quelle méthode choisir ?

CritèreMode catalogueGroupesOverride Smarty
ComplexitéTrès simpleSimpleMoyenne
GranularitéTout ou rienPar groupe clientPar template
Version PSToutesToutes1.6 / 1.7 classic
PersonnalisationAucuneBonneTotale

Pour une boutique B2B sérieuse, la méthode des groupes clients est la plus robuste et la plus maintenable. Elle ne nécessite aucune modification de code et survivra aux mises à jour de PrestaShop.

Optimiser votre boutique B2B

Une fois vos prix masqués pour les visiteurs anonymes, assurez-vous que les clients connectés trouvent facilement vos produits. L’optimisation du référencement de votre catalogue PrestaShop — balises meta, descriptions enrichies, maillage entre catégories — reste essentielle pour attirer du trafic qualifié B2B via Google.


Pour aller plus loin :

Agence web PrestaShop & WordPress

Agence web spécialisée PrestaShop et WordPress : création, maintenance, sécurité, performance et référencement. Nos tutoriels sont issus de nos interventions sur de vraies boutiques.

L'agence Genisoft → LinkedIn →