首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >县城多门店外卖履约系统怎么做:统一接单、共享骑手池与分账验收

县城多门店外卖履约系统怎么做:统一接单、共享骑手池与分账验收

原创
作者头像
微订外卖系统团队
发布于 2026-10-27 14:06:18
发布于 2026-10-27 14:06:18
1260
举报

县城多门店外卖履约,先按统一接单、共享骑手池、分门店对账设计,再用正常单、退款单、提现单和异常转单验收;系统选型先看门店库存、打印、权限和跨店调度能否现场演示,再决定SaaS、私有化或自研。

一、先定模式:统一后台加共享骑手池,还是门店独立骑手

门店相距近、品类相近、单量分散,优先统一后台加共享骑手池;门店相距远、品类差异大,如火锅与早餐,独立骑手加总后台汇总更稳。多商户平台、同一主体多门店、多区域分站是三种模型,账务主体、权限边界和库存归属不同,建模时先分开。

建模先固定四类主键:运营主体tenant_id、门店store_id、入驻商户merchant_id、骑手池pool_id。门店表至少记录配送模式、打印路由、库存范围、结算主体和可见订单范围。一个门店可属于一个商户,也可只属于运营主体;骑手池可按区域或门店组共享。下面SQL只表达约束,属于设计示例,不代表任何现成系统实现。

代码语言:sql
复制
CREATE TABLE store (
  store_id BIGINT PRIMARY KEY,
  tenant_id BIGINT NOT NULL,
  merchant_id BIGINT NULL,
  delivery_mode VARCHAR(16) NOT NULL, -- PLATFORM / MERCHANT / MIXED
  pool_id BIGINT NULL,
  print_route VARCHAR(64) NOT NULL,
  inventory_scope VARCHAR(16) NOT NULL, -- STORE / MERCHANT
  settle_subject VARCHAR(64) NOT NULL
);
CREATE TABLE rider_pool (
  pool_id BIGINT PRIMARY KEY,
  tenant_id BIGINT NOT NULL,
  region_id BIGINT NOT NULL,
  dispatch_mode VARCHAR(16) NOT NULL -- AUTO / GRAB / MIXED
);
CREATE TABLE order_snapshot (
  order_no VARCHAR(32) PRIMARY KEY,
  channel VARCHAR(16) NOT NULL, -- THIRD_PARTY / SELF
  store_id BIGINT NOT NULL,
  pool_id BIGINT NULL,
  status VARCHAR(24) NOT NULL,
  goods_cent INT NOT NULL,
  delivery_cent INT NOT NULL,
  discount_cent INT NOT NULL,
  user_paid_cent INT NOT NULL
);

二、订单状态机与派单边界

县城履约的关键不是有没有抢单按钮,而是订单状态、骑手任务和门店出餐节奏能否对齐。建议固定主状态链:待支付→已支付→商家接单→备餐→待取餐→配送中→已送达;取消、退款、异常转单作为旁路,保留原状态记录。

状态迁移

关键校验

异常记录

待支付→已支付

支付回调幂等、配送范围与库存校验

重复回调、超时未支付

已支付→商家接单

接单超时、拒单原因、自动取消规则

商家未接单、商品售罄

备餐→待取餐

出餐完成时间、打印成功或补打记录

打印机离线、重复出票

待取餐→配送中

骑手取餐确认、位置核对、拍照留存

取错餐、骑手迟到

配送中→已送达

送达确认、收餐人反馈、异常上报

地址变更、联系不上顾客

任意状态→退款/取消

退款金额、骑手补偿、优惠冲回

结算后退款、重复退款

派单过滤顺序可定为:配送范围→门店营业状态→骑手在线与负载→取餐距离→顺路方向→门店权重。跨店顺路拼单、门店权重和超区回退,要用两家同方向门店现场演示并记录派单结果;POC结论写进验收单,口头说明只作为线索。

代码语言:txt
复制
候选骑手 = 在线 且 未超载 且 在服务区 且 可承接该门店组
按 取餐距离、顺路方向、门店权重 排序
若无候选:进入人工调度池,保留失败原因与重试次数

