Se rendre au contenu

Listes de prix Odoo 20 : remises par client et par quantité

Activer les listes de prix, écrire les règles, comprendre laquelle gagne et les affecter aux clients : le pas à pas sous Odoo 20, avec ses pièges.

Table of contents

No titles in the blog post

Le commercial appelle un lundi matin : le client historique a reçu son devis au prix public, alors que sa remise de 15 % est négociée depuis des années. Dans la plupart des bases que nous auditons, la remise existe bien, mais elle vit dans la tête de quelqu'un ou dans un tableur. Les listes de prix d'Odoo servent à la sortir de là. Le principe est simple, les pièges se logent dans l'ordre d'application des règles et dans la liste « par défaut ». Ce pas à pas décrit la configuration sous Odoo 20, version que nous avons relue dans la documentation 20.0 et dans le code publié par l'éditeur.

Ce qu'il vous faut avant de commencer

Les listes de prix appartiennent à l'application Ventes, présente en Community comme en Enterprise (voir notre article sur les deux éditions). Aucun module à installer, seulement un réglage à cocher. Il faut en revanche le droit d'administrateur des ventes, et un minimum de propreté dans le catalogue : des catégories de produits renseignées si vous comptez fixer des règles par famille. Un produit sans catégorie échappe à la règle « toutes les catégories », la documentation le précise.

Étape 1 : activer les listes de prix

  1. Ouvrez Ventes ▸ Configuration ▸ Réglages.
  2. Dans la partie tarification, cochez Listes de prix (« Un produit peut avoir plusieurs prix, remises automatiques, etc. »).
  3. Enregistrez. Le menu Ventes ▸ Produits ▸ Listes de prix apparaît.

Tant que cette case est décochée, rien de ce qui suit n'est visible. Les devis continuent de prendre le prix de la fiche produit.

Étape 2 : créer la liste et ses règles

Dans Ventes ▸ Produits ▸ Listes de prix, cliquez sur Nouveau. Donnez un nom qui dit à quoi elle sert (« Distributeurs 2026 », « Soldes de janvier ») et vérifiez la Devise. En multi-sociétés, renseignez la Société ; laissée vide, la liste vaut pour toutes. Le champ Groupes de pays sert aux entreprises qui vendent à l'étranger, et il joue un rôle dans le choix de la liste par défaut (voir plus bas).

L'onglet Règles contient une ligne par règle. Une règle se compose de trois blocs : ce qu'elle vise, comment elle calcule le prix, quand elle s'applique.

Ce que la règle vise

Vous pouvez viser une catégorie, un produit, ou, pour les produits à variantes, une variante précise. Sans rien viser, la règle s'applique à tout le catalogue. La Quantité minimale déclenche la règle à partir d'un seuil, ce qui donne les prix dégressifs. Le champ Validité borne la règle dans le temps, utile pour une promotion de saison que personne n'aura à désactiver à la main.

Comment elle calcule le prix

Le formulaire d'une règle propose, dans la version 20 que nous avons examinée, trois façons de calculer (le champ s'intitule Apply dans le code et la traduction française n'est pas encore complète) :

  • Remise : un pourcentage retranché du prix de vente, ou du prix d'une autre liste de prix. Dix pour cent de remise sur le prix de vente d'un produit à 200 € donne 180 €.
  • Surcharge (majoration) : un pourcentage ajouté, au choix sur le prix de vente, sur le coût de la fiche produit ou sur une autre liste. C'est la façon d'obtenir « coût + 25 % ».
  • Prix fixe : un montant qui remplace le prix de la fiche, par unité.

Pour les deux premiers modes, deux champs supplémentaires retouchent le résultat : Arrondir à et Ajouter (« Frais supplémentaires » dans les traductions). L'arrondi s'applique après le pourcentage, puis le montant fixe est ajouté. Pour obtenir des prix en 9,99 €, arrondissez à 10 et ajoutez -0,01. Attention : l'arrondi va au multiple le plus proche. Un article à 12 € après remise devient 10 € puis 9,99 €, un article à 17 € devient 20 € puis 19,99 €. Faites le test sur trois ou quatre produits avant de généraliser.

