Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 48a74b3

Browse files
committedJan 14, 2025·
[IMP] sales: update simplified pricelist settings
Add suggestions from LARM review Co-authored-by: larm-odoo <121518652+larm-odoo@users.noreply.github.com> edits edits changes edits [IMP] sales: update simplified pricelist settings Add suggestions from LARM review Co-authored-by: larm-odoo <121518652+larm-odoo@users.noreply.github.com> edits [IMP] sales: update simplified pricelist settings Add suggestions from LARM review Co-authored-by: larm-odoo <121518652+larm-odoo@users.noreply.github.com> edits [IMP] sales: update simplified pricelist settings Add suggestions from LARM review Co-authored-by: larm-odoo <121518652+larm-odoo@users.noreply.github.com> edits edits changes edits [IMP] sales: update simplified pricelist settings Add suggestions from LARM review Co-authored-by: larm-odoo <121518652+larm-odoo@users.noreply.github.com> edits edits dina edits formatting
1 parent 6571f8a commit 48a74b3

File tree

5 files changed

+76
-250
lines changed

5 files changed

+76
-250
lines changed
 

‎content/applications/sales/sales/products_prices/prices/pricing.rst

+76-250
Original file line numberDiff line numberDiff line change
@@ -2,43 +2,26 @@
22
Pricelists, discounts, and formulas
33
===================================
44

5-
Odoo *Sales* has a useful pricelist feature that can be tailored to fit any unique pricing strategy.
6-
7-
A *pricelist* is a list of prices (or price rules) that Odoo uses to determine the appropriate price
8-
for a customer. These pricelists can be set with specific criteria (such as time periods, minimum
9-
quantity sold, and more) in order to apply certain prices or discounts.
5+
A *pricelist* is a method of dynamic pricing that applies a list of prices (or price rules) to
6+
adjust sales prices. This adjustment can apply to specific customers, customer groups, sales orders,
7+
time periods, etc., and is useful for creating pricing strategies and optimizing sales margins.
108

9+
Odoo *Sales* has a useful pricelist feature that can be tailored to fit any unique pricing strategy.
1110
Pricelists suggest certain prices, but they can always be overridden on the sales order.
1211

13-
Pricing strategy options
12+
Pricelists configuration
1413
========================
1514

16-
To choose a pricing strategy, first navigate to :menuselection:`Sales app --> Configuration -->
17-
Settings`. In the :guilabel:`Pricing` section, click the checkbox next to the :guilabel:`Pricelists`
18-
feature.
19-
20-
Doing so reveals two additional options beneath it: :guilabel:`Multiple prices per product` and
21-
:guilabel:`Advanced price rules (discounts, formulas)`. A link labeled :guilabel:`Pricelists` also
22-
appears, which leads to a separate pricelists page, wherein pricelists can be created and/or
23-
modified.
24-
25-
- :guilabel:`Multiple prices per product`: provides the option to set several different prices per
26-
product.
27-
- :guilabel:`Advanced price rules (discounts, formulas)`: provides the option to create detailed
28-
price rules and apply discounts, margins, and roundings.
15+
To enable pricelists in the Odoo **Sales** app, first navigate to :menuselection:`Sales app -->
16+
Configuration --> Settings`. In the :guilabel:`Pricing` section, tick the checkbox next to the
17+
:guilabel:`Pricelists` feature, and click :guilabel:`Save` to save all changes.
2918

3019
.. image:: pricing/pricelist-feature-setting.png
3120
:align: center
3221
:alt: How the pricelist feature setting looks in Odoo Sales.
3322

