履约系统:发货单、配送单模型设计详解

大家好,我是汤师爷~

概念模型设计是系统开发的关键步骤,它能帮助我们厘清业务逻辑并定义核心实体。我们将从订单履约的基本概念入手,深入探讨各实体间的关系。

履约域核心概念模型

履约系统:发货单、配送单模型设计详解

如图展示了履约域的核心概念模型。

1、发货单

发货单是订单履约过程中的重要执行单据,它将订单转化为具体的发货任务。门店和仓储部门通过发货单进行拣货、打包并安排物流服务商发货。发货单确保货物从仓库到配送环节的流转过程有序、清晰、可追踪。

发货单的核心字段包含以下关键信息:

  • 发货单ID:系统生成的唯一标识,用于追踪和管理每笔发货记录
  • 所属订单ID:关联的主订单编号,确保发货单与订单的对应关系
  • 仓库/门店ID:负责发货的具体库存地点,可以是中央仓库或线下门店
  • 单据类型:标识发货单的业务类型,如销售发货、换货发货等
  • 发货方式:具体的配送方式选择,如快递、同城配送或自提等
  • 物流服务商:负责运输的快递公司或配送服务商信息
  • 实际发货时间:商品从仓库或门店实际出库的时间点
  • 单据状态:发货单在系统中的处理进度,如待发货、已发货、已签收等
  • 物流费用:该发货单产生的配送费用

2、发货单明细

发货单明细是发货单下所包含的具体商品项记录。每条发货单明细对应发货单中某个商品的实际发货信息,包括商品ID、SKU_ID、数量、重量等属性。

3、收货信息

记录收货人姓名、手机号码、联系电话和详细地址等。

4、交付信息

包括预计送货和送达时间、预约送达时间范围、预约自提时间范围、自提位置和配送方式等交付细节。

5、配送单

配送单是将已完成打包的包裹分配给物流服务商进行配送的业务单据。配送员通过配送单了解需配送的包裹信息,从而高效完成送货任务。

配送单包含以下关键字段:

  • 配送单ID:系统生成的唯一标识,用于追踪每笔配送记录
  • 所属发货单ID:关联的发货单编号,标识配送单与发货单的对应关系
  • 仓库/门店ID:负责发出商品的具体库存地点
  • 服务商ID:负责运输的物流服务商编号
  • 配送方式:具体的配送类型,如同城配送、快递配送等
  • 配送员信息:包括配送员姓名、工号和联系方式
  • 收件人姓名:订单收货人的真实姓名
  • 联系方式:手机号码、电话等
  • 收件地址:详细的配送目的地信息
  • 开始配送时间:包裹开始配送的具体时间
  • 完成配送时间:包裹成功送达的实际时间
  • 单据状态:配送单当前处理阶段,如待配送、配送中、已签收等
  • 配送费用:该配送单产生的实际运输费用

6、配送单明细

配送单明细记录每个配送单中具体的商品信息,包含商品ID、SKU_ID、数量和重量等属性。

订单履约的拆单逻辑

在整个发货环节中,订单是起点,发货单是订单拆分后的结果,用于处理更细粒度的履约逻辑。仓库收到发货单后会生成出库单,并以出库单为单位进行打包发货,如图所示。整个交易履约流程中会出现两次拆单:

1、第一次拆单

用户从购物车提交多个商品后,系统会根据业务规则将订单拆分为多个子订单,以便更好地管理和流转订单数据。子订单拆分主要基于交易结算的需求,包括不同商家主体、不同交易模式(如海外购)、不同支付结算方式、不同收货地址等因素。

2、第二次拆单

当一个子订单需要分成多个发货批次时,订单履约系统会将订单再次拆分为发货单,并将各个发货任务下发给仓库。发货单拆分主要考虑物流执行层面的因素,包括不同仓库存储、不同物流条件、不同体积和重量,以及用户的特殊配送需求等实际操作因素。

履约系统:发货单、配送单模型设计详解

接下来,让我们详细探讨几种常见的订单拆分场景,包括单门店履约、多仓库履约、基于物流条件和商品特性的拆分方案。

每种场景都有其独特的业务需求和实现逻辑,通过深入理解这些场景,我们可以更好地设计和优化订单履约系统。

单门店履约场景

在连锁模式下,系统会根据用户的收货地址进行智能匹配,通过计算门店服务半径和距离,为用户筛选出最近且可履约的门店。如图所示,此场景下,订单不需要拆分,直接分配给匹配门店进行拣货、打包和发货。

