~openerp-community/openobject-doc/6.1

« back to all changes in this revision

Viewing changes to source/book/6/6_16_Sales/6_16_Sales_pricing.rst

  • Committer: TruongSinh Tran
  • Date: 2009-07-19 19:02:35 UTC
  • Revision ID: truongsinh@vipescoserver-20090719190235-fu3bxcrbpvwuk5h7
[FIX] build_i18n.py .. raw:: html

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
 
 
2
Price management policies
 
3
=========================
 
4
 
 
5
Some companies are notorious for their complicated pricelists. Many forms of price variation are
 
6
used, such as end-of-year refunds, discounts, changes of terms and conditions with time, various
 
7
prepayments, cascaded rebates, seasonal promotions, and progressive price reductions.
 
8
 
 
9
.. note:: Rebate, Refund, Reduction
 
10
 
 
11
   In some accounting jurisdictions you have to differentiate between the three following terms:
 
12
 
 
13
   * Rebate: reimbursement to the client, usually at the end of the year, that depends on the
 
14
     quantity of goods purchased over a period.
 
15
 
 
16
   * Refund: reduction on the order line or invoice line if a certain quantity of goods is purchased
 
17
     at one time or is sold in a framework of a promotional activity.
 
18
 
 
19
   * Reduction: a one-off reduction resulting from a quality defect or a variation in a product's
 
20
     conformance to a specification.
 
21
 
 
22
Intelligent price management is difficult, because it requires you to integrate several conditions
 
23
from clients and suppliers to create estimates quickly or to invoice automatically. But if you have
 
24
an efficient price management mechanism you can often keep margins raised and respond quickly to
 
25
changes in market conditions. A good price management system gives you scope for varying any and all
 
26
of the relevant factors when you're negotiating a contract.
 
27
 
 
28
To help you work most effectively, Open ERP's pricelist principles are extremely powerful yet are
 
29
based on simple and generic rules. You can develop both sales pricelists and purchase pricelists for
 
30
products capable of accommodating conditions such as the date period, the quantity requested and the
 
31
type of product.
 
32
 
 
33
.. tip:: Don't confuse the different price specifications
 
34
 
 
35
   Don't confuse the sale price with the base price of the product.
 
36
   In Open ERP's basic configuration the sale price is the list price set on the product form
 
37
   but a customer can be given a different sale price depending on the conditions.
 
38
 
 
39
It's the same for purchase price and standard cost. Purchase price is your suppliers' selling price,
 
40
which changes in response to different criteria such as quantities, dates, and supplier. This is
 
41
automatically set by the accounting system. You'll find that the two prices have been set by default to the
 
42
same for all products with the demonstration data, which can be a source of confusion.
 
43
You're free to set the standard cost to something different.
 
44
 
 
45
Each pricelist is calculated from defined policies, so you'll have as many sales pricelists as
 
46
active sales policies in the company. For example a company that sells products through three sales
 
47
channels could create the following price lists:
 
48
 
 
49
 #. Main distribution:
 
50
 
 
51
        - pricelist for Walbury,
 
52
 
 
53
        - pricelist for TesMart,
 
54
 
 
55
 #. Postal Sales.
 
56
 
 
57
 #. Walk-in customers.
 
58
 
 
59
A single pricelist can exist in several versions, only one of which is permitted to be active at a
 
60
given time. These versions let you set different prices at different points in time. So the
 
61
pricelist for walk-in customers could have five different versions, for example: \ ``Autumn``\,  \
 
62
``Summer``\, \ ``Summer Sales``\, \ ``Winter``\, \ ``Spring``\. Direct customers will see prices
 
63
that change with the seasons.
 
64
 
 
65
Each pricelist is expressed in a single currency. If your company sells products in several
 
66
currencies you'll have to create as many pricelists as you have currencies.
 
67
 
 
68
The prices on a pricelist can depend on another list, which means that you don't have to repeat the
 
69
definition of all conditions for each product. So a pricelist in USD can be based on a pricelist in
 
70
EUR. If the currency conversion rates between EUR and USD change, or the EUR prices change, the USD
 
71
rates can be **automatically** adjusted.
 
72
 
 
73
.. index::
 
74
   single: pricelist; create
 