34-
After clicking the checkbox beside the :guilabel:`Pricelists` feature, select one of those two
35-
options, then click :guilabel:`Save` to save all changes.
36-
37-
Pricelists
38-
==========
39-
4023
After activating and saving the :guilabel:`Pricelists` feature, the :guilabel:`Settings` page
41-
reloads and, from here, either select the :guilabel:`Pricelists` link (beneath the
24+
reloads. From here, either select the :guilabel:`Pricelists` link (beneath the
4225
:guilabel:`Pricelists` feature on the :guilabel:`Settings` page), or navigate to
4326
:menuselection:`Sales app --> Products --> Pricelists`.
4427

@@ -50,87 +33,104 @@ modified at any time.
5033
:alt: How the pricelists page looks in Odoo Sales.
5134

5235
.. important::
53-
The order of the pricelists on the :guilabel:`Pricelists` page has an impact on how they are
54-
applied. If several pricelists share the same criteria, **only** the first listed pricelist is
55-
applied.
56-
57-
For example, for two pricelists with different rules, but same criteria (e.g., same website, same
58-
country), only the *first* pricelist in the list is applied.
36+
If there is no specific pricelist configured on a sales quotation, the :guilabel:`Default`
37+
pricelist will be applied.
5938

6039
.. note::
61-
The :guilabel:`Public Pricelist` is the default pricelist used with Odoo *Sales* and *eCommerce*.
62-
This pricelist is applied by default, if there are no matching criteria.
40+
The :guilabel:`Selectable` column is only applicable to Odoo **eCommerce**. This option allows
41+
website visitors to choose a pricelist when shopping in your **eCommerce** website.
6342

6443
.. note::
65-
In Odoo 17 (and above), it is no longer required to have a pricelist entered in the
66-
:guilabel:`Pricelist` field on a quotation form in order to confirm it (i.e. turn it into a sales
67-
order).
44+
In Odoo 17 (and above), you are *not required* to enter a pricelist in the :guilabel:`Pricelist`
45+
field on a sales quotation form in order to confirm it (i.e. turn it into a sales order).
46+
47+
The chatter section is available in Odoo 17 and above on pricelist forms, which allows you to add
48+
notes and communications on each pricelist page.
6849

69-
It should also be noted that, in Odoo 17 (and above), a chatter section can be found on pricelist
70-
forms, which enhances the ability to communicate about them.
50+
Editing and creating pricelists
51+
-------------------------------
7152

72-
From the :guilabel:`Pricelists` page, either select the desired pricelist to edit, or click
53+
From the :guilabel:`Pricelists` page, either select the pricelist you would like to edit, or click
7354
:guilabel:`New` to create a new pricelist, which reveals a blank pricelist form that can be
7455
configured in a number of different ways.
7556

76-
.. image:: pricing/pricelist-detail-form.png
57+
.. image:: pricing/18-sales-new-pricelist-form.png
7758
:align: center
7859
:alt: How the pricelist detail form looks in Odoo Sales.
7960

80-
When creating a new pricelist, start by adding a name for the pricelist at the top of the form, in
81-
the blank field. Next, select which :guilabel:`Currency` should be used.
61+
When creating a new pricelist, start by adding a name for the pricelist at the blank field at top of
62+
the form. Next, select which :guilabel:`Currency` should be used.
8263

83-
Then, if working in a multi-company environment, select which company this pricelist should apply to
64+
If working in a multi-company environment, select which company this pricelist should apply to
8465
in the :guilabel:`Company` field. If this field is left blank, the pricelist is automatically
8566
applied to all companies in the database.
8667

68+
If working in a multinational company, select the countries where this pricelist will apply under
69+
the :guilabel:`Country Groups` column.
70+
8771
Price Rules tab
8872
---------------
8973

90-
The :guilabel:`Price Rules` tab functionality on a pricelist form varies depending on the
91-
:guilabel:`Pricelists` setting chosen: either :guilabel:`Multiple prices per product` or
92-
:guilabel:`Advanced price rules (discounts, formulas)`.
74+
In the :guilabel:`Price Rules` tab, each line creates a new record that will implement customized
75+
pricing to the sales order where the pricelist is applied. To create a new price rule, click on
76+
:guilabel:`Add a line`, which opens a new pricelist rules form.
9377

94-
However, the :guilabel:`Time-based rules` tab and :guilabel:`Configuration` tab are always the same,
95-
regardless of the chosen :guilabel:`Pricelists` setting.
78+
Then, select whether to apply this set of rules to a :guilabel:`Product` or
79+
:guilabel:`Category`.
9680

97-
Multiple prices per product
98-
~~~~~~~~~~~~~~~~~~~~~~~~~~~
81+
From here, there are several configuration options:
9982

100-
With the :guilabel:`Multiple prices per product` setting activated, the :guilabel:`Price Rules` tab
101-
on pricelist forms provides the option to add specific products, with a specific price, to a
102-
pricelist.
83+
- :guilabel:`Product`: Select one or more products to which this pricelist will apply.
84+
- :guilabel:`Category`: Select one or more product categories to which this pricelist will apply.
85+
- :guilabel:`Price Type`: Select whether the specialized pricing will fall under
86+
:guilabel:`Discount`, :guilabel:`Formula`, or :guilabel:`Fixed Price`. Depending on the price
87+
type, there will be additional configurations on how to apply the pricelist.
88+
89+
- :guilabel:`Discount`: Enter the percentage to be discounted. A mark-up can be configured by
90+
using a negative value in this field.
91+
92+
- :guilabel:`Formula`: Calculate the pricelist rules based the following configuration:
93+
94+
- :guilabel:`Discount`: Percentage discount to be applied.
95+
- :guilabel:`Round off to`: Numerical value to act as round-off multiple, to be applied after
96+
discount. The rounding method sets the price so that it is a multiple of the value in this
97+
field.
10398

104-
To add a specific product and price to a pricelist form, click the :guilabel:`Price Rules` tab, then
105-
click :guilabel:`Add a line` in the :guilabel:`Products` column. Then, select the desired product
106-
for which a specific price should be applied.
99+
.. note::
100+
Rounding is applied *after* the discount and *before* the extra fee.
107101

108-
Next, if necessary, select a product variant under the :guilabel:`Variants` column (e.g. a specific
109-
product size, color, etc.). If no variants are selected, then this price will apply to all variants
110-
of the product.
102+
- :guilabel:`Extra Fee`: Fixed amount to be added or subtracted once :guilabel:`Discount` and
103+
:guilabel:`Round off to` have been applied.
111104

112-
If a minimum amount of the product must be purchased in order to apply the specific price, enter the
113-
amount under the :guilabel:`Min. Quantity` column.
105+
- :guilabel:`Fixed Price`: Enter fixed price for this pricelist. When applied, all product lines
106+
in the quotation form will be updated to this price.
114107

115-
To configure the price of the product for this specific pricelist, enter the desired amount under
116-
the :guilabel:`Price` column. Then, there is the option to add a :guilabel:`Start Date` and
117-
:guilabel:`End Date` to the configured product price, if desired.
108+
- :guilabel:`Min Qty`: Specify the minimum quantity of selected products for this pricelist to
109+
apply.
110+
- :guilabel:`Validity Period`: Specify the start and end date during which this pricelist can be
111+
applied to quotations.
118112

119-
To add another product line, click :guilabel:`Add a line` again, and repeat the process. There is no
120-
limit to how many products can be added in the :guilabel:`Price Rules` tab of a pricelist form.
113+
.. example::
114+
To formulate a 100% markup (or 2 times the cost of the product), with a $5 minimum margin, set
115+
the :guilabel:`Based on` field to :guilabel:`Cost`, the :guilabel:`Discount` to `-100`, and the
116+
:guilabel:`Margins` to `5`. This is often seen in retail situations.
121117

122-
For more information, check out the following section: :ref:`Multiple prices per product
123-
<sales/multiple-prices-per-product>`.
118+
.. image:: pricing/formula-markup-cost-example.png
119+
:align: center
120+
:alt: How it looks to formulate a markup cost with 5 dollar minimum margin in Odoo Sales.
124121

125-
Advanced price rules
126-
~~~~~~~~~~~~~~~~~~~~
122+
.. example::
123+
To apply 20% discounts, with prices rounded up to 9.99, set the :guilabel:`Based on` field to
124+
:guilabel:`Sales Price`, the :guilabel:`Discount` field to `20`, the :guilabel:`Extra Fee` field
125+
to `-0.01`, and the :guilabel:`Rounding Method` field to `10`.
127126

128-
With the :guilabel:`Advanced price rules (discounts, formulas)` setting activated, the
129-
:guilabel:`Price Rules` tab on pricelist forms provides the option to configure detailed price rules
130-
based on formulas.
127+
.. image:: pricing/formula-discount-example.png
128+
:align: center
129+
:alt: Example of a 20% discount with prices rounded to 9.99 in Odoo Sales.
131130

132-
Check out the :ref:`Advanced price rules (discounts, formulas) <sales/advanced-price-rules>` section
133-
for detailed steps on how to add advanced price rules to a pricelist.
131+
.. tip::
132+
To have prices that end in 9.99, set the :guilabel:`Rounding Method` to `10` and the
133+
:guilabel:`Extra Fee` to `-0.01`.
134134

135135
Recurring Prices tab
136136
--------------------
@@ -249,84 +249,6 @@ the drop-down menu in the :guilabel:`Pricelist` field.
249249
from the *Pricelist* field, and the quotation can still be confirmed, and subsequently, turned
250250
into a sales order.
251251

252-
.. _sales/multiple-prices-per-product:
253-
254-
Multiple prices per product
255-
===========================
256-
257-
To apply several prices per individual product, select the :guilabel:`Multiple prices per product`
258-
option, after enabling the :guilabel:`Pricelists` feature on the *Sales* app setting page
259-
(:menuselection:`Sales app --> Configuration --> Settings`), and click :guilabel:`Save`.
260-
261-
Next, apply pricelists to specific products using the product form. Navigate to the
262-
:menuselection:`Sales app --> Products --> Products` and select the product for which multiple
263-
prices should be applied. Selecting a product from the :guilabel:`Products` page reveals that
264-
specific product's product form on a separate page.
265-
266-
On the product form, click the :guilabel:`Extra Prices` smart button, located at the top of the
267-
form.
268-
269-
.. image:: pricing/extra-prices-smartbutton.png
270-
:align: center
271-
:alt: How the extra prices smart button appears in Odoo Sales.
272-
273-
Doing so reveals a separate page displaying the :guilabel:`Price Rules` that are specific to that
274-
particular product. Here, price rules can be edited or created at any time.
275-
276-
.. image:: pricing/price-rules-product-page.png
277-
:align: center
278-
:alt: How the extra price rules per product page appears in Odoo Sales.
279-
280-
To create a new price rule for a product from this specific :guilabel:`Price Rules` page, click
281-
:guilabel:`New` to add a new, customizable row that has the desired product already populated in the
282-
:guilabel:`Applied On` column.
283-
284-
Next, select which :guilabel:`Pricelist` this specific product price rule should apply to, via the
285-
drop-down menu in the :guilabel:`Pricelist` column.
286-
287-
.. note::
288-
The :guilabel:`Public Pricelist` is the default pricelist used with Odoo *Sales* and *eCommerce*.
289-
290-
.. tip::
291-
To create a new pricelist from this page, type in the desired name of the new pricelist in the
292-
:guilabel:`Pricelist` column, then select :guilabel:`Create` from the drop-down menu. All
293-
pricelists can be modified at any time, by navigating to :menuselection:`Sales app --> Products
294-
--> Pricelists`. Pricelists can also be created on that specific :guilabel:`Pricelists` page, as
295-
well.
296-
297-
After the desired pricelist is added to the row, designate a :guilabel:`Min. Quantity` for the price
298-
rule.
299-
300-
.. example::
301-
If the :guilabel:`Min. Quantity` column is set to `2`, the new price in the :guilabel:`Price`
302-
column will be applied to orders of 2 or more products. So, in theory, if a single product costs
303-
$100, customers can be encouraged to buy more, if the :guilabel:`Price` is set at $85 per product
304-
for a :guilabel:`Min. Quantity` of `2` products.
305-
306-
Next, enter the desired amount in the :guilabel:`Price` column. Then, if needed, enter a
307-
:guilabel:`Start Date` and :guilabel:`End Date` for the product's price rule.
308-
309-
And lastly, if working in a multi-company environment, select which company this price rule should
310-
be applied to in the :guilabel:`Company` field. Leaving this field blank means the price rule
311-
applies for all companies in the database.
312-
313-
Click away from the row to activate Odoo's auto-save capability, meaning that newly-created price
314-
rule is now ready to be used.
315-
316-
Proceed to add as many unique price rules per product as desired. There is no limit to how many
317-
price rules can be added per product.
318-
319-
With the price rule(s) in place for a specific product, customers who fall into those corresponding
320-
pricelists automatically see those new prices applied. The number of price rules applied to a
321-
particular product are also displayed in the :guilabel:`Extra Prices` smart button, located on every
322-
product form.
323-
324-
.. note::
325-
When a price rule/pricelist is added to a product via the :guilabel:`Extra Prices` smart button,
326-
it is also reflected on the pricelist itself. Similarly, when a price rule for a specific product
327-
is added to a pricelist, it is also reflected on the product form via the :guilabel:`Extra
328-
Prices` smart button.
329-
330252
.. _sales/discounts:
331253

332254
Discounts
@@ -408,102 +330,6 @@ following discount options: :guilabel:`On All Order Lines`, :guilabel:`Global Di
408330
discount is added, make sure to change the value on the :guilabel:`Discount` line, or remove the
409331
line and add the discount again.
410332

411-
.. _sales/advanced-price-rules:
412-
413-
Advanced price rules
414-
====================
415-
416-
The :guilabel:`Advanced price rules (discounts, formulas)` pricelist feature provides the option to
417-
set price change rules based on discounts and formulas. These changes can be relative to the product
418-
list/catalog price, the product's cost, or another pricelist.
419-
420-
To use advanced pricing rules, with discounts and formulas, select the :guilabel:`Advanced price
421-
rules (discounts, formulas)` option, after enabling the :guilabel:`Pricelists` feature on the
422-
*Sales* app setting page (:menuselection:`Sales app --> Configuration --> Settings`), and click
423-
:guilabel:`Save`.
424-
425-
After activating and saving that :guilabel:`Pricelists` feature, the :guilabel:`Settings` page
426-
reloads and, from here, either select the :guilabel:`Pricelists` link (beneath the
427-
:guilabel:`Pricelists` feature on the :guilabel:`Settings` page), or navigate to
428-
:menuselection:`Sales app --> Products --> Pricelists`.
429-
430-
Either option reveals the :guilabel:`Pricelists` page, in which pricelists can be created and/or
431-
modified at any time.
432-
433-
From the :guilabel:`Pricelists` page, select a desired pricelist to modify, or create a new
434-
pricelist by clicking the :guilabel:`New` button.
435-
436-
On the pricelist form, under the :guilabel:`Price Rules` tab, click :guilabel:`Add a line` to add an
437-
advanced price rule. Doing so reveals a :guilabel:`Create Pricelist Rules` pop-up form, in which the
438-
advanced rule is configured.
439-
440-
.. image:: pricing/create-pricelist-rules-popup.png
441-
:align: center
442-
:alt: How the Create Pricelist Rules pop-up form looks in Odoo Sales.
443-
444-
Price computation
445-
-----------------
446-
447-
On this form, first choose one of the three :guilabel:`Computation` options:
448-
449-
- :guilabel:`Fixed Price`: the price computation is based on a fixed price.
450-
- :guilabel:`Discount`: the price computation is based on a discount.
451-
- :guilabel:`Formula`: the price computation is based on a formula.
452-
453-
.. note::
454-
Each :guilabel:`Computation` option reveals its own computation-specific fields on the form.
455-
456-
If :guilabel:`Fixed Price` is selected, enter the desired price in the :guilabel:`Fixed Price` field
457-
below. If :guilabel:`Discount` is selected, enter the desired discount percentage in the
458-
:guilabel:`Discount` field that appears.
459-
460-
If :guilabel:`Formula` is selected, a number of configurable options appear.
461-
462-
.. image:: pricing/formula-computation-options.png
463-
:align: center
464-
:alt: The various formula computation options present in Odoo Sales.
465-
466-
To configure the :guilabel:`Formula` computation option, start by selecting an option from the
467-
:guilabel:`Based on` field: :guilabel:`Sales Price`, :guilabel:`Cost`, or :guilabel:`Other
468-
Pricelist`. This determines what the advanced price rule formula will be based on.
469-
470-
Next, in the :guilabel:`Discount` field, determine how much of a discount should be applied. It
471-
should be noted that a mark-up can be applied by setting a negative discount in this field.
472-
473-
.. example::
474-
To formulate a 100% markup (or 2 times the cost of the product), with a $5 minimum margin, set
475-
the :guilabel:`Based on` field to :guilabel:`Cost`, the :guilabel:`Discount` to `-100`, and the
476-
:guilabel:`Margins` to `5`. This is often seen in retail situations.
477-
478-
.. image:: pricing/formula-markup-cost-example.png
479-
:align: center
480-
:alt: How it looks to formulate a markup cost with 5 dollar minimum margin in Odoo Sales.
481-
482-
Then, in the :guilabel:`Extra Fee` field, specify a fixed amount to add (or subtract) to the amount
483-
calculated with the discount. After that, enter a desired figure in the :guilabel:`Rounding Method`
484-
field. The rounding method sets the price so that it is a multiple of the value in the field.
485-
486-
.. note::
487-
Rounding is applied *after* the discount and *before* the surcharge.
488-
489-
.. tip::
490-
To have prices that end in 9.99, set the :guilabel:`Rounding Method` to `10` and the
491-
:guilabel:`Extra Fee` to `-0.01`.
492-
493-
Lastly, specify the minimum amount of margin over the base price in the :guilabel:`Margins` field.
494-
495-
Once all formula-related configurations are complete, Odoo provides an example of the formula in a
496-
blue block to the right of the configurations.
497-
498-
.. example::
499-
To apply 20% discounts, with prices rounded up to 9.99, set the :guilabel:`Based on` field to
500-
:guilabel:`Sales Price`, the :guilabel:`Discount` field to `20`, the :guilabel:`Extra Fee` field
501-
to `-0.01`, and the :guilabel:`Rounding Method` field to `10`.
502-
503-
.. image:: pricing/formula-discount-example.png
504-
:align: center
505-
:alt: Example of a 20% discount with prices rounded to 9.99 in Odoo Sales.
506-
507333
Conditions
508334
----------
509335

Loading

0 commit comments

Comments
 (0)
Please sign in to comment.