HH SaaS电商系统的出库功能模块设计

文章目录

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

出库单业务流程

基本流程

  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. 调拨申请单状态:待审核、审核未过、审核通过 ↩︎

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/335620.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java 拼图_拼图项目的诅咒:为什么Java 9一遍又一遍地延迟?

java 拼图JDK 9发行日期推迟到2017年7月 距JDK 9发行不到200天&#xff0c;它又被推迟了 。 新的发布日期已更新为2017年7月&#xff0c;比之前推迟的日期晚了四个月。 推迟日期 9月13日&#xff0c;Oracle Java平台小组的首席架构师Mark Reinhold发表了他的建议&#xff0c;…

mysql数据库增删改查关键字_mysql数据库的增删改查

数据库基本操作&#xff1a;增删改查#DML语言/*数据操作语言&#xff1a;插入&#xff1a;insert修改&#xff1a;update删除&#xff1a;delete*/1.增插入语句的方式一表已经存在啦&#xff0c;我们需要往里面插入数据/*语法&#xff1a;insert into 表名(列名,…) values(值1…

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

文章目录如何生成采购单系统生成采购单的流程基本流程扩展流程找不到符合条件的供应商&#xff0c;要求部分退款&#xff08;初次生成采购单时&#xff09;找不到符合条件的供应商&#xff0c;要求全部退款&#xff08;初次生成采购单时&#xff09;指定供应商的库存不足&#…

本地缓存防止缓存击穿_防止缓存爆炸的快速提示

本地缓存防止缓存击穿在很多情况下&#xff0c;您都可以从应用程序中的常用对象缓存中受益&#xff0c;特别是在面向Web和微服务的环境中。 您可以在Java中执行的最简单的缓存类型可能是引入一个私有HashMap&#xff0c;在计算对象之前先查询该哈希表&#xff0c;以确保您不会重…

php mysql导出csv文件_详解PHP导入导出CSV文件

我们先准备mysql数据表&#xff0c;假设项目中有一张记录学生信息的表student&#xff0c;并有id&#xff0c;name&#xff0c;sex&#xff0c;age分别记录学生的姓名、性别、年龄等信息。CREATE TABLE student (id int(11) NOT NULL auto_increment,name varchar(50) NOT NULL…

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

文章目录创建入库单的场景创建入库单的业务流程商品直接入库内部仓退货入库&#xff08;内部仓&#xff09;换货入库&#xff08;内部仓&#xff09;退货入库&#xff08;外部仓&#xff09;换货入库&#xff08;外部仓&#xff09;备货入库&#xff08;内部仓&#xff09;备货…

aws ecr_在ECR上推送Spring Boot Docker映像

aws ecr在先前的博客中&#xff0c;我们将Spring Boot应用程序与EC2集成在一起。 它是您可以在Amazon Web Services上进行的最原始的部署形式之一。 在本教程中&#xff0c;我们将使用我们的应用程序创建一个docker映像&#xff0c;该映像将存储到Amazon EC2容器注册表中 。 …

HH SaaS电商系统的商品营销角标功能模块设计

1、角标只属于商城&#xff0c;自营店铺共享商城的角标&#xff0c;第三方店铺可以申请角标 2、角标跟着素材模板走&#xff0c;关联素材模板id&#xff0c;一对多关系

python为什么这么小_同样是 Python,怎么区别这么大

发现问题上周&#xff0c;我的测试同事告诉我&#xff0c;你的用户名怎么还允许中文啊&#xff1f;当时我心里就想&#xff0c;你们测试肯定又搞错接口了&#xff0c;我用的是正则\w过滤了参数&#xff0c;怎么可能出错&#xff0c;除非Python正则系统出错了&#xff0c;那是不…

dynamodb容器使用_使用DynamoDBMapper扫描DynamoDB项目

