Se rendre au contenu

Comment afficher un prix par client sur une boutique Odoo B2B ?

Listes de prix, affectation au client, hors taxes et accès réservé : le paramétrage pas à pas, écrans d'Odoo 20 à l'appui.
13 novembre 2026 par
Comment afficher un prix par client sur une boutique Odoo B2B ?
Hors du Commun, Billy Felicie
| Aucun commentaire pour l'instant

Pour afficher un prix par client sur une boutique Odoo B2B, on crée une liste de prix (pour un client ou pour une catégorie de clients), on la rattache au site web, puis on l'affecte au client dans sa fiche, onglet Ventes & Achats, champ « Liste de prix » : dès qu'il se connecte, toute la boutique affiche ses prix négociés. Pour que le grand public ne voie pas ces tarifs, on réserve la boutique aux utilisateurs connectés et on n'ouvre les comptes que sur invitation.

La mécanique tient en trois réglages. Ce qui fait la différence entre une boutique B2B qui rassure vos clients et une boutique qui affiche le tarif public à votre meilleur distributeur, ce sont les détails : l'ordre des listes de prix, leur rattachement au site, le hors taxes, et la façon dont un contact hérite des conditions de sa société. Les écrans de ce guide sont ceux d'Odoo 20 ; le principe est le même en Odoo 19, à quelques libellés près.

Comment Odoo choisit-il le prix à afficher à chaque client de la boutique ?

Dans Odoo, le prix d'un article n'est pas un chiffre unique. Le prix de vente de la fiche article est un prix de référence. Les listes de prix viennent ensuite le remplacer selon des règles : un client, une catégorie d'articles, une quantité, une période, un pays.

Sur la boutique en ligne, Odoo applique une logique simple. Un visiteur non connecté voit la liste de prix par défaut du site (ou celle de son groupe de pays, si vous en utilisez). Un client connecté voit la liste de prix inscrite sur sa fiche, à une condition que beaucoup découvrent trop tard : la liste de prix doit être rattachée au site web qu'il visite. La documentation d'Odoo le dit explicitement :

« Les utilisateurs connectés avec des listes de prix assignées voient la liste de prix assignée par défaut si elle est assignée au site Web qu'ils visitent. » (Documentation officielle Odoo 19, Prix de l'eCommerce)

Sinon, Odoo retombe sur la liste par défaut du site, c'est-à-dire la première liste rattachée au site et sans groupe de pays, dans l'ordre de la liste des listes de prix. Votre client se connecte, et voit le tarif public. Aucun message d'erreur ne le signale.

L'autre conséquence est commerciale. Le panier en ligne est un devis Odoo comme un autre : la commande passée sur le site arrive dans l'application Ventes avec les mêmes prix que si votre ADV l'avait saisie. Une seule grille tarifaire alimente le site, les devis des commerciaux et la facture. C'est tout l'intérêt de vendre en ligne depuis l'ERP plutôt que depuis une boutique séparée.

Comment construire une liste de prix B2B dans Odoo ?

Première étape : activer la fonction. Dans les paramètres de l'application Ventes (Ventes › Configuration › Paramètres), cochez « Listes de prix » (la même case existe dans les paramètres du site web, section eCommerce : activer l'une active l'autre). Les listes se gèrent ensuite dans Ventes › Produits › Listes de prix, ou dans Site Web › eCommerce › Produits › Listes de prix.

Une liste de prix est un ensemble de règles. Chaque ligne de l'onglet Règles précise :

  • sur quoi elle s'applique : tous les produits, une catégorie de produits, un produit ou une variante ;
  • comment le prix se calcule : une remise en pourcentage, une surcharge, ou un prix fixe (en Odoo 19, la surcharge passe par le type « Formule », qui gère aussi arrondis et frais fixes) ;
  • sur quelle base : le prix de vente, le coût, ou une autre liste de prix ;
  • à partir de quelle quantité et pendant quelle période elle vaut.
