文章目录

  • 出库单业务流程
    • 基本流程
    • 扩展流程
      • 找不到符合条件的仓库,要求部分退款(未生成出库单时)
      • 找不到符合条件的仓库,全部退款(未生成出库单时)
      • 找不到符合条件的仓库,等待库存补足(未生成出库单时)
      • 指定仓库的库存不足,需要更换仓库(未生成出库单时)
      • 找不到符合条件的仓库,需更换供应商(未生成出库单时)
  • 出库单的状态
  • 出库单类型
  • 出库单的实体
  • 出库单的关联表
  • 手动创建出库单
  • 确认出库(即发货)
  • 取消出库
    • 场景
    • 流程
      • 买家退款成功,取消出库单
      • 商品的实际库存不足且同个供应商其它仓库也没有货,其他供应商也没有货,取消出库单
      • 商品的实际库存不足,但是同个供应商的其它仓库有货,取消出库单
      • 商品的实际库存不足,但是其他供应商有货,取消出库单(涉及到取消采购单的问题)
  • 重新生成出库单

出库单业务流程

基本流程

  1. 订单中心的商品全部锁定供应商后,再将“未退款”且“未确定仓库”的商品和订单数据发送给调度中心

  2. 调度中心根据“发货策略”确定每个商品的发货仓库,接着将商品、订单和仓库数据发给仓储中心

  3. 仓储中心接收到相关数据后按仓库生成出库单,同步将商品的仓库信息反馈给调度中心

  4. 调度中心收到反馈后,将仓库信息反馈给订单中心

  5. 订单中心收到反馈后,将仓库信息保存在对应的销售子单上

  6. 仓库人员在出库单点击“发货”按钮,填写物流信息,提交后完成商品的出库

扩展流程

找不到符合条件的仓库,要求部分退款(未生成出库单时)

  1. 订单中心将“未退款”且“未确定仓库”的商品和订单数据发送给调度中心

  2. 调度中心根据“发货策略”确定发货仓库,有商品找不到符合条件的仓库

  3. 调度中心反馈给客服中心,并且把找不到发货仓库的商品信息传给客服中心,客服中心依此生成“出库”类型的工单给仓储部门指定的人员

  4. 仓库人员接收到工单后检查其他供应商也没有库存,于是仓库专员创建“售后”类型的工单给客服部门

  5. 客服人员接收到工单后和买家协商部分退款,买家申请部分退款(即子单退款),客服中心生成退款单,退款成功后客服中心将商品的退款信息反馈给订单中心

  6. 订单中心收到反馈信息后修改相关子单的状态,同步将退款信息反馈给采购中心

  7. 采购中心收到反馈信息后修改相关采购子单的采购状态(转变成“退款成功”)

  8. 接着仓库人员需要回到“订单管理”模块,找到需要重新生成出库单的销售订单,点击“重新生成出库单”按钮,让系统重新生成出库单

找不到符合条件的仓库,全部退款(未生成出库单时)

  1. 订单中心将“未退款”且“未确定仓库”的商品和订单数据发送给调度中心

  2. 调度中心根据“发货策略”确定发货仓库,有商品找不到符合条件的仓库

  3. 调度中心反馈给客服中心,并且把找不到发货仓库的商品信息传给客服中心,客服中心依此生成“出库”类型的工单给仓储部门指定的人员

  4. 仓库人员接收到工单后检查其他供应商也没有库存,于是仓库专员创建“售后”类型的工单给客服部门

  5. 客服人员收到工单与买家协商部分退款,买家要求全部退款,买家执行退款操作,客服中心生成退款单,退款成功后客服中心反馈给订单中心,订单中心修改相关子单状态(子单状态变成“退款成功”,主单状态变成“订单关闭”)

  6. 接着订单中心将退款信息反馈给采购中心,采购中心修改相关采购子单的退款状态(采购子单状态变成“退款成功”,采购主单状态变成“交易关闭”)后流程结束

找不到符合条件的仓库,等待库存补足(未生成出库单时)

  1. 订单中心将“未退款”且“未确定仓库”的商品和订单数据发送给调度中心

  2. 调度中心根据“发货策略”确定发货仓库,有商品找不到符合条件的仓库

  3. 调度中心反馈给客服中心,并且把找不到发货仓库的商品信息传给客服中心,客服中心依此生成“出库”类型的工单给仓储部门指定的人员

  4. 仓库人员接收到工单后,经过调查得知商品在等待入库,库存补足后仓库人员需要回到“订单管理”模块,找到需要重新生成出库单的销售订单,点击“重新生成出库单”按钮,让系统重新生成出库单

