大家好,我是汤师爷~
概念模型设计是系统开发的关键步骤,它能帮助我们厘清业务逻辑并定义核心实体。我们将从订单履约的基本概念入手,深入探讨各实体间的关系。
履约域核心概念模型
如图展示了履约域的核心概念模型。
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面试真题、简历模版、架构设计,等经验分享。