Odoo 8.0 product, product variant 产品和产品系列 的实现,实施和操作
-
Odoo 8.0 的产品 product 支持 product variant (产品系列)。 可是实施操作起来有很多容易出错的地方。下面是从源代码总结出来的正确实施操作办法。欢迎指正。
1. 实现原理
在Odoo 8.0 里面,有很多Model用来实现产品管理功能。 “product_template” 是基本的产品model, 一个“product_template”可以有多个“product_attribute_line” 属性系列。 一个属性系列是一个产品属性(product_attribute)和其中的多个属性值(product_attribute_value)。比如,一个帽子的产品有尺寸属性,尺寸属性值可以有大中小三个。 在产品(product_template)里面这是一个属性系列。一个产品可以有多个系列,比如还可以有颜色和颜色属性值比如红和白。 对一个产品的不同属性值(product_attribute_value)可以有附加的价格比如帽子的大号价钱要加十块钱。这个是存在 “product_attribute_price" model 里面。 Odoo为一个产品的suoy属性值组合自动产生所有个产品系列product variant, 实际的实现是 “product_product” model. 上面帽子产品有六个系列(大中小 )× (红白)。
问题的关键是这六个product variant是Odoo自动产生的,而且会在两种情况下重置:1)你修改产品的属性列表 2)产品的Active设为True时。此时所有在product variant的列表里面增删都会被重置。 技术细节参考这里( [检测到链接无效,已移除] )。 删除不掉的产品系列其Active设为“False”。
2. 实施操作建议
实施时候要规划好,一个产品到底有什么属性,这个最重要。加一个或减一个属性,Odoo会删除所有的产品系列来产生新的。 相比之下,具体的属性值比如加减一个颜色不是大问题。 有个关键细节: 每个属性最少有二个值,要不然会被忽略。比如,系统初始化时候如果帽子颜色只有一个白色,Odoo会忽略颜色这个属性系列, 只为尺寸产生三个产品系列。 如果后来再加一个红色,系统就会删除旧的产品系列,重新生成六个产品系列。 如果再加一个颜色比如黄色,系统会为大中小生成三个黄色的产品系列,旧的保留。 同理, 如果只有红白二个颜色时候,不要删除一个。因为系统认为没有必要为单值的产品属性系列生成产品系列,因而会删除六个产品系列而重新生成大中小三个产品系列。
操作是正确的做法是在Product 的 attribute 里面 定义好所有的产品属性系列 (attribute 和product attribute value),每个属性定义至少二个值。 在 variant prices里,可以为某个属性增加减少附加价格。[color=red][b]每次点击List Variants 的时候[/b][/color],Odoo系统会自动验证和产生所有的产品系列(product variants)并删除多余的产品系列。
在Product variants 可以看到所有的产品系列,不要在这里增删任何产品系列。 -
补充 一点内容:
见这个帖子: [检测到链接无效,已移除]
补充另外一点内容:http://shine-it.net/index.php/topic,17076.msg30233.html#msg30233 -
如果这个记录不能删除,就设置其active = False, 参见下面product.py的源代码:
# unlink or inactive product
for variant_id in map(int,variants_inactive):
try:
with cr.savepoint():
product_obj.unlink(cr, uid, [variant_id], context=ctx)
except (psycopg2.Error, osv.except_osv):
product_obj.write(cr, uid, [variant_id], {'active': False}, context=ctx)
pass -
非常感谢,很好理解。。。。
昨天试用了下,,有些和我想象的不一样。。。。
比如,有个产品,假设是床单,设置两个属性,尺寸:1.2米,1.5米,1.8米;颜色:红色,黄色。
然后就变成了6种,
在设置价格的时候出现理解上的差异:
在Product Variants中,修改任何一个的标价和成本价,都是全部更改,也就是这些价格是共享的。
后来找到了,在Variant Values中,可以针对6个中的任何一个设置价格差异,这个是标价的差异。
但是成本价,肯定也是不一样的,比如1.2米、1.5米、1.8米的肯定不一样,就好像手机的白色壳和黑色壳的成本不一样。
所以目前理解,这个上面的系列,是不是只有不涉及到进价的?或者是我没有考虑到? -
[quote author=royalier link=topic=16720.msg29531#msg29531 date=1418181275]
非常感谢,很好理解。。。。
昨天试用了下,,有些和我想象的不一样。。。。
比如,有个产品,假设是床单,设置两个属性,尺寸:1.2米,1.5米,1.8米;颜色:红色,黄色。
然后就变成了6种,
在设置价格的时候出现理解上的差异:
在Product Variants中,修改任何一个的标价和成本价,都是全部更改,也就是这些价格是共享的。
后来找到了,在Variant Values中,可以针对6个中的任何一个设置价格差异,这个是标价的差异。
但是成本价,肯定也是不一样的,比如1.2米、1.5米、1.8米的肯定不一样,就好像手机的白色壳和黑色壳的成本不一样。
所以目前理解,这个上面的系列,是不是只有不涉及到进价的?或者是我没有考虑到?
[/quote]
我也是遇到了 不同产品规格成本价格不一样的问题 这个很常见啊 现在论坛大神 有解决的办法吗? 如果没有 基本只能舍弃属性咯 一个一个当产品录入了 -
我的天呢。。应该不会把。。我看了数据库里 有product_pricelist ...
最基本sku的功能 应该不会错把 -
Phone 5C 红黄蓝绿紫
iPhone 5C 8G/16G/32G
这些是在网站中展示的,客户下订单购买蓝色的/16G的iPhone 5C
也就是说颜色和容量只是一个属性,每台机器只能选择其中一项,我们怎样在OpenERP中配置呢?
如方便的话请上图,非常感激。
图:
[img [检测到链接无效,已移除] /img]
引用自: 星叔 于 九月 11, 2014, 09:10:21 上午
感谢元老的回复
还有2个问题麻烦您
1.这个是需要安装哪个模块?我昨天查找了下,搜索到一个<br / https://www.odoo.com/apps/7.0/product_variant_multi/ br />不知道元老是否用的也是这个
2.产品属性有数十个,我用iPhone只是举例,是否可以设置N多属性
谢谢您的答复。
1. V8.0 内置功能.
2. 截图中 不是还有个 Wifi 2.4GHz 的属性么? 你没有看到下面还有一个 "Add an item" 吗? 别说10个, 20000个也不存在问题呀. -
【上校】昆山-jeffery
呵,成本方法 试试 -
[quote author=yanggg1133 link=topic=16720.msg30555#msg30555 date=1434629664]
Phone 5C 红黄蓝绿紫
iPhone 5C 8G/16G/32G
这些是在网站中展示的,客户下订单购买蓝色的/16G的iPhone 5C
也就是说颜色和容量只是一个属性,每台机器只能选择其中一项,我们怎样在OpenERP中配置呢?
如方便的话请上图,非常感激。
图:
[img [检测到链接无效,已移除] /img]
引用自: 星叔 于 九月 11, 2014, 09:10:21 上午
感谢元老的回复
还有2个问题麻烦您
1.这个是需要安装哪个模块?我昨天查找了下,搜索到一个<br / https://www.odoo.com/apps/7.0/product_variant_multi/ br />不知道元老是否用的也是这个
2.产品属性有数十个,我用iPhone只是举例,是否可以设置N多属性
谢谢您的答复。
1. V8.0 内置功能.
2. 截图中 不是还有个 Wifi 2.4GHz 的属性么? 你没有看到下面还有一个 "Add an item" 吗? 别说10个, 20000个也不存在问题呀.
[/quote]
其实jeffery已经说了,涉及产品多属性的话,产品成本不准备,不能正常显示成本,成本价=采购成本/规格数