指定仓库的库存不足,需要更换仓库(未生成出库单时)

  1. 订单中心将“未退款”且“未确定仓库”的商品和订单数据发送给调度中心

  2. 调度中心根据“发货策略”确定发货仓库,有商品找不到符合条件的仓库

  3. 调度中心反馈给客服中心,并且把找不到发货仓库的商品信息传给客服中心,客服中心依此生成“出库”类型的工单给仓储部门指定的人员

  4. 仓库人员接收到工单后检查其他仓库有货,于是修改“发货策略”

  5. 接着仓库人员需要回到“订单管理”模块,找到需要重新生成出库单的销售订单,点击“重新生成出库单”按钮,让系统重新生成出库单

找不到符合条件的仓库,需更换供应商(未生成出库单时)

  1. 订单中心将“未退款”且“未确定仓库”的商品和订单数据发送给调度中心

  2. 调度中心根据“发货策略”确定发货仓库,有商品找不到符合条件的仓库

  3. 调度中心反馈给客服中心,并且把找不到发货仓库的商品信息传给客服中心,客服中心依此生成“出库”类型的工单给仓储部门指定的人员

  4. 仓库人员接收到工单后检查其他供应商有库存,于是创建“采购”类型的工单给采购部门指定的人员,工单内容要描述清楚哪些商品需要调整采购策略,所以才需要取消相关的原采购单

  5. 采购人员接收到工单后取消相关的采购单,采购单取消成功后采购中心反馈给订单中心,订单中心将相关商品修改为“未确定供应商”,实则就是把“供应商”字段置为空

  6. 接着采购专员修改相关商品的采购策略,修改好之后采购专员再回到“订单管理”模块,找到需要重新生成采购单的销售订单,点击“重新生成采购单”按钮,让系统重新生成采购单

  7. 接着采购专员创建“出库”类型的工单给仓储部门,仓库专员收到工单后回到“订单管理”模块,找到需要重新生成出库单的销售订单,点击“重新生成出库单”按钮,让系统重新生成出库单

PS:出库时需要判断出库单中是否存在0<实际出库数<计划出库数的商品,存在则说明部分出库(已取消部分出库的设计)

出库单的状态

出库单类型

调整出库单、调拨出库单、国内销售出库单、跨境销售出库单、换货出库单、报损出库单(暂无)、备货出库单(暂无)

  • 调整出库单
    系统库存数多于实际仓储库存数时,需要创建调整出库单手动扣减商品的系统库存数

  • 销售出库单
    系统根据“发货策略”确定出货仓库后,会按仓库生成对应的出库单,此时系统需要判断出库单中的出货仓库是否为跨境仓,如果是则将此出库单标记为“跨境销售出库单”,如果不是则标记为“国内销售出库单”

  • 换货出库单
    在换货流程中,商家确认收到退货后,系统会自动生成“换货出库单”

  • 调拨出库单
    仓库之间相互调货时候,调出的仓库会生成调拨出库单,调入的仓库会生成调拨入库单。需要调拨的仓库人员创建调拨申请单1,审核通过后系统会自动生成调拨出库单和调拨入库单,接着仓库人员在调拨出库单填写发货物流信息完成发货,在调拨入库单确认入库完成收货

出库单的实体

出库单的关联表

  • 采购单和出库单目前不建立关联关系

  • 换货单和出库单是一对一关系,若果买家收到换货后还要换货,必须结束当前换货流程,再申请换货

  • 备货单和出库单是一对多关系,备货单的商品来自多个仓库,但是目前没有做备货出库单

  • 物流单和出库单是多对多关系,一个出库单可以分多个包裹发货,而多个出库单也可能只有一个包裹(同个买家下了多个订单,多个出库单合并发货),所以出库单和物流单也存在多对多的关系,采用中间表建立关联关系。但是不推荐这样的业务关系,建议设计成多对一的关系,物流单保存出库单ID

  • 入库单和出库单是一对一关系,有些外部仓的退货入库单需要关联退货商品的原出库单

  • 销售单和出库单是一对多关系,销售单的商品可能来自多个仓库,所以会生成多个出库单,出库单保存销售单ID