履约系统:发货单、配送单模型设计详解

多仓库履约场景

有些商家拥有多个仓库和门店,不同商品分散存储在各个库存点。当用户下单后,如果订单中的商品分布在不同仓库,系统会将订单拆分成多个发货单,并将每个发货单分配给对应的仓库,由各仓库根据商品数量进行备货和出库。

履约系统:发货单、配送单模型设计详解

按物流条件拆分

由于部分商品具有特殊属性,需要特定的物流条件,因此我们需要将订单拆分成不同的发货单。

例如,生鲜水果、冷链食品和易碎物品对快递服务的保护性和时效性要求较高,必须进行单独包装和发货。当订单中包含这类商品时,系统会自动进行订单拆分。

履约系统:发货单、配送单模型设计详解

按商品体积和重量拆分

物流公司对包裹的体积和重量都设有限制。当订单中的商品超出这些限制时,系统需要将订单拆分为多个发货单。从成本角度来看,某些情况下将大量商品分成多个小包裹发货,反而比合并成一个大包裹更经济。

履约系统:发货单、配送单模型设计详解

本文已收录于,我的技术网站:tangshiye.cn 里面有,AI 编程、算法 Leetcode 详解、面试八股文、BAT面试真题、简历模版、架构设计,等经验分享。

文章整理自互联网,只做测试使用。发布者:Lomu,转转请注明出处:https://www.it1024doc.com/5032.html

(0)
LomuLomu
上一篇 2024 年 12 月 31 日 上午8:50
下一篇 2024 年 12 月 31 日 上午9:52

相关推荐

  • Apollo功能及原理详解

    前言 在我们公司,配置中心采用的是携程开源的Apollo。由于我之前只接触过Nacos,因此决定记录下我的学习过程。 Apollo工作原理 模块介绍 以下是Apollo的架构概览,我们将从底层向上逐层解析: ConfigDB:负责存储配置数据。 Config Service:提供配置读取和推送服务,服务于Apollo客户端,支持多实例,需要在Eureka中注…

    2024 年 12 月 24 日
    39700
  • 实战指南:理解 ThreadLocal 原理并用于Java 多线程上下文管理

    目录 一、ThreadLocal基本知识回顾分析 (一)ThreadLocal原理 (二)既然ThreadLocalMap的key是弱引用,GC之后key是否为null? (三)ThreadLocal中的内存泄漏问题及JDK处理方法 (四)部分核心源码回顾 ThreadLocal.set()方法源码详解 ThreadLocalMap.get()方法详解 Th…

    2025 年 1 月 10 日
    29600
  • Java【多线程】(1)进程与线程

    “`markdown 目录 1. 前言 2. 正文 2.1 什么是进程 2.2 PCB(进程控制块) 2.2.1 进程id 2.2.2 内存指针 2.2.3 文件描述符表 2.2.4 进程状态 2.2.4.1 就绪状态 2.2.4.2 阻塞状态 2.2.5 进程优先级 2.2.6 进程上下文 2.2.7 进程的记账信息 2.3 CPU操作进程的方法 2.4…

    2024 年 12 月 28 日
    38000
  • 万字图文:SaaS业务架构、价值流、业务能力、业务流程、业务对象、组织架构

    大家好,我是汤师爷~ 本文为读者提供一个SaaS业务架构的系统性框架,探讨业务架构分析的核心要素,帮助SaaS企业深入剖析目标客户的业务模式,全面理解他们的业务架构。 无论你是SaaS创业者、产品经理还是架构师,本文内容都将为你的系统设计和决策提供帮助。 1 目标与步骤 SaaS业务架构需要区分两种视角:SaaS企业自身的业务架构、SaaS服务客户的业务架构…

    2025 年 1 月 14 日
    30400
  • IoC究竟是什么?——IoC的基础分析

    IoC全称Inversion of Control,直译为控制反转。这是一种设计理念,并非技术。在明白控制反转之前,应该知道“反转”反的是什么。 被反转的正转 我们从生活中的做饭场景开始。 在家做菜与餐馆吃饭 我们在做饭的时候有很多个步骤,需要准备原料,厨具等等。最后通过一定的顺序加入我们的原料,再进行翻炒等烹饪操作就能够得到一份菜了。我们想吃一份菜不一定需…

    未分类 2025 年 1 月 13 日
    33100

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信