75
 
 
76
Creating pricelists
 
77
-------------------
 
78
 
 
79
To define a pricelist use the menu :menuselection:`Products --> Pricelists --> Pricelists` .
 
80
 
 
81
For each list you should define:
 
82
 
 
83
* a :guilabel:`Name` for the list,
 
84
 
 
85
* a :guilabel:`Type` of list: \ ``Sale``\   for customers or \ ``Purchase``\   for suppliers,
 
86
 
 
87
* the :guilabel:`Currency` in which the prices are expressed.
 
88
 
 
89
.. index::
 
90
   single: module; edi
 
91
 
 
92
.. tip:: Customer Price
 
93
 
 
94
   If you install the module :mod:`edi` (in ``addons-extra`` at the time of writing)
 
95
   a third type of list appears – the :guilabel:`Customer Price` - which
 
96
   defines the price displayed for the end user.
 
97
   This doesn't have to be the same as your selling price to an intermediary or distributor.
 
98
 
 
99
.. index::
 
100
   single: pricelists; version
 
101
 
 
102
Pricelist versions
 
103
^^^^^^^^^^^^^^^^^^
 
104
 
 
105
Once the list is defined you must provide it with at least one version. To do that use the menu
 
106
:menuselection:`Products --> Pricelists --> Pricelist Versions`. The version contains all of the
 
107
rules that enable you to calculate a price for a product and a given quantity.
 
108
 
 
109
So set the :guilabel:`Name` of this associated version. If the list only has a single version you
 
110
can use the same name for the pricelist and the version. In the :guilabel:`Pricelist` field select
 
111
the pricelist you created.
 
112
 
 
113
Then set the :guilabel:`Start date` and :guilabel:`End date` of this version. The fields are both
 
114
optional: if you don't set any dates the version will be permanently active. Only one version
 
115
may be active at any one point, so bear this in mind when creating them.
 
116
Use the :guilabel:`Active` field in the versions to activate or disable a pricelist version.
 
117
 
 
118
.. note:: Automatically updating the sale pricelist
 
119
 
 
120
   You can make any sale pricelist depend on one of the other pricelists.
 
121
   So you could make your sale pricelist depend on your supplier's purchase pricelist, to
 
122
   which you add a margin.
 
123
   The prices are automatically calculated as a function of the purchase price and need no further
 
124
   manual adjustment.
 
125
 
 
126
.. index:: price
 
127
 
 
128
Rules for calculating price
 
129
^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
130
 
 
131
A pricelist version is made up of a set of rules that apply to the product base prices.
 
132
 
 
133
.. figure:: images/service_pricelist_line.png
 
134
   :scale: 75
 
135
   :align: center
 
136
 
 
137
   *Detail of a rule in a pricelist version*
 
138
 
 
139
You define the conditions for a rule in the first part of the definition screen labeled :guilabel:`Rules Test
 
140
Match`. The rule applies to the :guilabel:`Product` or :guilabel:`Product Template` and/or the named :guilabel:`Product
 
141
Category`. If a rule is applied to a category then it is automatically applied to all of its
 
142
subcategories too (using the tree structure for product categories).
 
143
 
 
144
If you set a minimum quantity in :guilabel:`Min. Quantity` the rule will only apply to a quantity the same
 
145
as or larger than that set. This lets you set reduced rates in steps that depend on the quantities ordered.
 
146
 
 
147
Several rules can be applied to an order. Open ERP evaluates these rules in sequence to select
 
148
which to apply to the specified price calculation. If several rules are valid only the first in
 
149
sequence is used for the calculation. The :guilabel:`Sequence` field determines the order, starting with the
 
150
lowest number and working up.
 
151
 
 
152
Once a rule has been selected, the system has to determine how to calculate the price from the rule.
 
153
This operation is based on the criteria set out in the lower part of the form, labeled :guilabel:`Price
 
154
Computation`.
 
155
 
 
156
The first field you have to complete is labeled :guilabel:`Based on`. Set the mode for
 
157
partner price calculation, choosing between:
 
158
 
 
159
* the :guilabel:`List Price` set in the product file,
 
160
 
 
161
* the :guilabel:`Standard Cost` set in the product file,
 
