Odoo中文社区可以通过以下三个域名访问:shine-it.net , odoocn.org,odoo.net.cn

原论坛用户的基本信息和发帖这里都予以保留,请注意:原论坛用户无需重新注册新用户,但是您的密码需要重置

开发人员可以登录gitter讨论组: http://gitter.im/odoo-china/Talk, 需要github账号

如果您登录系统碰到问题,请在微信公众号留言:

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的列表里面增删都会被重置。 技术细节参考这里([url=http://www.mindissoftware.com/2014/11/12/Odoo-Product-Model/]http://www.mindissoftware.com/2014/11/12/Odoo-Product-Model/[/url])。 删除不掉的产品系列其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 可以看到所有的产品系列,不要在这里增删任何产品系列。



  • 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的列表里面增删都会被重置。 技术细节参考这里([url=http://www.mindissoftware.com/2014/11/12/Odoo-Product-Model/]http://www.mindissoftware.com/2014/11/12/Odoo-Product-Model/[/url])。 删除不掉的产品系列其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 可以看到所有的产品系列,不要在这里增删任何产品系列。



  • 补充 一点内容:
    见这个帖子:  [url=http://shine-it.net/index.php/topic,16599.msg28953.html#msg28953]http://shine-it.net/index.php/topic,16599.msg28953.html#msg28953[/url]


    补充另外一点内容:http://shine-it.net/index.php/topic,17076.msg30233.html#msg30233



  • 如果这个product.product数据已经有了采购销售库存生产记录,他还怎么删除?



  • 如果这个记录不能删除,就设置其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米的肯定不一样,就好像手机的白色壳和黑色壳的成本不一样。

    所以目前理解,这个上面的系列,是不是只有不涉及到进价的?或者是我没有考虑到?



  • 当排列组合生成的变体太多时,无论是生成的速度和查询的速度都很慢,只间涉及到几个函数字段,计算量太大了,不知道大家有没有好的解决方法?


  • 管理员

    尝试使用 stroe = {} 还有就是 multi 参数



  • Liu Ying好啊,看过你的Mind is Software,你对Odoo做了很多研究啊。
    有个建议,能否搞成中文,让国内的小伙伴们多些有深度的学习资料。



  • v8.0 的 产品规格这一部分的确还存在这样的问题.....

    产品属性 前面规划不当 是概率很大的事件...



  • 有一个姑娘,是爸爸妈妈的独生宝贝。

    后来她有了个弟弟。

    于是 active属性变成了false

    那MRP就永远找不到她了对不对?

    f*ck



  • 针对这个功能,对于属性少的产品用与不用,差别都不大,对于那些属性组多,属性组下的属性也多的产品,我们都期望利用此功能,减轻

    基础数据维护的工作量,这看起来吸引力很大,但真正实施起来还是有些难度的,比如:
    (1)数据生成的效率?
    (2)自动生成的冗余数据如休处理?
    (3)属性信息变更后的处理?
    (4)物料编码如何管理?
    (5)单据录入时,不能以属性信息查找产品的问题?
    (6)查询统计时无法按属性(组)分组?

    我认为,除非必要,还是慎用此功能。



  • [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]http://shine-it.net/index.php?action=dlattach;topic=16599.0;attach=3754;image[/img]

    引用自: 星叔 于 九月 11, 2014, 09:10:21 上午
    感谢元老的回复

    还有2个问题麻烦您

    1.这个是需要安装哪个模块?我昨天查找了下,搜索到一个
    https://www.odoo.com/apps/7.0/product_variant_multi/
    不知道元老是否用的也是这个

    2.产品属性有数十个,我用iPhone只是举例,是否可以设置N多属性

    谢谢您的答复。


    1.  V8.0 内置功能.

    2.  截图中 不是还有个 Wifi 2.4GHz 的属性么? 你没有看到下面还有一个 "Add an item" 吗? 别说10个, 20000个也不存在问题呀.



  • 【上校】昆山-jeffery
    呵,成本方法 试试



  • 实际操作前后,反复读了多遍这个帖子,继续关注官方后续的改进。

    这个功能对购物车功能来说很有必要,把product temple拆成一个一个的product上架不现实,

    本来一个产品的事情,属性和属性值多的情况下,拆成几十上百个来录入,录入管理的工作量先不说,前台用户选择购买也是很不可行的。



  • 补充问一下:重新组合之后,属性值上的库存、价格,全都会丢失吗?    跟调整前的物料清单会有什么冲突?原先建的各个物料清单都需要重新编辑或者重建?



  • [quote author=yanggg1133 link=topic=16720.msg30555#msg30555 date=1434629664]
    Phone 5C 红黄蓝绿紫
    iPhone 5C  8G/16G/32G

    这些是在网站中展示的,客户下订单购买蓝色的/16G的iPhone 5C

    也就是说颜色和容量只是一个属性,每台机器只能选择其中一项,我们怎样在OpenERP中配置呢?

    如方便的话请上图,非常感激。
    图:





    [img]http://shine-it.net/index.php?action=dlattach;topic=16599.0;attach=3754;image[/img]

    引用自: 星叔 于 九月 11, 2014, 09:10:21 上午
    感谢元老的回复

    还有2个问题麻烦您

    1.这个是需要安装哪个模块?我昨天查找了下,搜索到一个
    https://www.odoo.com/apps/7.0/product_variant_multi/
    不知道元老是否用的也是这个

    2.产品属性有数十个,我用iPhone只是举例,是否可以设置N多属性

    谢谢您的答复。


    1.  V8.0 内置功能.

    2.  截图中 不是还有个 Wifi 2.4GHz 的属性么? 你没有看到下面还有一个 "Add an item" 吗? 别说10个, 20000个也不存在问题呀.
    [/quote]



    其实jeffery已经说了,涉及产品多属性的话,产品成本不准备,不能正常显示成本,成本价=采购成本/规格数



  • variant 的使用要权衡使用场景, 把握一个原则, 那就是Variants 公用了大多数的 属性,Variant 仅仅是个 细微的变化。

    不要滥用


登录后回复
 

与 Odoo 中文社区 的连接断开,我们正在尝试重连,请耐心等待