Liste de prix Revendeurs B2B dans Odoo 20 avec une remise de 15 % sur la catégorie Produits finis et deux prix fixes par quantité
Capture issue d'Odoo 20 : la liste de prix « Revendeurs B2B », avec une remise de 15 % sur une catégorie et deux prix fixes qui ne valent qu'à partir de 3 et de 50 unités.

Sur cet exemple, tous les revendeurs ont 15 % de remise sur les produits finis. Le convoyeur passe à un prix fixe de 2 190 € dès 3 unités commandées, et le kit de fixation à 18,90 € dès 50 unités. Odoo arbitre seul entre ces règles : une règle sur un produit l'emporte sur une règle de catégorie, et à précision égale, la règle à la quantité minimale la plus haute passe devant. Le prix dégressif s'applique dès que la quantité commandée atteint le seuil, dans le panier en ligne comme sur un devis.

Deux précisions évitent bien des surprises. Une règle posée sur une catégorie couvre aussi ses sous-catégories, mais jamais un article sans catégorie. Et le type de règle change ce que voit le client : avec une remise calculée sur le prix de vente, le prix d'origine apparaît barré sur la boutique, et la remise s'affiche sur le devis si l'option « Remises » est activée dans les paramètres des Ventes ; avec un prix fixe, il ne voit que son prix net. À vous de choisir ce que vous voulez montrer.

Faut-il une liste de prix par client ou par catégorie de clients ?

Techniquement, Odoo accepte une liste de prix par client. En pratique, cent listes de prix pour cent clients deviennent ingérables à la première hausse de tarif fournisseur. La structure qui tient dans le temps est à deux étages.

Le premier étage, ce sont les listes par catégorie de clients : revendeurs, installateurs, grands comptes, export. Elles portent l'essentiel de la politique tarifaire. Le second étage, ce sont les contrats de quelques clients stratégiques, construits par-dessus la liste de leur catégorie plutôt qu'à côté.

Cette logique colle d'ailleurs au cadre légal français des ventes entre professionnels, qui prévoit des conditions générales de vente par catégorie d'acheteurs, puis des conditions particulières négociées :

« Ces conditions générales de vente peuvent être différenciées selon les catégories d'acheteurs de produits ou de prestations de services. » (Code de commerce, article L441-1, Légifrance)
Liste de prix Contrat Négoce Rhodanien dans Odoo 20 basée sur la liste Revendeurs B2B avec 5 % de remise supplémentaire
Capture issue d'Odoo 20 : un contrat client construit sur la liste « Revendeurs B2B », avec 5 % de remise en plus et un prix fixe négocié sur un article.

Ici, le contrat du client fictif Négoce Rhodanien tient en deux lignes : un prix fixe de 65 € sur le support mural à partir de 20 unités, et 5 % de remise sur la liste Revendeurs B2B pour tout le reste. Le jour où la grille revendeurs augmente, le contrat suit tout seul. Sans cet empilement, chaque hausse se reporte à la main, contrat par contrat.

Les distributeurs et grossistes sont ceux qui ont le plus besoin de cette rigueur : beaucoup de références, des remises par famille et des clients qui recommandent souvent. Leurs autres chantiers Odoo (emplacements et traçabilité du stock, réapprovisionnement, code-barres, transporteurs) sont détaillés dans notre page Odoo pour le négoce et la logistique.

Comment affecter une liste de prix à un client dans Odoo ?

Ouvrez la fiche du client (Ventes › Commandes › Clients, ou Site Web › eCommerce › Commandes › Clients), onglet Ventes & Achats, et choisissez sa liste dans le champ « Liste de prix ».

Onglet Ventes et Achats de la fiche client Négoce Rhodanien dans Odoo 20, champ Liste de prix renseigné avec le contrat du client
Capture issue d'Odoo 20 : l'onglet « Ventes & Achats » de la fiche du client Négoce Rhodanien, avec sa liste de prix contractuelle dans le champ « Liste de prix ».

