【Odoo】产品共享库存逻辑优化

火影  金牌会员 | 2022-10-28 10:19:23 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 545|帖子 545|积分 1635

上海序说科技,专注于基于Odoo项目实施,实现企业数智化,助力企业成长。
老韩头的开发日常,博客园分享(2022年前博文)
背景

客户在对接第三方的电商平台的时候,存在Odoo系统中配置的属性与第三方电商平台配置的产品属性不一致的情况。比如,我们在Odoo中某产品有4个属性,而电商平台只有其中的三个属性。
因此在该平台销售出去产品的时候,我们是没有办法直接匹配到目标产品的(除非单独建一个三个属性的产品)。
需求

希望在电商平台销售出去这类产品的时候,可以按照一定的规则匹配到其中的任意一台。这里的规则可以是库存最少的、距离客户位置距离最新的等等。
实现

为产品添加一个“共享库存产品”的字段,并为这类产品配置需要共享的产品对象。这里的字段是many2many类型。原因有二,①可避免在核心对象(product.product)新增字段;②可能存在多个产品相互共享的情况。
此处需要强调的是,在获取目标产品的时候,需判断当前库位是否可满足本次销售的数量要求。
  1. if o_product.shared_product_ids:
  2.     product_ids = o_product.shared_product_ids.ids
  3.     product_ids.append(o_product.id)
  4.     prodcut_stock_quants = STOCK_QUANT.search([('product_id','in',product_ids),('location_id','=',location_src_id.id)]).filtered(lambda quant:quant.quantity - quant.reserved_quantity>=demand_count)
  5.     if prodcut_stock_quants:
  6.         prodcut_stock_quants = sorted(prodcut_stock_quants, key=lambda quant: quant.quantity - quant.reserved_quantity)
  7.         o_product = prodcut_stock_quants[0].product_id
  8.         return o_product
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

火影

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表