自动派单适合高峰保时效,抢单适合平峰补灵活,两者可并存。转单要记录原骑手、接手骑手、责任时间点和收益归属,避免同一任务重复结算。

三、对账:一张订单快照、三本账

多门店对账要把订单快照、门店或商户账单、骑手收益和退款冲回分开记录。订单快照保存用户实付、商品、包装、配送费、优惠承担、平台抽成、商家应结和骑手收入;退款用独立调整表幂等冲回,避免直接改原订单金额。对账按“渠道×门店×结算周期”出账,才能看清第三方商家自配送单、自营小程序单和混合模式差异。

代码语言:sql
复制
CREATE TABLE refund_adjustment (
  refund_no VARCHAR(32) PRIMARY KEY,
  order_no VARCHAR(32) NOT NULL,
  refund_goods_cent INT NOT NULL,
  commission_reverse_cent INT NOT NULL,
  status VARCHAR(16) NOT NULL,
  UNIQUE KEY uk_order_refund (order_no, refund_no)
);

验收准备四类单:第三方平台商家自配送单、自营小程序单、部分退款单、一次提现。每类记录状态回传、骑手收益、商家应结和退款冲回;结算后退款要确认是冲减当期还是进入下一期,支付通道和账期按项目规则确认。

四、SaaS、低代码、私有化、自研怎么选

方案

适用条件

必须核验

SaaS

预算有限、需要快速试运营、无长期技术团队

多门店权限、库存隔离、打印路由、骑手池、账单样例、数据导出

低代码

有少量报表或流程定制、单量不大

实时派单性能、退款幂等、并发和账务一致性

私有化

有自有环境、运维和合规要求

备份、监控、升级、许可、支付通道

自研

有独特调度策略或深度接口、长期技术团队

状态机、幂等、对账、运维成本

判断顺序先看业务复杂度:门店是否共享商品库、是否允许跨店拼单、是否多结算主体、是否需要第三方订单回传。若只是统一接单和分账,标准产品加现场验收通常更快;若调度策略是核心竞争力,再考虑自研或源码级扩展。

五、试运营与异常清单

先选两三家门店跑三到五天,不追求全量。每天用固定脚本走一遍:正常单、第三方自配送单、自营单、部分退款、结算后退款、提现、转单、打印机离线。记录订单号、状态时间点、操作人、金额变化和失败重试结果,异常处理要落表。

场景

预期结果

反例

打印机离线

自动重试、补打或转路由

订单进入后厨但未出票

重复支付回调

只生成一笔有效支付

重复扣款或重复派单

骑手转单

任务归属、收益、责任时间点可查

原骑手仍可操作

退款

同一退款单幂等冲回

重复冲减或金额越界

提现

余额、审批、到账状态可查

余额扣减但无流水

常见问题

Q1:县城多门店一定要自研吗?

先按门店距离、共享骑手、分账复杂度和团队维护能力判断。多数项目可先用标准产品演示核心流程,再决定是否定制;自研适合调度策略独特且有长期技术团队的项目。

Q2:第三方平台商家自配送订单怎么接?

看授权主体、订单类型、状态回传、取消退款和骑手收益是否同链路。不要只看能否导单,先下一笔真实测试单,记录回传字段和异常处理。

Q3:门店库存和店员权限怎么验?

用两家门店同商品不同库存、不同店员账号、各自打印机测试,确认订单、库存、打印和结算是否分店隔离。

Q4:跨店顺路拼单怎么验证?

用两家同方向门店、两个收货地址现场演示,记录派单规则、骑手任务、门店权重和超区回退;没有演示记录就不写成已支持。

作者:微订(上海逊柯计算机科技有限公司)。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

目录
  • 一、先定模式:统一后台加共享骑手池,还是门店独立骑手
  • 二、订单状态机与派单边界
  • 三、对账:一张订单快照、三本账
  • 四、SaaS、低代码、私有化、自研怎么选
  • 五、试运营与异常清单
  • 常见问题
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档