Skip to Content
Odoo Menu
  • Sign in
  • Try it free
  • Apps
    Finance
    • Accounting
    • Invoicing
    • Expenses
    • Spreadsheet (BI)
    • Documents
    • Sign
    Sales
    • CRM
    • Sales
    • POS Shop
    • POS Restaurant
    • Subscriptions
    • Rental
    Websites
    • Website Builder
    • eCommerce
    • Blog
    • Forum
    • Live Chat
    • eLearning
    Supply Chain
    • Inventory
    • Manufacturing
    • PLM
    • Purchase
    • Maintenance
    • Quality
    Human Resources
    • Employees
    • Recruitment
    • Time Off
    • Appraisals
    • Referrals
    • Fleet
    Marketing
    • Social Marketing
    • Email Marketing
    • SMS Marketing
    • Events
    • Marketing Automation
    • Surveys
    Services
    • Project
    • Timesheets
    • Field Service
    • Helpdesk
    • Planning
    • Appointments
    Productivity
    • Discuss
    • Approvals
    • IoT
    • VoIP
    • Knowledge
    • WhatsApp
    Third party apps Odoo Studio Odoo Cloud Platform
  • Industries
    Retail
    • Book Store
    • Clothing Store
    • Furniture Store
    • Grocery Store
    • Hardware Store
    • Toy Store
    Food & Hospitality
    • Bar and Pub
    • Restaurant
    • Fast Food
    • Guest House
    • Beverage Distributor
    • Hotel
    Real Estate
    • Real Estate Agency
    • Architecture Firm
    • Construction
    • Property Management
    • Gardening
    • Property Owner Association
    Consulting
    • Accounting Firm
    • Odoo Partner
    • Marketing Agency
    • Law firm
    • Talent Acquisition
    • Audit & Certification
    Manufacturing
    • Textile
    • Metal
    • Furnitures
    • Food
    • Brewery
    • Corporate Gifts
    Health & Fitness
    • Sports Club
    • Eyewear Store
    • Fitness Center
    • Wellness Practitioners
    • Pharmacy
    • Hair Salon
    Trades
    • Handyman
    • IT Hardware & Support
    • Solar Energy Systems
    • Shoe Maker
    • Cleaning Services
    • HVAC Services
    Others
    • Nonprofit Organization
    • Environmental Agency
    • Billboard Rental
    • Photography
    • Bike Leasing
    • Software Reseller
    Browse all Industries
  • Community
    Learn
    • Tutorials
    • Documentation
    • Certifications
    • Training
    • Blog
    • Podcast
    Empower Education
    • Education Program
    • Scale Up! Business Game
    • Visit Odoo
    Get the Software
    • Download
    • Compare Editions
    • Releases
    Collaborate
    • Github
    • Forum
    • Events
    • Translations
    • Become a Partner
    • Services for Partners
    • Register your Accounting Firm
    Get Services
    • Find a Partner
    • Find an Accountant
      • Get a Tailored Demo
    • Implementation Services
    • Customer References
    • Support
    • Upgrades
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +32 2 290 34 90
    • Get a Tailored Demo
  • Pricing
  • Help
  1. APPS
  2. Sales
  3. Pricelist Template v 19.0
  4. Sales Conditions FAQ

Pricelist Template

by Odoo DevHouse https://apps.odoo.com/apps/modules/browse?author=Odoo%20DevHouse
Odoo

$ 99.00

v 19.0 Third Party
Apps purchases are linked to your Odoo account, please sign in or sign up first.
Availability
Odoo Online
Odoo.sh
On Premise
Odoo Apps Dependencies • Sales (sale_management)
• Discuss (mail)
• Invoicing (account)
Lines of code 183
Technical Name pricelist_template
LicenseOPL-1
Websitehttps://apps.odoo.com/apps/modules/browse?author=Odoo%20DevHouse
Versions 18.0 19.0
You bought this module and need support? Click here!
Availability
Odoo Online
Odoo.sh
On Premise
Odoo Apps Dependencies • Sales (sale_management)
• Discuss (mail)
• Invoicing (account)
Lines of code 183
Technical Name pricelist_template
LicenseOPL-1
Websitehttps://apps.odoo.com/apps/modules/browse?author=Odoo%20DevHouse
Versions 18.0 19.0
  • Description
  • License

