企业 条码包装

Odoo 企业版条码包装为什么不是“扫到包裹就行”:GS1 包装搜索、可用包缓存与外层包裹关系

条码作业里的 package 不只是一个编码。stock.package 会先走 GS1 预处理搜索,再按 reusable/空库位筛 usable packages;stock.move.line 还要维护 outermost_result_package_id 来表达整包再入包。

企业 库存
进阶 开发者 1 分钟阅读
0 评论 0 点赞 0 收藏 5 阅读

仓库条码里最容易被低估的对象之一,就是 package。很多项目把它当成“带条码的箱子”,而企业版明显不是这么设计的。

这篇文章主要参考:

  • enterprise/stock_barcode/models/stock_package.py
  • enterprise/stock_barcode/models/stock_move_line.py
  • enterprise/stock_barcode/models/stock_picking.py

一、包装搜索先过 GS1 预处理,不是简单 name 等值查询

stock.package._search() 会先走公司条码规则的 GS1 预处理。这说明企业版默认把 package 看成条码规则系统的一部分,而不是普通文本字段。对于 GS1 场景,这一步决定了扫描结果能不能被正确解释成 package 标识。

二、条码前端不会把所有包裹全量塞给用户

_get_usable_packages() 只取两类包:package_use = reusable 的包,和当前没有 location_id 的空包。同时还受 stock_barcode.usable_packages_limit 参数限制,并可结合 pack_locs 把当前作业相关位置上的包补进来。企业版非常在意前端缓存规模和现场可用性,不会为了“查得全”把终端拖慢。

三、结果包与外层包不是一回事

stock.move.line 新增的 outermost_result_package_id 不是当前行直接放进的 result_package_id,而是更外层包裹关系。配套的 inverse 逻辑说明两种场景:行还没进包时可直接按外层包打包;行已经在一个包里时,则支持“包再放进更大的包”。

四、结论

企业版条码里的 package 不是静态主数据,而是“可识别、可复用、可嵌套、可缓存”的物流容器对象。理解这一点,包装流程设计才不会停留在“打印一个箱码”那么浅的层次。

DISCUSSION

评论区

想参与讨论?先 登录 再发表评论。
还没有评论,你可以成为第一个留言的人。