162
 
 
163
* an :guilabel:`Other Pricelist` given in the field :guilabel:`If Other Pricelist`,
 
164
 
 
165
* the price that varies as a function of a supplier defined in the :guilabel:`Partner section of the
 
166
  product form`.
 
167
 
 
168
Several other criteria can be considered and added to the list, as you'll see in the following
 
169
section.
 
170
 
 
171
Next, various operations can be applied to the base price to calculate the sales or purchase price
 
172
for the partner at the specified quantities. To calculate it you apply the formula shown on the
 
173
form: ``Price = Base Price x (1 – Field1) + Field2`` .
 
174
 
 
175
The first field, :guilabel:`Field1`, defines a discount. Set it to 0.20 for a discount of 20% from
 
176
the base price. If your price is based on standard cost, you can set -0.15 to get a 15% price uplift
 
177
compared with the standard costs.
 
178
 
 
179
:guilabel:`Field2` sets a fixed supplement to the price, expressed in the currency of the pricelist.
 
180
This amount is just added (or subtracted, if negative) to the amount calculated with the
 
181
:guilabel:`Field1` discount.
 
182
 
 
183
Then you can specify a rounding method. The rounding calculation is carried out to the nearest
 
184
number. For example if you set 0.05 in this example, a price of 45.66 will be rounded to 45.65, and
 
185
14,567 rounded to 100 will give a price of 14,600.
 
186
 
 
187
.. note:: Swiss special situation
 
188
 
 
189
   In Switzerland, the smallest monetary unit is 5 cents.
 
190
   There aren't any 1 or 2 cent coins.
 
191
   So you set Open ERP's rounding to 0.05 to round everything in a Swiss franc pricelist.
 
192
 
 
193
The supplement from :guilabel:`Field2` is applied before the rounding calculation, which enables
 
194
some interesting effects. For example if you want all your prices to end in 9.99, set your rounding
 
195
to 10 and your supplement to -0.01 in :guilabel:`Field2`.
 
196
 
 
197
Minimum and Maximum margins enable you to guarantee a given margin over the base price. A margin of
 
198
10 USD enables you to stop the discount from returning less than that margin. If you put 0 into this
 
199
field, no effect is taken into account.
 
200
 
 
201
Once the pricelist is defined you can assign it to a partner. To do this, find a Partner and select
 
202
its :guilabel:`Properties` tab. You can then change the :guilabel:`Purchase Pricelist` and the
 
203
:guilabel:`Sale Pricelist` that's loaded by default for the partner.
 
204
 
 
205
Case of using pricelists
 
206
------------------------
 
207
 
 
208
Take the case of an IT systems trading company, for which the following product categories have
 
209
been configured:
 
210
 
 
211
All products
 
212
 
 
213
 #. Accessories
 
214
 
 
215
                * Printers
 
216
 
 
217
                * Scanners
 
218
 
 
219
                * Keyboards and Mice
 
220
 
 
221
 #. Computers
 
222
 
 
223
                * Portables
 
224
 
 
225
                 - Large-screen portables
 
226
 
 
227
                * Computers
 
228
 
 
229
                 - Office Computers
 
230
 
 
231
                 - Professional Computers
 
232
 
 
233
In addition, the products presented in the table below are defined in the currency of the installed
 
234
chart of accounts.
 
235
 
 
236
TABLE
 
237
 
 
238
.. csv-table:: Examples of products with their different prices
 
239
 
 
240
   "Product ","List Price","Standard Price","Default supplier price",
 
241
   "Acclo Portable","1,200 ","887 ","893 ",
 
242
   "Toshibishi Portable","1,340 ","920 ","920 ",
 
243
   "Berrel Keyboard","100 ","50 ","50 ",
 
244
   "Office Computer","1,400 ","1,000 ","1,000 ",
 
245
 
 
246
 
 
247
.. index::
 
248
   single: pricelist; default pricelist
 
249
 
 
250
Default pricelists
 
251
^^^^^^^^^^^^^^^^^^
 
252
 
 
253
.. figure:: images/product_pricelist_default.png
 
254
   :scale: 75
 
255
   :align: center
 
256
 
 
257
   *Default pricelist after installing Open ERP*
 
258
 
 
259
When you install the software two pricelists are created by default: one for sales and one for
 