Pricelist Template

Define a pricing structure once as a template - then stamp it onto any contact in seconds. Every customer gets their own dedicated pricelist, cloned from the master, assigned automatically. Zero repetition. Zero inconsistency.



  Problem: Managing Pricelists Per Contact Is Slow, Inconsistent, and Error-Prone

Odoo's pricelist system is powerful - but when you have dozens or hundreds of customers, each needing a slightly customised pricing structure, the standard workflow breaks down fast. Sales teams copy pricelists manually, forget to update them when rules change, and apply the wrong pricelist to the wrong customer.

  • Creating a per-customer pricelist means manually duplicating an existing one every time
  • No central "master" - pricing rules drift apart across copies over time
  • Assigning the new pricelist to the contact requires navigating to a separate screen
  • There is no way to see which partners a pricelist actually applies to without manual checking
  • Salespeople apply shared pricelists to individual customers, causing unintended price leaks
  • When base pricing changes, all copies must be updated manually - or are silently left stale


  Solution: Design Once as a Template - Assign to Any Contact in One Click

Mark any pricelist as a Pricelist Template. Configure its rules once - discounts, margins, time-based tiers, currencies. Then open any customer record, click Actions -> Create Pricelist, choose the template, confirm - and the module creates a fresh dedicated copy and sets it as that contact's default pricelist instantly. No navigation, no duplication, no missed steps. A built-in domain filter tab on each non-template pricelist lets you define exactly which partners the pricelist is meant for and see the live matching count - so your pricing strategy and your customer segments stay aligned.



  Key Features
  •   Pricelist Template Flag - mark any pricelist as a template with a single checkbox; templates are managed separately from active customer pricelists
  •   Dedicated Template Menu - Sales -> Products -> Pricelist Template gives a clean filtered list; new records have is_template pre-checked
  •   Create Pricelist Button - one button on any template form instantly duplicates all price rules into a new non-template pricelist linked back to the source
  •   Pricelist Domain Tab - a full Odoo domain widget on every non-template pricelist lets you define which res.partner records this pricelist is meant for
  •   Live Matching Count - the domain is evaluated in real time and shows the number of partners currently matching - verify scope instantly
  •   Contact Action Wizard - Actions -> Create Pricelist on any partner form opens a lightweight wizard with a clear description and guidance
  •   Auto-assign to Contact - the wizard sets the newly created pricelist as the contact's default pricelist automatically - no extra navigation required
  •   Pre-filled Name - the wizard pre-populates the pricelist name as "Pricelist for {Contact Name}" - edit freely before confirming
  •   Template Traceability - each generated pricelist carries a Many2one back-link to its source template for full lineage tracking
  •   Odoo 18 & 19 Ready - separate version-matched packages; depends only on the standard sale module with no third-party dependencies
  •   Role-Based Access - wizard accessible to Sales Users and Managers; template menu gated by the standard Pricelist user group
  •   Standard Domain Widget - uses the built-in Odoo domain field widget, fully supported in Odoo 18 and 19 with visual rule builder and code toggle


How It Works - Full Cycle Step by Step

Step 1 - Pricelist Template List

Go to Sales -> Products -> Pricelist Template. This dedicated menu shows only pricelists marked as templates - B2B Wholesale, VIP Premium, Retail Standard, and more. Any new record created from this view has Pricelist Template checked by default. The menu is only visible to users with the Pricelists feature enabled.

Pricelist Template list - B2B Wholesale Template, VIP Premium Template, Retail Standard Template

Step 2 - Configure the Pricelist Template