Un détail de présentation compte pour la relation client. Selon la documentation d'Odoo, une remise en pourcentage peut apparaître sur la ligne du devis, alors qu'une règle plus élaborée n'affiche que le prix net. Le code de la version 20 précise qu'il faut activer le réglage des remises pour que le client voie la remise. Si vous tenez à montrer l'effort commercial, vérifiez ce réglage dans Ventes ▸ Configuration ▸ Réglages avant d'envoyer un premier devis.

Étape 3 : comprendre quelle règle gagne

C'est ici que la plupart des erreurs se produisent. Quand plusieurs règles d'une même liste visent le même produit, Odoo les départage dans cet ordre, d'après la documentation 20.0 et le tri défini dans le code :

  1. la plus précise l'emporte : variante, puis produit, puis sous-catégorie, puis catégorie parente, puis tout le catalogue ;
  2. à précision égale, la quantité minimale la plus élevée passe devant ;
  3. ensuite, l'ordre des catégories ;
  4. enfin, la règle créée en dernier.

Conséquence pratique : une règle « -20 % sur toute la catégorie Mobilier » ne s'applique pas à un fauteuil qui a sa propre règle à -5 %. Si un client se plaint d'une remise non appliquée, cherchez d'abord une règle plus précise oubliée, souvent une ancienne promotion dont la date de fin n'a jamais été saisie.

Étape 4 : affecter la liste aux clients

  1. Ouvrez Ventes ▸ Commandes ▸ Clients puis la fiche du client.
  2. Onglet Ventes et achats, section Ventes, champ Liste de prix : choisissez la liste.

Sur un nouveau devis, la liste de prix se remplit d'après la fiche du client, et vous pouvez la changer à la main sur le devis. Une fois la commande confirmée, Odoo refuse de changer la liste de prix (« You cannot change the pricelist of a confirmed order ») : corrigez avant de confirmer, pas après.

Quand le client n'a pas de liste choisie, Odoo applique la liste par défaut, qui est la première de la page des listes de prix sans groupe de pays, en lisant de haut en bas. La documentation insiste aussi sur un comportement déroutant : la fiche d'un client récupère automatiquement cette liste, même si vous laissez le champ vide. Si vous réorganisez les lignes de la page des listes de prix, vous changez donc la liste par défaut de tous les nouveaux clients. À faire en connaissance de cause.

Les remises de paiement comptant, elles, ne relèvent pas des listes de prix mais des conditions de paiement : nous en avons détaillé le paramétrage dans l'article sur l'escompte et les pénalités.

Vérification finale

  1. Créez un client de test et affectez-lui la nouvelle liste.
  2. Créez un devis pour ce client avec un produit visé par une règle simple, en quantité 1, puis en quantité supérieure au seuil. Le prix unitaire doit changer à la validation de la ligne.
  3. Ajoutez un produit visé par deux règles (une de catégorie, une de produit) et confirmez que la plus précise gagne.
  4. Sur la fiche de la liste, le bouton Imprimer produit un rapport de la liste, pratique pour la montrer à la direction commerciale avant mise en service.
  5. Supprimez le devis de test, sans confirmer la commande.

Les différences avec la version 19

La documentation 19.0 présente un « type de prix » à trois valeurs (remise, formule, prix fixe) et parle d'une liste publique par défaut. La documentation 20.0 reprend un vocabulaire proche, tandis que le code de la 20.0 expose une règle de type « surcharge » et le choix du prix de base dans la ligne. Cette page de documentation 20.0 parle encore de « formule » : sur une base réelle, vous verrez peut-être un libellé différent du nôtre. Pour le reste, le principe de la liste de prix et l'ordre des règles ne changent pas.

Pour refaire ces gestes sur une base d'essai, Odoo 20 au quotidien, le livre d'Emmanuel Chaumery, déroule une PME fictive de négoce et de services écran par écran, des premiers devis jusqu'aux agents IA. Il est disponible en broché sur Amazon et en ebook chez Cultura.

Sources

  • Documentation Odoo 20.0, Pricelists (consultée le 09/11/2026) : Lire la documentation
  • Documentation Odoo 19.0, Pricelists (consultée le 09/11/2026) : Lire la documentation
  • Code d'Odoo 20.0, modèle des règles de liste de prix (consulté le 09/11/2026) : Lire le code