This is the documentation for older versions of Odoo (formerly OpenERP).

See the new Odoo user documentation.

See the new Odoo technical documentation.

Pricing Policies

Some companies are notorious for their complicated pricelists. Many forms of price variation are used, such as end-of-year refunds, discounts, change of terms and conditions with time, various prepayments, cascaded rebates, seasonal promotions, and progressive price reductions.


Накопительная скидка, Фиксированная скидка, Уценка

В некоторых бухгалтерских юрисдикциях вам надо делать различие между следующими терминами:

  • Накопительная скидка (Rebate): возмещение клиенту, обычно в конце года, которое зависит от количества товаров, закупленных на протяжении периода.

  • Скидка (Refund): уменьшение стоимости позиции заказа или позиции счета, если закупается определенное количество товара за один раз или на протяжении промо-акции.

  • Уценка (Reduction): одноразовое уменьшение цены, вызванное дефектом качества или изменением соответствия продукта его спецификации.

Intelligent price management is difficult, because it requires you to integrate several conditions from clients and suppliers to create estimates quickly or to invoice automatically. But if you have an efficient price management mechanism you can often keep margins raised and respond quickly to changes in market conditions. A good price management system gives you scope for varying any and all of the relevant factors when you are negotiating a contract.

Чтобы помочь вам работать более эффективно, принципы прейскурантов в OpenERP чрезвычайно мощны и основаны на простых и общих правилах. Вы можете разработать и прейскуранты продаж, и прейскуранты на закупку продукции, способные совмещать такие условия, как период дат, количество запрошенной продукции и тип продукта.


Do not confuse the Different Price Specifications

Do not confuse the sales price with the basic price of the product. In OpenERP's basic configuration, the sales price is the list price specified in the product form, but a customer can have a different sales price depending on the conditions.

The same applies to the purchase price and standard cost. Purchase price is your suppliers' selling price, which changes in response to different criteria such as quantities, dates, and supplier. This is automatically set by the accounting system. You will find that the two prices have been set by default to the same for all products with the demonstration data, which can be a source of confusion. You are free to set the standard cost to something different.

Each pricelist is calculated from defined policies, so you will have as many sales pricelists as active sales policies in the company. For example, a company that sells products through three sales channels could create the following price lists:

  1. Основные продажи (Main distribution):

    • Прейскурант для Walbury (pricelist for Walbury),

    • Прейскурант для TesMart (pricelist for TesMart),

  2. Продажи по почте (Postal Sales).

  3. Приходящие клиенты (Walk-in customers).

A single pricelist can exist in several versions, only one of which is permitted to be active at a given time. These versions let you set different prices at different points in time. So the pricelist for walk-in customers could have five different versions, for example: Autumn, Summer, Summer Sales, Winter, Spring. Direct customers will see prices that change with the seasons.

Each pricelist is expressed in a single currency. If your company sells products in several currencies, you will have to create as many pricelists as you have currencies.

The prices on a pricelist can depend on another list, which means that you do not have to repeat the definition of all conditions for each product. So a pricelist in USD can be based on a pricelist in EUR. If the currency conversion rates between EUR and USD change, or the EUR prices change, the USD rates can be automatically adjusted.

Creating Price Lists

You can define a pricelist from the menu Sales ‣ Configuration ‣ Pricelists ‣ Pricelists.

Для каждого прейскуранта необходимо определить:

  • Название (Name) прейскуранта,

  • a Type of list: Sale for customers or Purchase for suppliers,

  • Валюту (Currency), в которой выражены цены.

Price List Versions

Once the pricelist is defined you have to link at least one version. You can create a new version directly from the pricelist or from the Sales ‣ Configuration ‣ Pricelists ‣ Pricelist Versions menu. The version contains all of the rules that enable you to calculate a price for a product and a given quantity.

Start by setting the Name of this associated version. If the list only has a single version, you can use the same name for the pricelist and the version. In the Price List field, select the pricelist you created (this is not necessary if you create the version directly from the pricelist).

Then set the Start Date and End Date of this version. The fields are both optional: if you do not set any dates the version will be permanently active. Only one version may be active at any one point, so bear this in mind when creating them. Use the Active field in the versions to activate or disable a pricelist version.


Automatically Updating the Sales Pricelist

