发货
发货触发控制器入口文件
app\wms\controller\admin\consign.php
核心函数:
- index 逐单发货(一单单发货)
- group_consign 分组发货(根据订单审单分配的所属分组批量发货)
- batch 批量发货(提交一批运单,后台执行批量校验)
核心逻辑:
已校验发货单打包出库,仓储发货单标记为已发货,并且状态回传给OMS
数据更新逻辑:
- 发货成功后,sdb_wms_delivery表字段status变更为3,process_status变更为7
- status字段 0 默认 1 取消 2 暂停 3 发货
上面我们主要说的是自有仓储的仓库发货处理流程,针对ONex OMS来说除了自有仓储外,绝大多数都是在使用第三方仓储(新建、取消、发货回传等业务对接)。
OMS在订单审单后,会生成发货通知单,对应sdb_oms_delivery主表及相关扩展表,然后组织接口数据,请求第三方仓储创建发货通知单。
第三方仓储发货回传也会打相应的发货回传接口,以发货单号delivery_bn为映射的唯一单据号。
发货通知单信息推送仓储核心文件
app\ome\lib\delivery\notice.php
核心函数:
- create 发货通知单创建(审单生成发货通知单时出发)
- cancel 发货通知单取消(撤销发货单时候触发)
- pause 发货通知单暂停(自有仓储才会使用、订单暂停第三方仓储直接走取消)
- renew 发货通知单恢复(自有仓储才会使用)
- search 发货通知单查询 (京东仓储才会使用,比较特殊,状态什么需要根据关联单据号被动人工获取)
发货通知单响应处理类
app\ome\lib\event\receive\delivery.php
核心函数:
- consign 发货回传接收处理(适用于所有仓储类型)
- setPrint 打印回传接收处理(仅自有仓储,第三方仅提供取消和发货两种业务)
- setCheck 校验回传接收处理(仅自有仓储)
- rebackDly 取消回传接收处理(仅自有仓储、科捷)
- updateDetail 更新详情(重量、物流信息)回传接收处理(仅自有仓储)
发货回传指的是仓储根据推送给他的发货信息发货后,将发货结果告诉OMS(无论是自有仓储还是第三方仓储)。
核心处理内容:
- OMS发货通知单的变更
- 库存、冻结的变化
- 订单状态变更
- 出入库明细生成
- 销售单生成
- 短信、订单状态回传前端销售平台等等