260
purchases. These each contain only one pricelist version and only one line in that version.
 
261
 
 
262
The price for sales defined in the Default Public Pricelist is set by default to
 
263
the Public Price of the product in the product file, which is the Sale Price in the Product file.
 
264
 
 
265
The price for purchases defined in the Default Purchase Pricelist is set by default in the same way to
 
266
the Standard Cost of the product in the product file.
 
267
 
 
268
.. index::
 
269
   single: trading company
 
270
 
 
271
Example of a trading company
 
272
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
273
 
 
274
Take the case of a trading company, where the sale price for resellers can be defined like this:
 
275
 
 
276
* For portable computers, the sale price is calculated from the list price of the supplier Acclo,
 
277
  with a supplement of 23% on the cost of purchase.
 
278
 
 
279
* For all other products the sale price is given by the standard cost in the product file, on which
 
280
  31% is added. The price must end in ``.99`` .
 
281
 
 
282
* The sale price of Berrel keyboards is fixed at 60 for a minimum quantity of 5 keyboards purchased.
 
283
  Otherwise it uses the rule above.
 
284
 
 
285
* Assume that the Acclo pricelist is defined in Open ERP. The pricelist for resellers and the
 
286
  pricelist version then contains three lines:
 
287
 
 
288
       #. \ ``Acclo``\  line:
 
289
 
 
290
                *  :guilabel:`Product Category` : \ ``Portables``\  ,
 
291
 
 
292
                *  :guilabel:`Based on` : \ ``Other pricelist``\  ,
 
293
 
 
294
                *  :guilabel:`Pricelist if other` : \ ``Acclo pricelist``\  ,
 
295
 
 
296
                *  :guilabel:`Field1` : \ ``-0.23``\  ,
 
297
 
 
298
                *  :guilabel:`Priority` : \ ``1``\  .
 
299
 
 
300
       #. \ ``Berrel Keyboard``\  line:
 
301
 
 
302
                *  :guilabel:`Product Template` : \ ``Berrel Keyboard``\  ,
 
303
 
 
304
                *  :guilabel:`Min. Quantity` : \ ``5``\  ,
 
305
 
 
306
                *  :guilabel:`Field1` : \ ``1.0``\  ,
 
307
 
 
308
                *  :guilabel:`Field2` : \ ``60``\  ,
 
309
 
 
310
                *  :guilabel:`Priority` : \ ``2``\  .
 
311
 
 
312
       #. \ ``Other products``\  line:
 
313
 
 
314
                *  :guilabel:`Based on:` \ ``Standard Price``\  ,
 
315
 
 
316
                *  :guilabel:`Field1` : \ ``-0.31``\  ,
 
317
 
 
318
                *  :guilabel:`Field2` : \ ``-0.01``\  ,
 
319
 
 
320
                *  :guilabel:`Rounding` : \ ``1.0``\  .
 
321
 
 
322
                *  :guilabel:`Priority` :  \ ``3``\ .
 
323
 
 
324
It's important that the priority of the second rule is set below the priority of the third in this
 
325
example. If it were the other way round the third rule would always be applied because a quantity of
 
326
5 is always greater than a quantity of 1 for all products.
 
327
 
 
328
Also note that to fix a price of 60 for the 5 Berrel Keyboards, the formula \ ``Price = Base Price x
 
329
(1 – 1.0) + 60``\   has been used.
 
330
 
 
331
Establishing customer contract conditions
 
332
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
333
 
 
334
The trading company can now set specific conditions to a customer, such as the company TinAtwo, who
 
335
might have signed a valid contract with the following conditions:
 
336
 
 
337
* For Toshibishi portables, TinAtwo benefits from a discount of 5% of resale price.
 
338
 
 
339
* For all other products, the resale conditions are unchanged.
 
340
 
 
341
The list price for TinAtwo, called ``TinAtwo contract`` , contains two rules:
 
342
 
 
343
       #. \ ``Toshibishi portable``\  :
 
344
 
 
345
                *  :guilabel:`Product` : \ ``Toshibishi Portable``\  ,
 
346
 
 
347
                *  :guilabel:`Based on` : \ ``Other pricelist``\  ,
 
