Odoo仓库扫码的设计,前提是操作人在PC上先做好分拣单,然后根据打印出来的分拣单去仓库进行扫码打包,默认的情况下,分拣在被确认的时候会自动保留库位中已经存在的库存(已经分配批次\序列号),而在扫码界面,如果扫到的批次并非预先保留的批次,系统会在扫码界面新增一列,并在扫码结束的时候将其调拨出去。这里的弊端有两点,一是必须保证扫到的批次正确无误,错误的批次会增加,并有可能导致多出乃至负库存,缺少对库存的核验机制(主要是对唯一序列号而言)。二是,仓库人员在进入扫码界面之前需要先做拣货单,这一点在实际过程中可能效率低下,仓库在打包产品的时候数量不确定,批次也不确定,可操作性并不那么强。

我们要根据实际的操作流程来解决这个问题,首先,产品从产线上下来的时候,打包人员扫一下产品上的条码即可以将本批次\序列号的产品添加到扫码界面上,所有产品扫完之后,在扫码界面生成包装(箱),然后在完成分拣,调拨完成入库。仓库在出库的时候,也是一样,仅通过扫包装码即可将整箱的产品添加到出库单,最后点一下完成即可调拨出库。

依据这样的思路,我们实现的方案如下:

  1. 修改原分拣的扫码按钮只有在确认状态下可见的条件,改为草稿状态就能打开扫码界面。

  2. 在扫码界面可以完成增加删除产品,并检查库存,若库存不足,扫码无效。

  3. 针对扫到的包装号,如第2步般修改。

Odoo扫码界面一共可以输入四种类型的条码,依次分别是库位、产品、批次、包装,个人猜想其原本的设计目的是批量打印出分拣单后,扫描分拣单上的库位,快速定位哪张分拣单,然后在进行后续的操作。然而根据我们的操作流程,这样做遭到了业务人员的反对,可能并不对其他企业有效,仅供参考。

更新

之前的设计思路并没有考虑到与拉式物流规则结合的情形,在我们的案例中,系统需要管理全国100多个城市的仓库,各地分仓库需要向总部仓库提出领货的需求,再由仓库分配出库,鉴于职责分清的要求,还需要使用中间库位(在途库位,参见拉式物流分析文章),这样就给我们的出库造成了困难,因为系统自动生成的出库单会自动在当前库存中预留,并非我们希望的通过扫码操作扫进系统的那些货物。

解决的方案是,虽然系统自动预留了quant,我们在出库的时候多一步撤销预留,将之返回到草稿状态,然后再按照上述的方案进行出库,这样既保留了系统生成的拉式规则,又将预留的quant改为了我们扫码进去的quant。