手动创建出库单

  1. 仓库人员发货时漏发、少发了,需要创建出库单(类型:国内销售出库单),此时创建的出库单必须关联订单,确认出库后系统要扣减“出库冻结数”

  2. 创建无关销售的出库单时(例如:报损出库单),确认出库后系统不仅要扣减真实的库存数还要扣减销售库存数

  3. 系统库存数多于实际仓储库存数时,需要创建出库单(类型:调整出库单)手动扣减商品的系统库存数

确认出库(即发货)

  • 在状态为“待出库”的出库单点击“发货”按钮,填写物流信息提交,可以填写多个物流信息(即多个包裹发货),这样才完成商品的出库发货,即是“确认出库”。

  • 本系统实际是需要通过出库单进行发货,确认出库实则就是“发货”,在本系统中为了避免单据过多的冗余,就不再另行设计“发货单”,此时系统需要核销出库冻结数

  • 一个出库单只能一次性完成发货,所以出库单不存在部分发货的情况

取消出库

场景

  1. 消费者申请退款成功,需要取消出库单

  2. 供应商发现商品实际库存不足需要取消出库单

  • 涉及到更换仓库的问题
  • 涉及到更换供应商和取消采购单的问题
  • 涉及到部分退款或者整单退款问题
  1. 采购员发现跨境供应商库存不足需要取消出库单
  • 涉及到更换供应商和取消采购单的问题
  • 涉及到部分退款或者整单退款问题

流程

买家退款成功,取消出库单

  1. 买家申请退款,客服中心生成退款单,退款成功后客服中心反馈给订单中心,订单中心修改相关子单状态

  2. 修改相关子单状态后,订单中心再通知仓储中心查找退款商品相关的出库单,如果出库单的状态为“待出库”则取消出库单,否则不做任何操作

  3. 订单中心收到仓储中心成功取消出库的反馈,将订单中相关商品修改为“未确定仓库”,实则就是把“发货仓库”字段置为空

  4. 接着订单中心将退款信息反馈给采购中心,采购中心修改相关采购子单的退款状态后把结果反馈回订单中心

  5. 订单中心再将“未退款”且“未确定仓库”的商品和订单信息发送给调度中心

  6. 调度中心再根据“发货策略”重新确定发货仓库,调度中心再将商品信息、订单信息、仓库信息发给仓储中心

  7. 仓储中心接收到相关数据后按仓库生成出库单,同步将商品的仓库信息反馈给调度中心

  8. 调度中心收到反馈后,将仓库信息反馈给订单中心

  9. 订单中心收到反馈后,将仓库信息保存在对应的销售子单上

P.S. 买家退款成功后,可以由仓库人员手动生成出库单,不要让系统自动生成出库单,因为如果消费者在短时间内申请多笔退款,那么系统会自动生成多个出库单并且又都取消掉,造成垃圾数据的同时也会给系统增加不必要的负荷,不过目前的产品方案依旧让系统自动生成出库单,后期看情况再做调整~

商品的实际库存不足且同个供应商其它仓库也没有货,其他供应商也没有货,取消出库单

  1. 供应商主动取消出库单,仓储中心取消出库单后将取消出库的商品信息反馈给订单中心

  2. 订单中心收到反馈信息后,将相关商品修改为“未确定仓库”,接着订单中心要将取消出库的商品信息反馈给客服中心

  3. 客服中心收到反馈信息后,生成“出库”类型的工单给仓储部门,仓库专员接收到工单后检查其它仓库和供应商,发现都没有货

  4. 仓库专员创建“售后”类型的工单给客服部门,客服人员接收到工单后和买家协商部分退款,买家申请 部分退款,客服中心生成退款单,退款成功后客服中心将退款信息反馈给订单中心,订单中心修改相关子单状态

  5. 接着订单中心将退款信息反馈给采购中心,采购中心修改相关采购子单的采购状态

  6. 接着仓库人员需要回到“订单管理”模块,找到需要重新生成出库单的销售订单,点击“重新生成出库单”按钮,让系统重新生成出库单

