Prix masqués et devis en B2B sur PrestaShop : comment ça marche vraiment
Pourquoi masquer un prix au lieu de l'afficher
En B2B, masquer le prix et remplacer le bouton d'achat par un bouton "demander un devis" répond à des besoins réels et distincts, souvent mélangés dans un seul réglage: protéger une grille tarifaire négociée que des concurrents pourraient scraper automatiquement, forcer un contact qualifié avant de vendre des produits dont le prix dépend d'un volume ou d'une configuration, ou simplement réserver un catalogue entier (une gamme professionnelle, un tarif revendeur) aux seuls comptes B2B vérifiés. Ce sont trois objectifs différents, et le même réglage "cacher le prix" ne les sert pas toujours de la même façon: le premier a besoin d'un vrai masquage technique, le deuxième a surtout besoin d'un bouton différent, le troisième a besoin d'une portée (scope) précise par groupe de clients, pas d'un interrupteur général.
Ce qu'un prix "masqué" cache vraiment (et ce qu'il ne cache pas)
La méthode la plus répandue pour masquer un prix sur une page produit consiste à le cacher visuellement avec une règle CSS (display: none) sur le bloc de prix, en s'appuyant sur une classe ajoutée côté serveur quand la condition de masquage est remplie. C'est une méthode légitime et largement utilisée, mais elle a une conséquence technique qu'il vaut la peine de comprendre avant de la choisir: le prix reste présent dans le code source de la page, simplement invisible à l'affichage. Quiconque consulte le code source, utilise un lecteur d'écran mal configuré, ou fait tourner un script de collecte de données basique, peut toujours récupérer ce prix, même s'il n'apparaît jamais à l'écran pour un visiteur normal.
Ce n'est pas nécessairement un défaut à corriger à tout prix: pour l'objectif "empêcher un concurrent occasionnel de comparer visuellement les tarifs", un masquage visuel suffit largement, la plupart des concurrents ne vont pas jusqu'à lire le code source. Pour l'objectif "empêcher un scraping automatisé systématique de toute la grille tarifaire", un masquage purement visuel ne suffit pas: il faut soit ne jamais transmettre le prix au navigateur pour les visiteurs concernés (ce qui demande une logique différente au niveau du gabarit de page, pas seulement une classe CSS), soit accepter que la protection réelle vient d'ailleurs (authentification, limitation du nombre de requêtes, détection de robots), pas du masquage visuel lui-même. Le bon choix dépend de ce que vous cherchez vraiment à empêcher, pas d'une case à cocher générique "cacher les prix".
Le point qui compte le plus: où est calculé le prix négocié
Une fois qu'un client B2B a reçu un devis avec un prix négocié ligne par ligne, la question technique la plus importante n'est pas comment le prix a été caché au départ, c'est comment ce prix négocié est appliqué au moment de la commande. Un système de devis construit correctement calcule et applique ce prix côté serveur, typiquement via une règle de panier générée et liée au devis accepté, jamais à partir d'une valeur transmise par le formulaire du navigateur. La raison est simple: tout ce qui est calculé ou transmis côté client peut être modifié par un client suffisamment motivé avant l'envoi de la requête. Un prix négocié qui n'existerait que comme un champ caché dans une page HTML serait modifiable de la même manière qu'un prix affiché en clair, avec en plus l'illusion d'être protégé puisqu'il n'est pas visible. Un flux "accepter le devis puis commander" doit donc vérifier et réappliquer le prix négocié à chaque étape côté serveur, pas seulement au moment où le devis a été généré.
La portée du masquage : tout, une catégorie, un groupe, un produit
Un masquage général de tout le catalogue convient à un site purement B2B, où aucun visiteur non identifié n'a de raison de voir un prix. Un site mixte B2B/B2C a généralement besoin d'une portée plus fine: masquer uniquement une catégorie professionnelle, ou uniquement pour les groupes de clients non encore vérifiés, en laissant le reste du catalogue avec des prix normalement visibles. Choisir la mauvaise portée a un coût réel des deux côtés: masquer trop largement transforme des visiteurs B2C prêts à acheter immédiatement en visiteurs obligés de demander un devis pour un produit dont le prix n'avait rien de confidentiel, ce qui dégrade la conversion sans aucun bénéfice; masquer trop peu laisse justement visible la grille tarifaire que l'on cherchait à protéger.
Un piège SEO facile à manquer: le prix reste dans les données structurées
Une page produit PrestaShop expose généralement un prix dans ses données structurées (schema.org, balise offers) pour permettre aux moteurs de recherche d'afficher un prix dans les résultats enrichis. Masquer visuellement le prix sur la page sans retirer ou adapter ces données structurées laisse un prix, potentiellement périmé dès qu'il change, visible directement dans les résultats de recherche, en dehors de toute page consultée par un visiteur. C'est un des angles morts les plus fréquents d'une mise en place rapide du masquage de prix: le réglage visuel est fait, la donnée structurée qui alimente Google ne l'a pas suivi.
En résumé
Masquer un prix et proposer un devis à la place répond à des besoins réels en B2B, mais "cacher le prix" n'est pas une action unique: un masquage visuel protège contre un concurrent occasionnel, pas contre un scraping systématique; le calcul du prix négocié doit toujours se faire côté serveur, jamais dans le formulaire du navigateur; la portée du masquage (tout, catégorie, groupe, produit) détermine si la mesure protège le bon public ou dégrade la conversion du mauvais; et les données structurées de la page méritent une vérification séparée, parce qu'elles ne suivent pas automatiquement un réglage visuel. Sur PrestaShop, un module comme cll_quotes gère ce flux (bouton devis, masquage par portée, prix négocié appliqué côté serveur via une règle de panier), mais les principes ci-dessus valent indépendamment de l'outil choisi.
Guide d'installation et de configuration du module
Demandes de Devis - Devis B2B et prix masqués (Quote Requests)Permettez de demander un devis au lieu d'acheter : masquage des prix optionnel, gestionnaire de devis en BO…89,99 €Voir le produit