OpenERP的价格表(Pricelist)机制
-
企业的价格策略往往比较复杂,不同渠道价格不同,不同购买数量折扣不同,促销活动的临时优惠,年底返点,次品减价处理等等。价格表(Pricelist)就是用来处理不同价格策略的价格计算问题。(顺便解释几个英文单词,Rebate:返点,Refound:优惠,Discount:折扣,Reduction:次品减价)。
OpenERP的价格表机制大致如下:
1)在Product Form上可以为产品设置标准采购价、标准销售价
2)可以为不同Partner(客户or供应商)设置不同的价格表,价格表可以按价格策略要求自动计算合适的采购价或销售价。
3)一个价格表(Pricelist)有多个价格表版本(Pricelist Version)。可以设置价格表版本有效(Active)与否,可以设置价格表版本的适用时间段。同一时间,每个价格表只能有一个价格表版本有效。例如,为某客户指定了价格表,但希望不同季节采取不同的价格策略,这个要求可以为该价格表设置四个价格版本(每季度一个),来实现。
4)一个价格版本上可以设置多条价格计算规则(Listprice Item)。每个价格计算规则包括适用条件(Rules Test Match)和价格计算方法(Price Computation)。当需要计算价格时,系统自动匹配条件,选择适用的价格计算方法,计算最终价格。
5)适用条件(Rules Test Match)是指,你可以指定产品、产品类型、产品模板、最低数量、规则序号。意思是,对这里指定的产品、产品类型、产品模板,数量达到这里设定的最低数量,则适用本条价格计算规则。规则序号(Sequence)的意思是,如果有系统匹配上多条规则,则取序号最小的规则。
6)价格计算方法(Price Computation),可以指定的值有:基础价格(Base Price),其他价格表(Other Pricelist),Field1,Field2,啥入方法(Rounding Method),最小利润(Min Margin),最大利润(Max Margin)。价格计算方法是:
最终价格 = Base Price * (1 + Field1) + Field2
啥入方法是指,假设啥入方法是N,意思是按公式算出来的价格,取最接近N的倍数的值。不过,系统是先啥入,再加Field2。举个价格计算例子。
Base Price = 1408,Field1=0.2,Field2=-1,Rounding Method=100,则最终价格是:
基础价*1.2 = 1689.6,最接近100的倍数是1700,再减去1(Field2),最终价格是1699 。
最小利润(Min Margin),最大利润(Max Margin)的意思是,如果按上述办法算出来的价格低于基础价格 + Min Margin,则取值"基础价格 + Min Margin",如果高于基础价格 + Max Margin,则取值"基础价格 + Max Margin"。
7)基础价格(Base Price),OpenERP可以选择多种基础价格:
Product Form上指定的标准销售价
Product Form上指定的标准成本价(采购价)
其他价格表,如果选择其他价格表,If Other Pricelist字段填入另一个价格表。
(此选项意思待考)the price that varies as a function of a supplier defined in the Partner section of the product form.
以其他价格表为基础价格很有意思,例如,可以指定在采购价上加价30%作为销售价,则无论采购价的价格表如何变得,销售价总是加价30%。又如,美元价价格表可以基于RMB价的价格表,除以汇率得到。 -
7)基础价格(Base Price),OpenERP可以选择多种基础价格:
Product Form上指定的标准销售价
Product Form上指定的标准成本价(采购价)
此处有误,在6.03以后版本,Base Price 的可选值大大增强了!
Base Price 的可选值是“Price Types” 中定义的值。在Price Types中,可以指定 Product Field,Currency。 Product Field可以是Product Form上的任意一个数值字段,Currency指定,该数值字段上的价格是什么币种的价格。
默认情况下,系统定义了两个Price Types,一个是字段“Sale Price”, 一个是字段“Cost Price”。如果当前用户属于Groups:Useability / Product Variant,在Product Form上可以看到两个隐藏的价格相关字段,Variant Price Margin,Variant Price Extra,利用此两字段,还可以为Product定义几种价格,如多币种价格。
关于多币种价格的解决办法。如,某Product的销售价格有两个,人民币100元,美元 50。解决办法如下:
1)在Sale Price字段填入人民币价格 100元,在Variant Price Margin字段填入美元价格50.
2)创建两个Price Type:Sale Price CNY,它关联字段Sale Price,Currency为CNY,另外一个 Sale Price USD,它关联字段Variant Price Margin,Currency为USD。
3)创建两个价格表,Sale Pricelist CNY, 他的Currency是CNY,它的Base Price选择Sale Price CNY;另一个Sale Pricelist USD, 他的Currency是USD,它的Base Price选择Sale Price USD。 -
用不同字段解决多币种问题还是有缺陷的,处理不同客户不同价格还凑合
还是同一字段 增加不同货币类型比较方便
[quote author=NewZN link=topic=2446.msg9130#msg9130 date=1324996817]
7)基础价格(Base Price),OpenERP可以选择多种基础价格:
Product Form上指定的标准销售价
Product Form上指定的标准成本价(采购价)
此处有误,在6.03以后版本,Base Price 的可选值大大增强了!
Base Price 的可选值是“Price Types” 中定义的值。在Price Types中,可以指定 Product Field,Currency。 Product Field可以是Product Form上的任意一个数值字段,Currency指定,该数值字段上的价格是什么币种的价格。
默认情况下,系统定义了两个Price Types,一个是字段“Sale Price”, 一个是字段“Cost Price”。如果当前用户属于Groups:Useability / Product Variant,在Product Form上可以看到两个隐藏的价格相关字段,Variant Price Margin,Variant Price Extra,利用此两字段,还可以为Product定义几种价格,如多币种价格。
关于多币种价格的解决办法。如,某Product的销售价格有两个,人民币100元,美元 50。解决办法如下:
1)在Sale Price字段填入人民币价格 100元,在Variant Price Margin字段填入美元价格50.
2)创建两个Price Type:Sale Price CNY,它关联字段Sale Price,Currency为CNY,另外一个 Sale Price USD,它关联字段Variant Price Margin,Currency为USD。
3)创建两个价格表,Sale Pricelist CNY, 他的Currency是CNY,它的Base Price选择Sale Price CNY;另一个Sale Pricelist USD, 他的Currency是USD,它的Base Price选择Sale Price USD。
[/quote] -
学习了。啥时下载一个来练习一下!