商品的实际库存不足,但是同个供应商的其它仓库有货,取消出库单

  1. 供应商主动取消出库单,仓储中心取消出库单后将取消出库的商品信息反馈给订单中心

  2. 订单中心收到反馈信息后,将相关商品修改为“未确定仓库”,接着订单中心要将取消出库的商品信息反馈给客服中心

  3. 客服中心收到反馈信息后,生成“出库”类型的工单给仓储部门指定的人员

  4. 仓库人员接收到工单后检查其它仓库和供应商,发现同个供应商的其它仓库有货,于是仓库人员修改相关商品的“发货策略”

  5. 接着仓库人员需要回到“订单管理”模块,找到需要重新生成出库单的销售订单,点击“重新生成出库单”按钮,让系统重新生成出库单

商品的实际库存不足,但是其他供应商有货,取消出库单(涉及到取消采购单的问题)

  1. 供应商主动取消出库单,仓储中心取消出库单后将取消出库的商品信息反馈给订单中心

  2. 订单中心收到反馈信息后,将相关商品修改为“未确定仓库”(实则就是把“发货仓库”字段置为空),接着订单中心要反馈给客服中心,把“未确定仓库”的商品信息传给客服中心

  3. 客服中心收到反馈信息后,生成“出库”类型的工单给仓储部门指定的人员

  4. 仓库人员接收到工单后检查其它仓库和供应商,发现其它供应商有货,接着仓库专员创建“采购”类型的工单给采购部门,要求他们取消相关的采购单,工单要说明取消采购单的相关情况

  5. 采购专员接收到工单后取消相关采购单,采购单取消成功后采购中心反馈给订单中心,订单中心将相关商品修改为“未确定供应商”(实则就是把“供应商”字段置为空)

  6. 接着采购专员修改相关商品的采购策略,修改好之后采购专员再回到“订单管理”模块,找到需要重新生成采购单的销售订单,点击“重新生成采购单”按钮,让系统重新生成采购单

  7. 接着采购专员创建“出库”类型的工单给仓储部门指定的人员,通知他们采购单已经重新生成了,仓储部可以将有关商品重新生成出库单了,仓库人员收到工单后回到“订单管理”模块,找到需要重新生成出库单的销售订单,点击“重新生成出库单”按钮,让系统重新生成出库单

重新生成出库单

状态非“等待买家付款”、“订单已取消”,“订单已关闭”的销售订单存在没有发货仓库的商品,销售订单则会出现“重新生成出库单”的按钮,仓库专员点击按钮,系统先判断相关商品是否锁定了供应商,如果没有则提示“非常抱歉,有商品没有生成采购单,所以无法生成出库单!”,若相关商品已经锁定了供应商,则将没有发货仓库且未退款的商品信息和订单信息提交给“调度中心”根据“发货策略”锁定发货仓库(如果因为库存等原因找不到符合条件的仓库,系统要提示,且生成有关的工单,提示信息:非常抱歉,订单中的商品(商品编号:xxxxxxxx)找不到符合条件的仓库,此订单无法生成有关的出库单),然后“调度中心”再将订单信息、商品信息和仓库信息提交给“仓储中心”生成出库单,仓储中心接收到相关数据后按仓库生成出库单,同步将商品的仓库信息反馈给调度中心,接着调度中心再将仓库信息反馈给订单中心,订单中心收到反馈后,将仓库信息保存在对应的销售子单上

注意:如果存在多个商品找不到符合条件的仓库,提示信息中的商品编号之间请使用英文逗号隔开


  1. 调拨申请单状态:待审核、审核未过、审核通过 ↩︎