Trois points pratiques. La liste de prix se règle sur la société : ses contacts, c'est-à-dire les acheteurs qui se connecteront à la boutique, en héritent. Un nouveau client reçoit automatiquement la liste par défaut, donc pensez à la changer au moment où vous ouvrez son compte. Enfin, en multi-sociétés, la liste se règle société par société.

Pour vérifier le résultat avant d'ouvrir l'accès au client, le plus simple est de créer un devis à son nom dans l'application Ventes. La liste de prix s'y reporte toute seule, et les prix calculés sont ceux qu'il verra sur la boutique une fois connecté.

Devis brouillon Odoo 20 pour Négoce Rhodanien avec la liste de prix du contrat et les remises calculées ligne par ligne
Capture issue d'Odoo 20 : un devis de contrôle, où la liste de prix du client s'applique seule et affiche le cumul des remises de la catégorie et du contrat.

Le convoyeur, commandé à l'unité, n'atteint pas le seuil de 3 de son prix fixe : il sort à 19,25 % de remise, 15 % au titre de la catégorie revendeurs puis 5 % au titre du contrat. Le kit de fixation, commandé par 50, part du prix fixe de 18,90 € avant les 5 % du contrat. Le support mural, à prix fixe, n'affiche aucune remise. Si un de ces chiffres vous surprend, c'est maintenant qu'il faut corriger, pas après la première commande en ligne.

Deux hommes côte à côte devant un écran où s'affiche « It works »

Toi quand ton plus gros client se connecte pour la première fois et voit enfin ses prix à lui, sans avoir appelé l'ADV.

Comment afficher les prix hors taxes aux professionnels ?

Un acheteur professionnel raisonne hors taxes. Dans Site Web › Configuration › Paramètres, section eCommerce, le réglage « Afficher les prix des produits » propose « Hors taxes » ou « Toutes taxes comprises ». En hors taxes, la TVA est calculée et ajoutée au récapitulatif de commande. Le réglage vaut pour un site : avec deux sites, chacun a le sien.

Odoo 20 va plus loin. L'onglet eCommerce de chaque liste de prix porte désormais son propre réglage d'affichage, taxes incluses ou exclues, qui prend le pas sur celui du site. Sur un même site, vos revendeurs connectés voient donc des prix hors taxes pendant que les particuliers voient des prix TTC. En Odoo 19, ce réglage n'existe qu'au niveau du site.

Faut-il pour autant mélanger B2B et B2C sur une seule boutique ? La documentation d'Odoo recommande deux sites distincts quand on vend aux deux publics, et c'est souvent le bon choix : catalogue, parcours de commande et paiement ne sont pas les mêmes. Notez au passage qu'une liste de prix ne peut être rattachée qu'à un seul site à la fois ; pour l'utiliser sur deux sites, il faut la dupliquer. Si vous gardez aussi une boutique grand public, ce qu'elle demande en plus (mesure d'audience, référencement, relance des paniers abandonnés, expéditions) est présenté dans notre page Odoo eCommerce en B2C.

Comment cacher vos prix aux visiteurs non connectés ?

Afficher un prix par client n'a de sens que si les autres ne le voient pas. Odoo offre plusieurs niveaux de verrouillage, tous dans Site Web › Configuration › Paramètres.

  • Fermer l'inscription libre. Dans la section Général, le réglage « Compte client » passe sur « Sur invitation ». Seuls les clients que vous invitez peuvent créer un compte : depuis la fiche du client, le menu Actions propose « Donner accès au portail », d'où part l'invitation par courriel.
  • Fermer la boutique. Dans la section eCommerce, le réglage « Accès au eCommerce » passe sur « Utilisateurs connectés » : le catalogue n'est plus visible du public.
  • Montrer le catalogue sans les prix. C'est la vitrine pour prospects : une liste de prix à zéro, placée en tête des listes du site, sert de liste par défaut pour les visiteurs, et chaque client connecté reçoit sa vraie liste. En Odoo 20, le réglage « Masquer Ajouter au panier » remplace alors le bouton d'achat par un bouton « Contactez-nous », pour les produits à prix nul ou pour des catégories choisies. En Odoo 19, le réglage s'appelle « Empêcher la vente de produits à prix zéro » et ne vise que les produits à prix nul.

Le bon niveau dépend de votre marché. Une boutique fermée protège vos prix, une vitrine sans prix attire des prospects : rien n'empêche de commencer par la première et de passer à la seconde une fois le catalogue propre. La validation des comptes (contrôle du SIRET ou du numéro de TVA avant l'invitation) reste une décision humaine, prise par l'ADV ou le commercial.

