物流与配送
物流与配送
本文档面向购买并使用 VortMall 电商平台的客户(平台运营方),系统梳理运费模板、运费计算、物流发货与轨迹、同城配送、到店自提及云打印发货单等业务流程。每个流程均配有 Mermaid 图示与分步说明;配送方式枚举 deliveryType:1 物流配送、2 自提、3 同城配送、4 无需配送。运费模板按区域定义规则;物流轨迹对接快递 100 类查询接口;O2O 支持可配置半径的同城配送;自提订单生成 pickupSn(自提码) 用于到店核销;云打印(如飞鹅云)可在发货环节自动出单。
运费模板配置流程
说明:平台运营人员在管理端创建并维护运费模板,将计费维度、默认运费、区域差异化规则与包邮策略固化后,供商品维度引用,保证结算侧可复现一致计费。
参与角色:平台运营(管理端)、商品与运费配置服务、区域与规则数据。
flowchart TD
startNode([进入运费模板管理])
setName["设置模板名称"]
chooseMode["选择计费方式: 按件/按重"]
setDefaultFee["设置默认运费"]
setRegionRules["按区域设置运费规则"]
setFreeRule["设置包邮条件"]
saveTemplate["保存运费模板"]
bindProduct["关联到商品"]
finishNode([配置完成])
startNode --> setName
setName --> chooseMode
chooseMode --> setDefaultFee
setDefaultFee --> setRegionRules
setRegionRules --> setFreeRule
setFreeRule --> saveTemplate
saveTemplate --> bindProduct
bindProduct --> finishNode
步骤说明
- 运营进入管理端「运费模板」模块,新建或编辑模板,首先填写模板名称以便后续在商品侧识别与选择。
- 选择计费方式:按件数阶梯计费,或按商品重量(及订单总重)计费,二者决定后续金额计算公式与必填字段。
- 配置默认运费:作为未命中任何区域特殊规则时的兜底金额或首重/首件费用(以平台实际字段为准)。
- 按收货地区(省市区等粒度)逐条维护运费规则:可包含续重/续件、上限封顶等,形成「区域 → 规则」映射。
- 设置包邮条件:例如满额包邮、满件包邮或与指定营销活动叠加,满足条件时该区域/整单运费记为零。
- 保存运费模板,校验区域互斥、金额合法性与必填项完整后写入配置。
- 在商品发布或编辑页,将模板关联到对应商品(或 SKU),使结算时能加载该模板参与运费试算。
特别说明
- 运费模板是「按区域定义规则」的核心载体;商品未关联有效模板时,应按平台策略提示运营补全或使用系统默认模板。
- 计费方式切换可能影响历史已配置数据,变更前建议评估在售商品与草稿商品的引用范围。
运费计算流程详解
说明:用户在结算页或提交订单时,系统按购物车中各店铺、各商品所绑定的运费模板,结合收货地址与计费维度自动计算运费;多店铺场景下各店铺子单运费独立汇总。
参与角色:终端用户、订单与结算服务、运费计算引擎、商品与店铺维度数据。
flowchart TD
checkoutNode([结算/下单请求])
matchTemplate["匹配商品运费模板"]
lookupRegion["按收货地区查找规则"]
calcByDim["按件数或重量计算基础运费"]
checkFree["检查是否满足包邮条件"]
perShopSum["多店铺各自独立计算后汇总"]
resultNode([返回运费明细])
checkoutNode --> matchTemplate
matchTemplate --> lookupRegion
lookupRegion --> calcByDim
calcByDim --> checkFree
checkFree --> perShopSum
perShopSum --> resultNode
步骤说明
- 用户进入结算或提交订单,系统收集收货地址(省市区)、购物车行项目及数量、重量(若按重)与各商品关联的运费模板 ID。
- 对每个可配送商品匹配其运费模板;若商品未配置模板,按平台规则选用默认模板或阻断并提示。
- 根据收货地区在模板中查找命中规则:优先匹配最细粒度区域配置,未命中则回退默认运费规则。
- 按模板所选计费方式计算:按件则按件数阶梯累加;按重则按 SKU 重量与订单维度聚合后套用首重/续重等规则。
- 判断是否满足包邮条件(满额、满件、活动标签等);满足则该行或该店铺子单运费置零,否则保留上一步金额。
- 多店铺购物车下,对每个店铺分别完成上述计算,再汇总为订单总运费与各店铺分摊,避免跨店混算。
特别说明
- deliveryType 为物流配送(
1)时参与本流程;自提(2)、同城(3)、无需配送(4)按各自规则另行处理,不计入传统快递运费模板路径或仅计同城费。 - 包邮与优惠券、满减的叠加顺序以平台配置为准,实施与对账时应明确「先算基础运费再判包邮」或「活动后金额参与满额包邮」等策略。
物流发货与跟踪流程
说明:商家在订单履约阶段录入承运商与运单号并确认发货后,系统通过快递 100 类接口拉取物流轨迹,消费者可在订单详情中查看同步更新的物流信息。
参与角色:商家(店铺后台)、物流查询服务(Kuaidi100 风格 API)、终端用户、消息通知(可选)。
flowchart TD
pickOrder["商家选择待发货订单"]
chooseCompany["选择物流公司"]
fillSn["填写物流单号"]
confirmShip["确认发货"]
syncTrack["系统查询物流轨迹"]
userView["消费者查看物流信息"]
pickOrder --> chooseCompany
chooseCompany --> fillSn
fillSn --> confirmShip
confirmShip --> syncTrack
syncTrack --> userView
步骤说明
- 商家在店铺后台从「待发货」列表中选择订单,核对商品与收货信息。
- 选择物流公司:从平台维护的承运商字典中选取,保证与轨迹查询侧编码一致。
- 填写物流单号(运单号),必要时可支持子母件等扩展字段(以系统实现为准)。
- 确认发货:订单进入已发货/待收货状态,并记录发货时间与物流快照。
- 系统按承运商编码与单号调用快递 100 类查询接口,定时或按需拉取最新轨迹节点,落库并去重。
- 消费者在订单详情页查看物流时间线与当前状态;异常件、签收等节点可触发站内信或短信(若已配置)。
特别说明
- 轨迹查询存在第三方延迟与失败重试,展示「最后同步时间」可降低客诉预期。
- deliveryType=1(物流配送) 与本流程直接对应;若订单为其他配送类型,发货与展示字段可能不同。
同城配送流程
说明:【O2O 版】平台预先配置同城配送服务半径与运费策略;消费者下单时选择同城配送,系统校验收货地址是否在配送范围内并计算同城运费,商家安排骑手或自有配送直至送达。
参与角色:平台运营(范围与运费配置)、终端用户、商家、配送执行方(骑手/门店)、地理围栏与计费服务。
flowchart TD
configNode["配置同城范围与运费"]
userChoose["消费者选择同城配送"]
validateAddr["校验地址是否在配送范围"]
calcLocalFee["计算同城配送费"]
merchantDispatch["商家安排配送"]
deliveredNode([送达完成])
configNode --> userChoose
userChoose --> validateAddr
validateAddr --> calcLocalFee
calcLocalFee --> merchantDispatch
merchantDispatch --> deliveredNode
步骤说明
- 运营在后台配置同城配送:可设置中心点、服务半径(或电子围栏)、起步价、距离阶梯加价、时段加价等 O2O 参数。
- 消费者下单时在配送方式中选择同城配送(deliveryType=3),并填写或确认收货地址。
- 系统将地址坐标与店铺服务范围比对:在半径或围栏内则通过;否则提示超出范围或建议选自提/快递。
- 通过校验后,按配置的同城计费规则计算配送费,并与商品金额等一并进入应付总额。
- 商家接单后安排配送:可对接第三方同城配或人工分派,更新配送中状态。
- 货物送达后由用户确认或配送员反馈完成,订单闭环;异常与拒收按售后规则处理。
特别说明
- O2O 半径与运费模板相互独立:同城费以距离/区域策略为主,勿与跨省快递模板混用。
- 地图与地理编码准确性直接影响范围判断,建议使用平台推荐的地址组件与坐标纠偏能力。
到店自提流程
说明:消费者下单时选择到店自提,系统生成唯一自提码(pickupSn);用户到店出示自提码,店员通过扫码或手工输入完成核销后订单完结。
参与角色:终端用户、订单服务、门店店员(收银/核销端)、自提点或门店主数据。
flowchart TD
placeOrder["下单选择自提"]
genPickupSn["系统生成自提码 pickupSn"]
arriveStore["消费者到店出示自提码"]
verifyCode["店员扫码或输入核销"]
completeOrder([订单完成])
placeOrder --> genPickupSn
genPickupSn --> arriveStore
arriveStore --> verifyCode
verifyCode --> completeOrder
步骤说明
- 用户在结算页选择自提(deliveryType=2),并选定自提点或门店。
- 订单支付成功后,系统生成自提码 pickupSn,并在订单详情、消息通知中展示给用户。
- 消费者到店向店员出示自提码(二维码或数字串)。
- 店员在核销端扫描条码或输入 pickupSn,系统校验订单状态、是否本人取货与是否重复核销。
- 核销成功即视为履约完成,订单进入已完成;若支持部分提货,按平台规则拆分或多次核销。
特别说明
- pickupSn 应具备唯一性与防伪造设计(如短链加密、时效控制),重复核销须拒绝并记录审计日志。
- 自提不涉及快递轨迹;若误选配送方式,需走订单修改或取消重建流程(依平台规则)。
云打印发货单流程
说明:运营在后台绑定飞鹅云等云打印设备与打印机,订单进入发货环节时自动触发打印任务,输出发货单或电子面单,并回写打印结果便于对账与补打。
参与角色:平台运营(打印配置)、商家、云打印服务商(如飞鹅云)、订单发货事件、门店或仓库终端。
flowchart TD
setupDevice["配置云打印设备"]
bindPrinter["绑定打印机"]
onShip["订单发货触发打印"]
printDocs["打印发货单或快递面单"]
feedbackStatus["打印状态反馈"]
setupDevice --> bindPrinter
bindPrinter --> onShip
onShip --> printDocs
printDocs --> feedbackStatus
步骤说明
- 在管理端或店铺端进入云打印配置,录入云服务商账号、门店/终端标识及 API 密钥(按飞鹅云等文档完成授权)。
- 将逻辑打印机与实体设备绑定:指定默认打印机用途(发货单、取餐小票、电子面单等)。
- 订单执行「确认发货」或进入可打印状态时,系统根据模板组装打印内容并调用云打印 API 下发任务。
- 终端出纸:可能为发货明细、拣货单、快递一联单等,版式由模板与承运商要求决定。
- 云服务商异步返回打印成功/失败与任务 ID,系统记录状态并支持失败重试或人工补打。
特别说明
- 网络与设备离线会导致打印失败,应在 UI 提示并保留「重新打印」入口;敏感信息打印须符合隐私与合规要求。
- 云打印与物流单号录入可并行:建议先确认单号再打面单,避免重打浪费(具体顺序以仓库 SOP 为准)。
Gan public network security 36010902001041