Pricelists, discounts, and formulas¶
A pricelist is a method of dynamic pricing that applies a list of prices (or price rules) to adjust sales prices. This adjustment can apply to specific customers, customer groups, sales orders, time periods, etc., and is useful for creating pricing strategies and optimizing sales margins.
Odoo Sales has a useful pricelist feature that can be tailored to fit any unique pricing strategy. Pricelists suggest certain prices, but they can always be overridden on the sales order.
Pricelists configuration¶
To enable pricelists in the Odoo Sales app, first navigate to . In the Pricing section, tick the checkbox next to the Pricelists feature, and click Save to save all changes.
Pricelists¶
After activating and saving the Pricelists feature, the Settings page reloads. From here, either select the Pricelists link (beneath the Pricelists feature on the Settings page), or navigate to .
Either option reveals the Pricelists page, in which pricelists can be created and/or modified at any time.
Important
If there is no specific pricelist configured on a sales quotation, the Default pricelist is applied.
Note
The Selectable column is only applicable to Odoo eCommerce. This option allows website visitors to choose a pricelist when shopping in your eCommerce website.
Note
In Odoo 17 (and above), you are not required to enter a pricelist in the Pricelist field on a sales quotation form in order to confirm it (i.e. turn it into a sales order).
The chatter section is available on pricelist forms, which allows you to add notes and communications on each pricelist page.
Creating and editing pricelists¶
From the Pricelists page, either select the pricelist to edit, or click New to create a new pricelist, which reveals a blank pricelist form that can be configured in a number of different ways.
When creating a new pricelist, start by adding a name for the pricelist at the blank field at top of the form. Next, select which Currency should be used.
If working in a multi-company environment, select which company this pricelist should apply to in the Company field. If this field is left blank, the pricelist is automatically applied to all companies in the database.
If working in a multinational company, select the countries where this pricelist will apply under the Country Groups column.
Price Rules tab¶
In the Price Rules tab, each line creates a new record that will implement customized pricing to the sales order where the pricelist is applied. To create a new price rule, click on Add a line, which opens a new pricelist rules form.
Then, select whether to apply this set of rules to a Product or Category.
From here, there are several configuration options:
Product: If selected in the Apply To field, use this field to choose one or more products to which this pricelist will apply.
Category: Select one or more product categories to which this pricelist will apply.
Price Type: Select whether the specialized pricing will fall under Discount, Formula, or Fixed Price. Depending on the price type, there will be additional configurations on how to apply the pricelist.
Discount: Enter the percentage to be discounted. A mark-up can be configured by using a negative value in this field.
Formula: Calculate the pricelist rules based the following configuration:
Discount: Percentage discount to be applied.
Round off to: Numerical value to act as round-off multiple, to be applied after discount. The rounding method sets the price so that it is a multiple of the value in this field.
Note
Rounding is applied after the discount and before the extra fee.
Extra Fee: Fixed amount to be added or subtracted once Discount and Round off to have been applied.
Fixed Price: Enter fixed price for this pricelist. When applied, all product lines in the quotation form will be updated to this price.
Min Qty: Specify the minimum quantity of selected products for this pricelist to apply.
Validity Period: Specify the start and end date during which this pricelist can be applied to quotations.
Example
To formulate a 100% markup (or 2 times the cost of the product), with a $5 minimum margin, set
the Based on field to Cost, the Discount to -100, and the
Margins to 5. This is often seen in retail situations.
Example
To apply 20% discounts, with prices rounded up to 9.99, set the Based on field to
Sales Price, the Discount field to 20, the Extra Fee field
to -0.01, and the Rounding Method field to 10.
Tip
To have prices that end in 9.99, set the Rounding Method to 10 and the
Extra Fee to -0.01.
Recurring Prices tab¶
Time-based rules are used specifically with subscription products. Be sure to check out the Odoo Subscriptions documentation for more information.
Under the Recurring Prices tab, the same functionality of the Price Rules tab is present. The only difference being that a recurring time period can be applied in the Recurring Plan column.
Once Products and/or Product Variants are selected, click Add a
price rule, and select the blank field in the Recurring Plan column to reveal a
drop-down menu of pre-designated recurrence periods (e.g. Monthly, Quarterly, Weekly, etc.).
New recurrence periods can also be created from this column. To do so, type in the name for the new Recurring Plan, then select Create from the resulting drop-down menu to create the time period, which can be edited later.
Or, select Create and edit… to reveal a Create Recurring Plan pop-up form. From this pop-up form, the new recurrence period can be configured, with specific Details, Self-Service, and Pricing options. When the configurations are complete, click the Save & Close button.
Lastly, add the desired price for this recurring price rule in the Recurring Price column.
See also
Rental rules tab¶
Under the Rental rules tab, specific price rules can be configured for various rental products, using the same methodology as the Price Rules and Recurring Prices tabs.
To add a rental rule, click Add a line, and select a desired product in the Products column. Then, select any specific Variants, if necessary.
Next, designate a Period of time for the rental rule (e.g. Daily, Hourly, etc.).
Lastly, configure a Price for the rental rule in the respective column.
Configuration tab¶
Under the Configuration tab, there are a few options that can further customize the pricelist.
From here, under the Availability section, in the Country Groups field, certain country groups can be added to the pricelist. There is no limit to how many country groups can be added in this field.
Note
If no country is set for a customer, Odoo takes the first pricelist without any country group.
Under the Website section, there are a few options that can be configured. In the Website field, this pricelist can be applied to a specific website, if working in a multi-website environment. If left blank, the pricelist is applied to all websites in the database.
Tick the Selectable checkbox to have this pricelist as a selectable option for customers to choose as they shop. If the Selectable box is left unticked, customers cannot select this pricelist for themselves.
Lastly, there is the option to add an E-commerce Promotional Code. To add a code, type in the desired promo code that, when entered during the checkout process, applies the pricelist to the customer, even if the customer does not fall into the previously-specified criteria.
Show discount percentage to customers¶
In the Discounts section, there is a Discount Policy label with two radio options to choose from: Discount included in the price or Show public price & discount to the customer.
If Discount included in the price is selected, the price shown to the customer already accounts for the discount being applied. However, if Show public price & discount to the customer is selected, the customer sees the actual public price and how much they are saving with this pricelist discount.
Customer pricelist application¶
While the default pricelist applied to any customer is the Public Pricelist, Odoo provides the opportunity to directly apply a different pricelist to customers on their contact form.
To do that, open the desired customer’s contact form, either by navigating to and selecting the customer from the main Customers page, or by clicking on the customer’s name on a sales order.
On the desired customer’s contact form, under the Sales & Purchase tab, in the Sales section, designate what pricelist should be applied to this specific customer from the drop-down menu in the Pricelist field.
Note
When a customer is added to the database, the default pricelist is automatically applied to them. There is no way to have a blank Pricelist field on a contact form. Even if that field is left blank, the default pricelist appears when that contact form is opened again.
However, when that contact is added to a quotation, and the Pricelist field is auto-populated (based on the information from their contact form), that predetermined pricelist can be removed from the Pricelist field, and the quotation can still be confirmed, and subsequently, turned into a sales order.
Discounts¶
The Discounts feature allows the ability to set a discount or increase the price on individual items in a sales order. This is calculated as a percentage of that product’s sales price.
To access discounts, navigate to the Sales app setting page (), and click the Discounts checkbox, then click Save.
After the setting has been activated, navigate to the desired quotation by going to at the top of the page. Once there, click on the desired quote from the list.
In the order lines section of the quotation form, a new column heading will appear labeled Disc.%. This column is used to set discounts on individual line items. Enter the desired discount for each product line and the new price will automatically be calculated in the quote Total at the bottom of the page.
Tip
A discount can also be added directly to a sales order in the same way. Navigate to , click on the desired sales order, and add the discount to Disc.% as described above.
Tip
Positive values for Disc.% will apply a discount, while negative values can be used to increase the price.
Conditions¶
At the bottom of the Create Pricelist Rules pop-up form is the Conditions section.
Here, start by selecting one of the options in the Apply On field:
All Products: the advanced pricelist rule will be applied to all products.
Product Category: the advanced pricelist rule will be applied to a specific category of products.
Product: the advanced pricelist rule will be applied to a specific product.
Product Variant: the advanced pricelist rule will be applied to a specific product variant.
If any of those options, apart from All Products, are selected, a new option-specific field appears, in which the specific Product Category, Product, or Product Variant must be chosen.
Then, select a minimum quantity to be applied to the advanced pricelist rule in the Min. Quantity field. Lastly, select a range of dates for the pricelist item validation in the Validity field.
Once all configurations are complete, either click Save & Close to save the advanced pricelist rule, or click Save & New to immediately create another advanced pricelist rule on a fresh form.
Note
If a price rule is set for a particular product, and another one for its product category, Odoo takes the rule of the product itself.
See also