348
 
 
349
                *  :guilabel:`Pricelist if other` : \ ``Reseller pricelist``\  ,
 
350
 
 
351
                *  :guilabel:`Field1` : \ ``0.05``\  ,
 
352
 
 
353
                *  :guilabel:`Priority` : \ ``1``\  .
 
354
 
 
355
       #. \ ``Other Products``\ :
 
356
 
 
357
                *  :guilabel:`Product` :
 
358
 
 
359
                *  :guilabel:`Based on` : \ ``Other pricelist``\  ,
 
360
 
 
361
                *  :guilabel:`Pricelist if other` : \ ``Reseller pricelist``\  ,
 
362
 
 
363
                *  :guilabel:`Priority` : \ ``2``\  .
 
364
 
 
365
Once this list has been entered you should look for the partner form for TinAtwo again. Click the
 
366
:guilabel:`Properties` tab to set the :guilabel:`Sale List Price` field to *TinAtwo Contract*. If
 
367
the contract is only valid for one year, don't forget to set the :guilabel:`Start Date` and
 
368
:guilabel:`End Date` fields in the :guilabel:`Price List Version`.
 
369
 
 
370
Then when salespeople prepare an estimate for TinAtwo the prices proposed will automatically be
 
371
calculated from the contract conditions.
 
372
 
 
373
Different bases for price calculation
 
374
-------------------------------------
 
375
 
 
376
Open ERP's flexibility enables you to make prices that depend not only on prices on the product
 
377
form, but in addition to the two predefined ones – Cost Price and Public Price.
 
378
 
 
379
To do this use the menu :menuselection:`Products --> Definitions --> Price Types`. Create a new
 
380
entry for the new price type. Enter the field name, the field on the product form that this type of
 
381
price corresponds to and the currency that will be expressed in this field. The operation works just
 
382
as well on new fields added to the product form to meet specific developments.
 
383
 
 
384
Once this operation has been carried out you can make pricelists depend on this new price type.
 
385
 
 
386
Then, adding the weight and/or volume field, the price of a product by piece can vary by its weight
 
387
and/or volume. This is different from defining a price by weight – in that case the default unit
 
388
of measure is weight and not piece.
 
389
 
 
390
Pricelists and managing currencies
 
391
----------------------------------
 
392
 
 
393
If your trading company wants to start a product catalog in a new currency you can handle this
 
394
several ways:
 
395
 
 
396
* Enter the prices in a new independent pricelist and maintain the lists in the two currencies
 
397
  separately,
 
398
 
 
399
* Create a field in the product form for this new currency and make the new pricelist depend on this
 
400
  field: prices are then maintained separately but in the product file,
 
401
 
 
402
* Create a new pricelist for the second currency and make it depend on another pricelist or on the
 
403
  product price: the conversion between the currencies will then be done automatically at the
 
404
  prevailing currency conversion rate.
 
405
 
 
406
.. Copyright © Open Object Press. All rights reserved.
 
407
 
 
408
.. You may take electronic copy of this publication and distribute it if you don't
 
409
.. change the content. You can also print a copy to be read by yourself only.
 
410
 
 
411
.. We have contracts with different publishers in different countries to sell and
 
412
.. distribute paper or electronic based versions of this book (translated or not)
 
413
.. in bookstores. This helps to distribute and promote the Open ERP product. It
 
414
.. also helps us to create incentives to pay contributors and authors using author
 
415
.. rights of these sales.
 
416
 
 
417
.. Due to this, grants to translate, modify or sell this book are strictly
 
418
.. forbidden, unless Tiny SPRL (representing Open Object Press) gives you a
 
419
.. written authorisation for this.
 
420
 
 
421
.. Many of the designations used by manufacturers and suppliers to distinguish their
 
422
.. products are claimed as trademarks. Where those designations appear in this book,
 
423
.. and Open Object Press was aware of a trademark claim, the designations have been
 
424
.. printed in initial capitals.
 
425
 
 
426
.. While every precaution has been taken in the preparation of this book, the publisher
 
427
.. and the authors assume no responsibility for errors or omissions, or for damages
 
428
.. resulting from the use of the information contained herein.
 
429
 
 
430
.. Published by Open Object Press, Grand Rosière, Belgium