Vous avez déjà reçu ce mail : « Bonjour, je suis revendeur, pouvez-vous m’envoyer votre grille tarifaire ? » Et vous avez répondu la même chose que la semaine dernière : un PDF, une capture d’écran, un lien Drive. Pendant ce temps, votre boutique WooCommerce affiche tous vos prix à la terre entière, y compris à votre concurrent qui passe une commande de test tous les deux mois.
Le vrai sujet n’est pas « faut-il cacher les prix ? ». C’est : à qui les montrer, quand, et comment sans transformer votre site en gruyère technique. On va être honnête, la plupart des boutiques B2B qui tentent le coup finissent avec une usine à gaz : trois rôles utilisateurs, un plugin de membres, un autre pour les prix, et un conflit CSS au milieu. Voici l’approche qui tient debout.
Le problème réel : WooCommerce n’a pas de notion de « client à deux vitesses »
Dans WooCommerce, un produit a un prix, et ce prix est public par défaut. Point. Il n’existe pas nativement de réglage « afficher le prix uniquement aux utilisateurs connectés appartenant au rôle X ». Ça, c’est la base qu’il faut accepter avant d’aller plus loin.
Donc quand on parle de prix cachés WooCommerce B2B, on parle en réalité de trois mécanismes distincts qu’il faut faire cohabiter :
- La visibilité du prix : est-ce que le prix s’affiche dans la boucle produit, sur la fiche, dans le panier ?
- La capacité à commander : est-ce que le bouton « Ajouter au panier » est remplacé par un formulaire de devis ?
- La logique d’accès : qui est considéré comme « revendeur validé » et comment il obtient ce statut.
Confondre ces trois couches, c’est le premier piège. J’ai vu des boutiques cacher le prix mais laisser le bouton d’ajout au panier actif : le client ajoute, arrive au panier, voit le prix, et là c’est trop tard — vous avez perdu la main sur la négociation.
Le scénario qui marche : catalogue public, tarifs sur validation
Voici le truc que la plupart des boîtes B2B adoptent sans le formuler clairement : le catalogue reste indexable et visible, mais le prix et le bouton d’achat basculent selon le statut du visiteur. Concrètement, trois profils voient trois choses différentes.
Visiteur anonyme (ou prospect)
Il voit les fiches produits, les descriptions, les photos, les caractéristiques techniques. Pas de prix. À la place, un encart « Prix sur demande » et un formulaire de devis. C’est bon pour le SEO : Google indexe le contenu produit, pas le tarif. Et c’est bon commercialement : vous qualifiez avant de donner un chiffre.
Client enregistré mais non validé
Même chose, sauf qu’il peut suivre ses demandes de devis. Si vous voulez pousser plus loin la qualification (SIRET, TVA intracom, volume annuel), la mécanique est décrite dans notre article sur les champs TVA, SIRET et quantité dans un formulaire de devis WooCommerce. C’est là que vous filtrez les curieux des vrais acheteurs.
Revendeur validé (rôle personnalisé)
Là, il voit les prix HT, le bouton « Ajouter au panier » classique, et il commande en autonomie. Aucun formulaire, aucun mail à envoyer. C’est le gain de temps principal.
Sur le papier, c’est simple. Dans WooCommerce, il faut soit coder un rôle et des conditions, soit passer par un plugin qui gère cette bascule. Un plugin de devis bien fait remplace le bouton d’ajout au panier par un formulaire contextuel, et vous laissez le reste de la logique d’accès à WooCommerce Membership ou à un rôle custom. Le plugin Ebene Request a Quote fait exactement ce travail de remplacement — sans toucher à la structure de vos produits.
Le piège que personne ne voit venir : le SEO
Si vous cachez le prix proprement, mais que vous cachez aussi le contenu produit aux robots, vous perdez tout l’intérêt. La règle : ce qui doit être indexé, c’est la fiche, pas le prix. Un visiteur anonyme doit voir une fiche complète. Un crawler aussi.
Sauf qu’en pratique, beaucoup de configurations « prix cachés » génèrent des pages vides pour Googlebot parce que le prix conditionne l’affichage de tout le bloc produit. Vérifiez systématiquement une chose : ouvrez une fiche produit en navigation privée, puis inspectez la page avec l’outil de rendu de la Search Console. Si le contenu disparaît, votre plugin de cache ou votre gestion de rôle fait trop de zèle.
Autre point souvent négligé : le structured data. WooCommerce génère un balisage Product avec un champ offers.price. Si le prix n’est pas affiché, ce champ ne doit pas être présent ou doit être vide — sinon Google signale une incohérence entre le balisage et le contenu visible. On a déjà détaillé les conséquences dans notre retour sur les erreurs SEO qui plombent les fiches produits, et celle-ci en fait partie.
Julie, 300 références, deux grilles tarifaires
Julie gère une boutique de matériel de chantier. 300 références, deux publics : des artisans (prix TTC affichés, achat direct) et des revendeurs (prix HT remisés, sur validation de compte). Avant, elle envoyait un PDF par mail à chaque revendeur. En moyenne, elle passait une bonne heure chaque matin à répondre à des demandes de tarifs, souvent pour des références qui n’étaient même pas dans son catalogue.
Ce qu’elle a mis en place : un rôle revendeur créé avec un plugin de gestion de rôles, un formulaire de demande de devis qui s’affiche pour tous les autres visiteurs à la place du bouton « Ajouter au panier », et une page « Devenir revendeur » qui envoie une notification à son équipe. Quand un compte est validé, le client bascule instantanément sur l’affichage des prix HT et le panier classique.
Résultat concret, sans chiffres marketing : ses matinées ne sont plus des sessions de copier-coller de grille tarifaire. Et sur les fiches produits, elle a gardé tout le contenu indexable — donc elle continue de capter du trafic organique sur les références techniques.
Les réglages qui cassent quand on empile les plugins
Le vrai casse-tête, ce n’est pas d’afficher ou de cacher un prix. C’est de gérer les interactions entre les couches. Voici les trois qui posent problème le plus souvent.
Le bouton d’achat qui reste visible
Un plugin de devis remplace le bouton si la condition est bien remplie. Si vous ajoutez ensuite un plugin de prix dynamique ou de promotions, il peut réinjecter le bouton via un hook woocommerce_after_shop_loop_item. Testez toujours en navigation privée après chaque ajout de plugin.
Les prix qui fuient dans le panier ou les emails
Si un visiteur non validé arrive à ajouter un produit au panier (par un lien direct), le prix peut apparaître dans le récapitulatif. Le bon réflexe : bloquer l’ajout au panier en amont, pas seulement masquer le prix en CSS. Masquer en CSS, c’est comme cacher ses clés sous le paillasson.
Les règles de taxe qui s’appliquent avant validation
Une boutique B2B affiche souvent les prix HT. Si votre configuration WooCommerce est en TTC par défaut pour le grand public, la bascule peut être bancale. Pensez à vérifier les réglages de taxe par rôle utilisateur, ou à utiliser un affichage HT conditionnel. C’est le genre de détail qui vous coûte une réclamation client le premier mois.
Faut-il cacher les prix à tout le monde, ou seulement à certains ?
La question mérite d’être posée avant de choisir un plugin. Trois stratégies existent, et elles n’ont pas le même impact commercial.
- Tout cacher : chaque visiteur passe par un devis. Simple techniquement, mais vous perdez les ventes impulsives et vous filtrez mal.
- Cacher aux anonymes uniquement : un compte gratuit suffit à voir les prix. Bon compromis si vos tarifs sont standards.
- Cacher à tous sauf aux rôles validés : la vraie logique B2B. Demande un peu plus de paramétrage, mais c’est ce qui correspond au modèle revendeur.
Le choix dépend de votre produit. Du matériel pro avec des tarifs négociés au cas par cas ? Troisième option. Des consommables avec des prix stables ? Deuxième option, plus rapide à mettre en place. Si vous hésitez encore entre formulaire et panier, on a posé la comparaison dans formulaire devis ou panier : le bon choix pour le matériel pro.
Ce qu’il faut retenir avant de vous lancer
Les prix cachés WooCommerce B2B, ce n’est pas un réglage qu’on active. C’est une logique de rôles doublée d’une logique d’affichage, avec le SEO comme contrainte de fond. Vérifiez trois choses avant de mettre en production : un visiteur anonyme voit bien le contenu produit mais pas le prix, un client validé voit bien prix et panier, et Googlebot n’est pas bloqué par vos conditions d’affichage.
Le reste, c’est du paramétrage. Et un plugin qui remplace le bouton d’achat proprement vous évite d’aller chatter dans le code de votre thème — ce qui, en vrai, est la meilleure façon de garder vos mises à jour WooCommerce indolores.
FAQ
Peut-on cacher les prix uniquement à certains rôles dans WooCommerce ?
Pas nativement. WooCommerce n’a pas de réglage « prix visible par rôle ». Il faut soit créer un rôle personnalisé et conditionner l’affichage du prix et du bouton d’ajout au panier, soit utiliser un plugin de devis qui gère la bascule selon le statut de connexion ou le rôle. Le plus propre : rôle custom + plugin de devis pour le remplacement du bouton.
Les prix cachés nuisent-ils au référencement ?
Non, à condition que la fiche produit reste visible et indexable. Le contenu (description, caractéristiques, images) doit s’afficher pour tous, y compris Googlebot. Seul le prix disparaît. Attention au balisage Product : si le prix n’est pas affiché, la propriété offers.price ne doit pas être présente pour éviter une incohérence signalée par Google.
Comment un client devient-il « revendeur validé » ?
Généralement par une demande depuis une page dédiée ou depuis le formulaire de devis, avec vérification manuelle du SIRET et de la TVA intracom par votre équipe. Une fois validé, un administrateur change son rôle utilisateur dans WooCommerce, et l’affichage des prix et du panier bascule automatiquement. Pour aller plus loin dans la qualification, voyez notre méthode pour qualifier les prospects B2B.