Any sales pricelist can be set to depend on one of the other pricelists. So you could create your sales pricelist based on the supplier's purchase pricelist, to which you add a margin. The prices are automatically calculated as a function of the purchase price and need no further manual adjustment.

Calculation Rules

A pricelist version is made up of a set of rules that apply to the basic product prices.


Rule in a Pricelist Version

You define the conditions for a rule . The rule applies to the Product or Product Template and/or the named Product Category. If a rule is applied to a category, then it is automatically applied to all of its subcategories too (using the tree structure for product categories).

If you set a minimum quantity in Min. Quantity, the rule will only apply to a quantity equal to or larger than the quantity set. This way, you can define reduced rates in steps according to the quantities ordered.

Several rules can be applied to an order. OpenERP evaluates these rules by sequence number, to determine which rule(s) to apply to the specified price calculation. If several rules are valid, only the first in sequence is used for the calculation. The Sequence field determines the order, starting with the lowest number and working up.

Once a rule has been selected, the system has to determine how to calculate the price from the rule. This operation is based on the criteria set out in the lower part of the form, labelled Price Computation.

The first field to complete is Based on. Set the way in which the partner price will be calculated, choosing between:

  • the Public Price set in the product file,

  • the Cost Price set in the product file,

  • Иной прейскурант (Other Pricelist), указанный в поле Если иной прейскурант (If Other Pricelist),

  • the price that varies as a function of a supplier defined in the Supplier Prices on the product form.

Several other criteria can be considered and added to the list, as you will see in the following section.

Next, various operations can be applied to the basic price to calculate the sales or purchase price for the partner, according to the specified quantities. To calculate it, you apply the formula shown on the form: Price = Base Price x (1 + Field1) + Field2 .

The first field, Field1, defines a discount or a supplement. Set it to -0.20 for a discount of 20% from the basic price. If your price is based on standard cost, you can set 0.15 to get a 15% price uplift compared to the standard costs.

Field2 указывает фиксированную надбавку к цене, указанную в валюте прейскуранта. Это количество просто прибавляется (или вычитается, если значение отрицательно) к сумме, рассчитанной с учетом скидки, указанной в Field1.

Затем вы можете указать способ округления. Округление производится до ближайшего числа. Например, если в данном примере вы укажете 0.05, то цена в 45.66 будет округлена до 45.65, а 14 567, округленное до 100, даст цену в 14 600.


Swiss Special Situation

In Switzerland, the smallest monetary unit is 5 cents. There are not any 1 or 2 cent coins. So you set OpenERP's rounding to 0.05 to round everything in a Swiss franc pricelist.

The supplement from Field2 is applied before the rounding calculation, which enables some interesting effects. For example, if you want all your prices to end in 9.99, set your rounding to 10 and your supplement to -0.01 in Field2.

Минимальное и максимальное значение маржи дает вам гарантию заданной маржи с базовой цены. Маржа в 10 долл.США позволяет вам остановить процесс предоставления скидки, при которой маржа получается ниже этой величины. Если вы установите значение этого поля в 0, оно не будет оказывать эффекта.

Once the pricelist is defined, you can assign it to a customer. Go to the Customer form and select its Sales & Purchases tab. You can then change the Purchase Pricelist and the Sale Pricelist that is loaded by default for the customer.

Decimal Accuracy

There are several configuration settings related to the decimal accuracy of prices, or the number of decimal places to hold with each price field. To change the accuracy of a field, follow these steps:

  1. First make sure that you have give the access rights to user.

  2. Go to Settings ‣ Technical ‣ Database Structure ‣ Decimal Accuracy. This list contains a number of predefined elements.

  3. Open the entry you want to change. Purchase Price and Sale Price are the most common ones related to prices, but some fields are controlled by the Account entry.

  4. Type a new value in the digits field, and save the entry. Do not change the description in the Usage field, or it will stop working.

  5. Close the screen where you were editing prices and reopen it. The price field should now have the number of digits you asked for.

Example of a Pricelist

Рассмотрим пример компании, продающей компьютерную технику и системы, для которой были настроены следующие категории продуктов:

Все продукты

  1. Аксессуары (Accessories)

    • Принтеры (Printers)

    • Сканеры (Scanners)

    • Клавиатуры и мыши (Keyboards and Mice)

  2. Компьютеры (Computers)

    • Переносные (Portables)

    • Переносные с большим экраном (Large-screen portables)

    • Компьютеры (Computers)

    • Офисные компьютеры (Office Computers)

    • Профессиональные компьютеры (Professional Computers)