Open any template record. The Pricelist Template checkbox is checked (green highlight). A Create Pricelist button appears in the header - visible only on template pricelists. Set up price rules in the Price Rules tab exactly as you would for any standard pricelist. This configuration becomes the master blueprint for every pricelist generated from this template.

B2B Wholesale Template form - Pricelist Template checkbox checked (green), Create Pricelist button (blue), 20% discount rule

Step 3 - Create Pricelist from Template

Click Create Pricelist on the template. The module instantly duplicates all price rules into a new pricelist, sets Pricelist Template to unchecked (red), stores a breadcrumb back-link to the source template, and opens the new record for you. The Pricelist Domain tab now appears - hidden on templates, shown on copies.

New pricelist copy - Pricelist Template unchecked (red), Pricelist Domain tab highlighted (blue), breadcrumb shows parent template

Step 4 - Pricelist Domain Filter

Click the Pricelist Domain tab. Use the visual rule builder to define which contacts this pricelist applies to - filter by country, tags, industry, or any partner field. The matching partner count (e.g. "64 record(s)") updates live as you add rules, so you always know exactly how many contacts fall in scope.

Pricelist Domain tab - domain widget with rule builder, 64 matching records shown

Step 5 - Open the Contact Form

Navigate to any customer or company contact record. No need to leave the contact page to set up a dedicated pricelist - the entire flow happens from within the contact form via the Actions menu.

Acme Corporation contact form - full customer record ready for pricelist assignment

Step 6 - Actions -> Create Pricelist

Click the Actions (gear ⚙) button on the contact form and select Create Pricelist from the dropdown. This server action is bound to the contact form view and is available to all Sales Users and Managers.

Contact Actions dropdown open - Create Pricelist item highlighted in blue

Step 7 - Pricelist for Contact Wizard

A wizard dialog opens with a clear description: "Select a pricelist template to create a pricelist for the contact. The pricelist will be set as the default pricelist for the contact." The Name field is pre-filled as "Pricelist for {Contact Name}". Select a template from the dropdown to proceed.

Create Pricelist wizard - info banner, Pricelist Template dropdown, Name pre-filled as Pricelist for Acme Corporation

Step 8 - Select Template and Confirm

Select the Pricelist Template - e.g. B2B Wholesale Template. The name field already shows "Pricelist for Acme Corporation". Edit the name if needed, then click Create Pricelist. The module clones all price rules from the template, names the copy, and assigns it as this contact's default pricelist - all in a single operation.

Wizard filled - B2B Wholesale Template selected (green), Name filled, Create Pricelist button ready (blue)

Step 9 - Pricelist Set as Default for the Contact

The wizard closes and the contact's Sales & Purchase tab now shows Pricelist for Acme Corporation set as the default pricelist (green highlight). Every future quotation or sales order for this contact will automatically use this dedicated pricelist - no manual selection required, ever again.

Contact Sales & Purchase tab - Pricelist for Acme Corporation set as default (highlighted green) Contact Sales & Purchase tab - Pricelist for Acme Corporation set as default (highlighted green)


Use Cases

  B2B Customer Onboarding

When a new B2B customer is created, the sales rep opens the contact, clicks Create Pricelist, selects the B2B Wholesale template - and the customer's personal pricelist is set up and linked in under 10 seconds.

  Customer Tier Pricing

Maintain templates for each tier - VIP Premium, B2B Wholesale, Retail Standard. Each customer's pricelist is a clean copy of the right tier template, linked for traceability, independent for customisation.

  Regional Pricing Strategies

Create one template per region or currency. Use the domain filter to scope each pricelist to the right country set. The matching partner count confirms your coverage before deploying.

  VIP & Contract Customers

Give VIP accounts a dedicated pricelist cloned from the VIP Premium template - fully isolated so adjustments for one customer never affect others. Track which template each pricelist came from at any time.

  Seasonal & Promotional Pricing

Create a seasonal template, generate copies for relevant customers in bulk, then archive the template when the period ends - without touching any individual customer's pricelist.

  Distributor & Reseller Networks

