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

大家好,我是汤师爷~

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

履约域核心概念模型

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

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

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

相关推荐

  • AI会员充值后怎么确认是自己账号

    AI会员充值后怎么确认是自己账号,围绕国内支付、代充开通、续费到账和账号验收整理。

    未分类 2026 年 5 月 30 日
    24900
  • GPT充值填错邮箱怎么处理

    GPT充值填错邮箱怎么处理,提醒用户尽快保留订单并联系核查。

    未分类 2026 年 5 月 22 日
    32800
  • 【Java】异常处理见解,了解,进阶到熟练掌握

    各位读者,早安、午安、晚安! 如果您发现这篇文章对您有所启发,不妨点赞、评论、分享,您的支持是我不断进步的动力。也欢迎您将这篇文章推荐给更多人。 今天我们将深入探讨Java面向对象编程中的抽象类和接口,让我们一起来看看它们是如何协同工作的。 目录 1.(throws和throw)我们选择忽略这个异常,将其向外抛出 1.1:使用throws时的注意事项 1.2…

    2024 年 12 月 28 日
    66600
  • 基于ABP框架与Entity Framework(非Core版)和MySQL的大数据分页查询优化方案

    在利用ABP框架整合Entity Framework(非Core版)和MySQL处理海量数据分页查询时,需要针对MySQL的特性与EF的分页功能进行深度优化。以下为详细的实现策略与技术要点: 一、摒弃传统分页方式传统的Skip().Take()方法在EF中会被转换为LIMIT OFFSET语法,当处理百万级数据时性能表现极差。优化方案包括:1. 主键/唯一键…

    未分类 2025 年 5 月 11 日
    73800
  • Claude Pro微信支付宝充值教程

    国内用户如何充值Claude Pro?本文整理Claude充值、Claude代充和国内充值Claude流程。

    未分类 2026 年 6 月 2 日
    31500

发表回复

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

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

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

关注微信