Кроме того, представленные в таблице ниже продукты определены в валюте установленного плана счетов.


Examples of products with their different prices

Продукт (Product)

Sale Price

Cost Price

Цена поставщика по умолчанию (Default supplier price)


Переносной Acclo (Acclo Portable)





Переносной Toshibishi (Toshibishi Portable)





Клавиатуре Berrel (Berrel Keyboard)





Офисный компьютер (Office Computer)





Default Price Lists


Прейскурант по умолчанию после установки OpenERP

When you install the software, two pricelists are created by default: one for sales and one for purchases. Each of them contains only one pricelist version and only one line in that version.

The price for sales defined in the Default Public Pricelist is set by default to the Public Price of the product, which is the Sales Price in the Product form.

The price for purchases defined in the Default Purchase Pricelist is set by default in the same way to the Cost Price of the product.

Trading Company

Take the case of a trading company, where the sales price for resellers can be defined like this:

  • Для портативных компьютеров цена продажи определяется на основании прейскуранта поставщика Acclo, с наценкой 23% к стоимости закупки.

  • For all other products the sales price is given by the standard cost in the product file, to which 31% is added. The price should end in .99 .

  • The sales price of Berrel keyboards is fixed at 60 for a minimum quantity of 5 keyboards purchased. Otherwise it uses the rule above.

  • Assume that the Acclo pricelist is defined in OpenERP. The pricelist for resellers and the pricelist version then contains three lines:

    1. Acclo line:

      • Product Category : Portables ,

      • Based on : Other pricelist ,

      • Pricelist if other : Acclo pricelist ,

      • Field1 : 0.23 ,

      • Priority : 1 .

    2. Berrel Keyboard line:

      • Product Template : Berrel Keyboard ,

      • Min. Quantity : 5 ,

      • Field1 : 1.0 ,

      • Field2 : 60 ,

      • Priority : 2 .

    3. Other products line:

      • Based on: Standard Price ,

      • Field1 : 0.31 ,

      • Field2 : -0.01 ,

      • Rounding : 1.0 .

      • Priority : 3.

It is important that the priority of the second rule is set below the priority of the third in this example. If it were the other way around, the third rule would always be applied, because a quantity of 5 is always greater than a quantity of 1 for all products.

Also note that to fix a price of 60 for the 5 Berrel Keyboards, the formula Price = Base Price x (1 + 1.0) + 60 has been used.

Establishing Customer Contract Conditions

Торговая компания может установить специальный отношения с клиентом, таким, как компания TinAtwo, который может заключить договор со следующими условиями:

  • Для портативных компьютеров Toshibishi (Toshibishi portables), TinAtwo получает скидку в 5% от цены перепродажи.

  • Для всех остальных продуктов условия перепродажи остаются неизменными.

The sales price for TinAtwo, called TinAtwo contract, contains two rules:

  1. Toshibishi portable :

    • Product : Toshibishi Portable ,

    • Based on : Other pricelist ,

    • Pricelist if other : Reseller pricelist ,

    • Field1 : 0.05 ,

    • Priority : 1 .

  2. Прочие продукты (Other Products):

    • Продукт (Product) :

    • Based on : Other pricelist ,

    • Pricelist if other : Reseller pricelist ,

    • Priority : 2 .

Once this list has been entered, you should look up the partner form of TinAtwo again. Click the Sales & Purchases tab to set the Sale Pricelist field to TinAtwo Contract. If the contract is only valid for one year, do not forget to set the Start Date and End Date fields in the Pricelist Version.

Then when salespeople prepare an estimate for TinAtwo, the prices proposed will automatically be calculated from the contract conditions.

Pricelists and Managing Currencies

Если ваша торговая компания решит создать каталоги продукции в новой валюте, вы можете воспользоваться несколькими способами:

  • Внесение цен нового независимого прейскуранта и поддерживать прейскуранты в двух валютах по отдельности,

  • Create a field in the product form for this new currency and make the new pricelist depend on this field: prices are then maintained separately, but in the product file,

  • Создание нового прейскуранта в другой валюте и установление его зависимым от другого прейскуранта или от цены продукта: преобразование между валютами будет произведено автоматически по курсу главной валюты.