Maintain distinct distributor and reseller templates. Each partner in the network gets their own copy. The template back-link documents every pricing decision for audits and pricing reviews.



Business Benefits

Faster Customer Setup

What used to take multiple navigation steps - copy pricelist, rename, open contact, set pricelist - now happens in one wizard dialog on the contact form. Onboarding is faster and no step is ever missed.

Consistent Pricing Structure

All pricelists in a tier start from the same template. Structure is guaranteed consistent at creation time. Customer-specific adjustments happen on the copy - the template stays clean for future use.

Full Pricing Traceability

Every generated pricelist carries a back-link to its template. At any point you can see which master pricing strategy a customer's pricelist was derived from - essential for audits, pricing reviews, and dispute resolution.

No Extra Dependencies

Built entirely on the standard Odoo sale module. No external libraries, no custom JS, no risk of conflict with other modules. Installs cleanly on any Odoo 18 or 19 instance in under a minute.



Quick Configuration Guide

Pre-requisite - Enable Pricelists

Sales -> Configuration -> Settings -> enable Pricelists -> Save. The Pricelist Template menu and the Actions wizard are only visible to users in the Pricelists group.

1 - Create a Pricelist Template

Sales -> Products -> Pricelist Template -> New -> the Pricelist Template checkbox is pre-checked. Configure currency, company, and all price rules -> Save.

2 - Create a Pricelist for a Contact

Open any contact -> click the Actions (⚙) button -> select Create Pricelist -> select a pricelist template -> confirm the name -> click Create Pricelist. The pricelist is created, cloned from the template, and set as the contact's default - done.

3 - Set a Partner Domain on a Pricelist

Open any non-template pricelist -> click the Pricelist Domain tab -> use the visual rule builder to define partner filters -> the matching partner count updates instantly -> Save.

Notes
  • The Pricelist Domain tab is hidden on template pricelists - appears only on non-template pricelists
  • The Create Pricelist button is hidden on non-template pricelists - appears only on templates
  • Create at least one template before using the contact wizard
  • The partner domain is informational - documents which partners the pricelist is for; does not auto-assign
  • Pricelist duplication inherits all price rules, currency, and company from the template


Need Help or a Custom Feature?

  Contact Support

Odoo Proprietary License v1.0

This software and associated files (the "Software") may only be used (executed,
modified, executed after modifications) if you have purchased a valid license
from the authors, typically via Odoo Apps, or if you have received a written
agreement from the authors of the Software (see the COPYRIGHT file).

You may develop Odoo modules that use the Software as a library (typically
by depending on it, importing it and using its resources), but without copying
any source code or material from the Software. You may distribute those
modules under the license of your choice, provided that this license is
compatible with the terms of the Odoo Proprietary License (For example:
LGPL, MIT, or proprietary licenses similar to this one).

It is forbidden to publish, distribute, sublicense, or sell copies of the Software
or modified copies of the Software.

The above copyright notice and this permission notice must be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.

Please log in to comment on this module

  • The author can leave a single reply to each comment.
  • This section is meant to ask simple questions or leave a rating. Every report of a problem experienced while using the module should be addressed to the author directly (refer to the following point).
  • If you want to start a discussion with the author or have a question related to your purchase, please use the support page.
Community
  • Tutorials
  • Documentation
  • Forum
Open Source
  • Download
  • Github
  • Runbot
  • Translations
Services
  • Odoo.sh Hosting
  • Support
  • Upgrade
  • Custom Developments
  • Education
  • Find an Accountant
  • Find a Partner
  • Become a Partner
About us
  • Our company
  • Brand Assets
  • Contact us
  • Jobs
  • Events
  • Podcast
  • Blog
  • Customers
  • Legal • Privacy
  • Security

Odoo is a suite of open source business apps that cover all your company needs: CRM, eCommerce, accounting, inventory, point of sale, project management, etc.

Odoo's unique value proposition is to be at the same time very easy to use and fully integrated.

Website made with