Ces réglages s'inscrivent dans un projet plus large : qui peut acheter, quels produits sont visibles, comment la boutique se relie aux devis et au stock. Nous présentons notre façon de cadrer ces portails professionnels dans notre page dédiée, que nous vous invitons à consulter ici : intégrateur Odoo pour l'e-commerce B2B.

Gros plan sur un homme barbu au sourire crispé

Toi quand ton concurrent t'appelle pour te dire qu'il a trouvé ta grille revendeurs sur ta boutique, sans mot de passe.

Pourquoi un client voit-il le mauvais prix sur la boutique Odoo ?

Quand un client signale un prix faux, la cause est presque toujours dans cette liste.

  • La liste de prix n'est rattachée à aucun site. Une liste sans site et non sélectionnable n'est pas utilisée par la boutique, même si elle figure sur la fiche du client.
  • Une liste est cochée « Sélectionnable ». Le visiteur peut alors choisir sa liste dans un sélecteur à côté de la barre de recherche, y compris une liste qui ne lui est pas destinée. En B2B, laissez cette case décochée.
  • Les groupes de pays se mélangent. Une liste affectée au client passe avant la liste de son pays, sauf si elle est liée à un autre groupe de pays. Avec des listes géographiques, chaque liste du site doit avoir son groupe de pays.
  • L'ordre des listes est mauvais. La liste par défaut du site est la première liste rattachée au site et sans groupe de pays. Une liste B2B remontée en tête devient le tarif de tout le monde.
  • Le contact n'est pas rattaché à sa société. L'acheteur créé à part, sans lien avec l'entreprise cliente, garde la liste par défaut.
  • La règle de catégorie ne couvre pas l'article. Un article sans catégorie, ou une règle de produit plus précise, change le résultat.

Le cas le plus lourd reste le démarrage. Vos remises négociées vivent aujourd'hui dans un ancien ERP, un tableur ou la mémoire de l'ADV. Les reprendre, c'est d'abord les trier : regrouper par catégorie de clients ce qui peut l'être, ne garder en contrat que les vraies exceptions, puis importer listes et règles après les articles et les clients. Ce qu'il faut reprendre, ce qu'il vaut mieux laisser dans l'ancien outil et les erreurs classiques d'une reprise sont détaillés dans notre guide comment migrer ses données vers Odoo.

En résumé, afficher un prix par client sur une boutique Odoo B2B ne demande pas de développement spécifique : des listes de prix bien construites, rattachées au site, affectées aux bonnes sociétés, et un accès réservé aux clients invités. Le travail est ailleurs : simplifier une politique tarifaire qui s'est empilée pendant des années. Chez Hors du Commun, intégrateur Odoo à Lyon, c'est pourquoi nous commençons toujours par vos règles métier, avant de toucher au moindre réglage de la boutique.

Sources et liens utiles évoqués dans cet article :
Billy Felicie, expert en intégration Odoo chez Hors du Commun

Article rédigé par Billy Felicie

Expert en intégration Odoo chez Hors du Commun (Lyon). J'accompagne les PME dans la mise en place de leurs outils numériques et l'optimisation de leurs processus métiers depuis plus de 5 ans.

Comment afficher un prix par client sur une boutique Odoo B2B ?
Hors du Commun, Billy Felicie 13 novembre 2026
Partager cet article
Étiquettes
Se connecter pour laisser un commentaire.