dynamodb容器使用之前&#xff0c;我们介绍了如何使用DynamoDBMapper或底层Java api查询DynamoDB数据库。 除了发出查询之外&#xff0c;DynamoDB还提供扫描功能。 扫描的目的是获取您在DynamoDB表上可能拥有的所有项目。 因此&#xff0c;扫描不需要任何基于我们的分区键或…

HH SaaS电商系统的商品营销标签功能模块设计

1、营销标签只属于商城&#xff0c;自营店铺共享商城的营销标签&#xff0c;第三方店铺可以申请营销标签 2、营销标签跟着商品走&#xff0c;关联spu_ext_id&#xff0c;多对多关系 3、一个商品最多添加5个营销标签

python加减法计算题 代码_关于《剑指offer》中不用加减乘除做加法的Python代码的问题...

题目如下&#xff1a;写一个函数&#xff0c;求两个整数之和&#xff0c;要求在函数体内不得使用、-、*、/四则运算符号。题目不难&#xff0c;可以采用位操作来实现&#xff0c;利用异或运算来计算不带进位的加法结果&#xff0c;利用与运算计算进位的标志&#xff0c;然后将这…

接口方法javadoc注释_继承Javadoc方法注释

接口方法javadoc注释尽管用于javadoc工具的JDK工具和实用程序页面通过实现和继承方法来描述Javadoc方法注释重用的规则&#xff0c;但是当实际上不需要使用{inheritDoc}时&#xff0c;很容易不必要地显式描述注释继承&#xff0c;因为会使用相同的注释隐式继承。 Java 8 javado…

HH SaaS电商系统的商品销售管理标签功能模块设计

1、商城和店铺有各自的销售管理标签 2、商品管理标签跟着商品走&#xff0c;关联spu_ext_id或者sku_ext_id&#xff0c;多对多关系

redis java 监听_从零手写实现redis(四)添加监听器

前言java从零手写实现redis&#xff08;一&#xff09;如何实现固定大小的缓存&#xff1f;java从零手写实现redis&#xff08;三&#xff09;redis expire 过期原理java从零手写实现redis&#xff08;三&#xff09;内存数据如何重启不丢失&#xff1f;本节&#xff0c;让我们…

neo4j导入两个文件_Neo4j:找到两个纬度/经度之间的中点

neo4j导入两个文件在过去的两个周末中&#xff0c;我一直在处理一些运输数据&#xff0c;并且我想运行A *算法来查找两个车站之间的最快路线。 A *算法将EstimateEvaluator作为其参数之一&#xff0c;并且该评估器查看节点的经度/纬度&#xff0c;以确定一条路径是否值得遵循。…

HH SaaS电商系统的商品营销服务功能模块设计

商品营销服务 1、服务只属于商城&#xff0c;自营店铺共享商城的服务&#xff0c;第三方店铺可以申请服务 2、服务跟着素材模板走&#xff0c;关联素材模板id&#xff0c;多对多关系

drill apache_如何指南:Apache Drill入门

drill apacheApache Drill是一个引擎&#xff0c;可以连接到许多不同的数据源&#xff0c;并为它们提供SQL接口。 它不仅是遍历任何复杂事物SQL界面&#xff0c;而且是功能强大的界面&#xff0c; 其中包括对许多内置函数和窗口函数的支持。 尽管它可以连接到可以使用SQL进行查…

mac mysql 重设密码_Mac下忘记mysql密码重新设置密码的图文教程

MySQL 文件在路径/usr/local/mysql下1&#xff0c; 在系统偏好设置中关闭 mysql &#xff1a; Stop MySQL Server2 &#xff0c;打开终端进入路径  /usr/local/mysql/bin输入命令 sudo su&#xff0c; 然后输入开机密码。然后输入命令&#xff1a;./mysqld_safe –skip-grant-…

HH SaaS电商系统的商品销售分区功能模块设计

商品销售分区 1、销售分区跟着商品走&#xff0c;关联spu_ext_id,多对多关系 2、商城和店铺有各自的销售分区