HH SaaS电商系统的出库功能模块设计相关推荐

  1. HH SaaS电商系统的销售订单毛利润模块设计

    HH SaaS电商系统的销售订单利润分析,仅是简单分析供运营人员参考而已,所以订单生成后就自动根据商品成本价和实际交易价生成利润表,而不需要等到订单归档后才生成. 销售子单的毛利润=最终交易总额-成本 ...

  2. HH SaaS电商系统的商品系统设计

    文章目录 商品信息结构 商品信息总结构 商品信息结构图 发布商品 商品类型 虚拟商品 服务商品 为什么服务商品要分类 前端根据服务商品类型来设计不同的界面和交互 订单状态和服务类型有关 商品档案上下架 ...

  3. HH SaaS电商系统的商城模块设计

    文章目录 好获SaaS电商系统层级关系 商城实体 商城运营模式 商城可选子系统 创建商城 商城管理后台 有供应系统和无供应系统的B2C和混合模式的商城系统对比 有仓储系统和无仓储系统的B2C和混合模式 ...

  4. HH SaaS电商系统移动端商城,买家选择商品规格的交互设计

    文章目录 未完整选择商品规格时 商品图如何显示 库存如何显示 价格如何显示 选择规格提示文案如何显示 原型图 已选完整选择商品规格时 商品图如何显示 库存如何显示 价格如何显示 原型图 SKU下架后如 ...

  5. HH SaaS电商系统的跨境商品展示、下单、清关、出库全流程设计

    跨境商品的展示 后补 跨境商品的下单 在订单确认页面就要按SKU拆单,所以跨境销售订单的主单和子单是一对一的关系 多种进口渠道的商品在同个销售主单中,在进口清关.收货.货款结算时会出现问题,假设销售订 ...

  6. HH SaaS电商系统的入库功能模块设计

    文章目录 创建入库单的场景 创建入库单的业务流程 商品直接入库内部仓 退货入库(内部仓) 换货入库(内部仓) 退货入库(外部仓) 换货入库(外部仓) 备货入库(内部仓) 备货入库(外部仓) 入库后更新 ...

  7. HH SaaS电商系统的采购功能模块设计

    文章目录 如何生成采购单 系统生成采购单的流程 基本流程 扩展流程 找不到符合条件的供应商,要求部分退款(初次生成采购单时) 找不到符合条件的供应商,要求全部退款(初次生成采购单时) 指定供应商的库存 ...

  8. HH SaaS电商系统的仓储系统设计

    如果商城或者店铺选择开通了供应系统,那么就必然有仓储系统,如果选择不开通供应系统,可以独立开通仓储系统 未开通仓储系统 商城和店铺如果不需要仓储系统,那么商城和店铺就不会有仓储模块,所以无法手动创建库 ...

  9. HH SaaS电商系统的各种编号(编码/代码/代号)设计

    文章目录 主订单编号规则一(租户内唯一) 主订单编号规则二(租户内唯一) 子订单编号规则(租户内唯一) 租户编号规则(系统内唯一) 供应商编号规则(租户内唯一) 平台编号生成规则(租户内唯一) 店铺编 ...

最新文章

  1. 快速排序的递归和非递归实现 c语言版本
  2. following symbols must have non local/private scope错误问题解决方法
  3. 【宜搭客户说第二期】宜搭助力跨境金融行业实现数字化管理
  4. [react-router] React-Router 4怎样在路由变化时重新渲染同一个组件?
  5. 某道词典在线翻译JS解密,完全扣js代码解密 (小白基础篇)
  6. java中的fd是什么意思_java中关键字和保留字分别是什么意思
  7. 三万字带你了解那些年面过的Java八股文
  8. Hadoop HDFS原理
  9. Teorex Inpaint v9.0.1 图片去水印软件中文便携单文件免费版
  10. excel文件工作表保护没有密码进行撤销
  11. 机器人编程软件semia_少儿机器人编程与软件编程区别
  12. javaweb单点登录的三种实现方式
  13. POJ 3537 Crosses and Crosses 博弈论 SG函数 记忆化搜索
  14. Android Banner图片轮播第三方框架
  15. 关于2440嵌入式MPlayer播放器的移植方法
  16. python安装模块(官网文档)
  17. python简单爬虫 多线程爬取京东淘宝信息教程
  18. 麒麟系统ip连接数据库
  19. Deqin- 升级版测手速游戏
  20. Unknown custom element: <uni-data-checkbox> - did you register the component correctly? For recursi

热门文章

  1. javaone_JavaOne 2015:为JDK 9做准备– blog @ CodeFX
  2. adf开发_了解ADF生命周期中的ADF绑定
  3. 使用比较器的nulls对具有null值的列表进行排序
  4. consul宕机配置丢失_简单的配置死机
  5. activemq网络桥接_ActiveMQ –经纪人网络解释–第3部分
  6. Java 11就在这里,您准备好进行切换了吗?
  7. 在Docker容器中的Tomcat上运行ADF Essentials
  8. eventbus多个订阅_番石榴的EventBus –简单的发布者/订阅者
  9. Java 9和应用程序性能监视的激动人心之处
  10. 使用Fabric8在CDI管理的bean中注入Kubernetes Services