All posts
Functional5 min read

Managing Multiple Price Lists and Customer-Specific Pricing in Odoo

Configure Odoo price lists to offer different pricing by customer segment, currency, or volume - automatically applying the right price on quotations without manual overrides.

Price Lists in Odoo Sales#

Price lists let you define different pricing for different customer segments - retail vs. wholesale, domestic vs. international, standard vs. VIP - and apply them automatically on quotations without manual price entry.

Prerequisites#

Sales → Configuration → Settings → enable Pricelists.

Creating a Price List#

Sales → Configuration → Pricelists → New:

  • Name: Wholesale Pricelist
  • Currency: USD
  • Availability: specific customer groups or globally

Price List Rules#

Each pricelist has rules that define how prices are calculated:

Fixed Price Rule#

  • Apply On: All Products
  • Computation: Fixed Price
  • Product A: $85.00 (regardless of the base price)

Percentage Discount Rule#

  • Apply On: All Products (or specific category)
  • Computation: Discount 20% from Sales Price
  • Product A: base price $100 → pricelist price $80

Formula Rule#

  • Apply On: Product Category "Electronics"
  • Computation: Other Pricelist + Margin 10%
  • Uses the Cost pricelist as a base, adds 10% margin

Volume-Based Rules#

  • Min Quantity: 1 → $100/unit
  • Min Quantity: 10 → $92/unit (8% discount)
  • Min Quantity: 50 → $85/unit (15% discount)

Odoo automatically selects the applicable tier based on order quantity.

Assigning a Pricelist to a Customer#

Customer → Sales & Purchase tab → Pricelist: Wholesale Pricelist

When a salesperson creates a quotation for this customer, the Wholesale Pricelist is selected automatically → prices update to the wholesale rates.

Currency Conversion Pricelists#

For international customers:

  • Name: EU EUR Pricelist
  • Currency: EUR
  • Computation: Fixed Conversion at Rate OR use Odoo's currency rate engine

Quotations in EUR show EUR prices; accounting converts to your functional currency for posting.

Testing a Pricelist#

Pricelists → [Pricelist] → Run Pricelist:

  • Enter a product and quantity
  • See the computed price and which rule applied

This confirms the configuration is working as expected before it goes live.

Pricelist on the Quotation#

Salesperson can override the pricelist on a specific quotation:

  • Quotation → Pricelist field: change from Wholesale to Retail
  • All prices recalculate immediately

Useful when a wholesale customer occasionally orders under retail terms (e.g., a one-off direct purchase).

Try ERPeek on your own Odoo module - ask questions, scaffold tests, and explore your codebase in plain language.

Get started free