我们会梳理 贵公司配送的运作方式 并告诉您 应当优先自动化什么
现在配送员是怎么领任务的、谁在维护状态、交付靠什么确认,以及贵公司的订单现在躺在哪些程序里。
只有两个配送员的时候,配送靠打电话和聊天撑着:地址发在即时通讯里,行车顺序口头说一说,问「订单在哪」就由最先打通配送员电话的人来回答。配送单量一上来这就不行了——任务会丢、状态跟不上现实,「到底送没送」的争执也没有依据可查。配送员软件把这种工作方式去掉:任务进到执行人的应用里,状态由送货的人在动作发生的那一刻来标记,交付事实连同时间和操作者一并记录。以下讲解它是怎么运作的——从派单到收班。
配送员软件 — 执行人的作业工具:它把当班任务送到配送员手上,显示地址和订单内容,带着他从一个站点走到下一个,并记录每个站点上发生了什么。从公司这一侧看,这就是 配送管理:调度员不必挨个打电话,就能看到谁在哪里、什么已经完成。
一个例子就能看出区别。没有程序时,配送员在聊天里拿到地址,打电话给客户问哪个单元门,晚上再向调度员口述今天送了什么。调度员把这些抄进表格——前提是他记得,而且配送员没记乱。到了一天结束,谁也说不出某个订单确切的交付时间。
在程序里,这一切都是记录。一单配送有一张卡片,卡片上有地址、内容、时间窗和当前状态,每一次变更都有时间和操作者。回答「订单在哪、它身上发生过什么」只要几秒钟,而且不取决于配送员接不接电话。
举个例子。 早上订单在仓库拣好并派给了配送员——任务连同地址和配送时间窗一起出现在他的应用里。配送员取了货、标记了领取、按站点跑起来,每到一站就改一次状态。第三个地址上客户不在家——配送员填了原因,这一单没有「消失」,而是进入调度员的排查队列。傍晚业务员按系统里的记录答复客户,而不是按配送员的记忆。
配送自动化 的起点,是当三个问题的答案再也装不进调度员的脑子时:这个订单派给了谁、它此刻处于什么状态,以及有什么能证明它已经交付。
这是一单配送走的路,而不是程序界面的清单。每一次流转都由人、在动作发生的那一刻完成:调度员派单,取货和交付由配送员标记。因此系统显示的是配送的状态,而不是排单那个人的意图。

它不送货,也不替代配送员。它去掉的是动作周围的手工活:不用打电话就把任务送到、把地址连同备注保存下来、不允许没有结果就关闭一单配送、并记录每一次变更。改期或退回订单的决定仍然由人来做——只是依据的是记录,而不是口头约定。
同样,系统本身并不「看见」配送员:它知道的恰好是他用动作在里面记下的那些。因此数据质量取决于的不是功能有多少,而是标记是不是在事件发生的那一刻打上去的。
最先做的是两件事:一份有限的状态清单,以及每一单配送都必须有结果。原因很简单:只要「处理中」人人理解不同、没有原因就关闭的配送还算成功,报表就无从谈起——不管应用里有多少个界面。
下面列的不是功能清单,而是让配送被自动化的六个问题。每一个的表述方式都一样:没有程序时会发生什么,有了程序又会怎样。
没有程序时,地址从即时通讯里来,一部分靠电话口述,一部分是表格里的清单。配送员要从三个来源拼出自己的一天,难免漏掉点什么。在程序里,任务是一条带编号和执行人的记录:它要么在处理中,要么已带结果关闭。
只要状态还是由调度员听着电话代填,它就比现实晚一个小时,还要占掉他半个班次。配送员在动作发生的那一刻做标记,给出的是实际时间:什么时候取的、什么时候到的、什么时候交的。
单元门、楼层、门禁和「从院子进」都保存在配送卡片里,而不是在上次去过的人的记忆里。新来的配送员第一次就能把这个地址搞定,而不是给客户打两个电话、再给调度员打一个之后才行。
谁收的订单、什么时候收的、依据是什么,都是系统里的记录,而不是回忆。确认方式按项目选择,但结果只有一个:「到底送没送」的争执,靠打开一张卡片就能了结,不必再让业务员和配送员对质。
调度员看一个屏幕:谁在路线上、关闭了多少站点、哪一单落后于时间窗。「我的订单在哪」不再是三个人的工作量——业务员自己就能答复客户。
每一次变更都签着操作者和时间。这不是盯梢配送员,而是能够复盘某个具体案例:配送卡在了哪一步、为什么卡住。顺带也能看到工作量——一个班次关闭了多少站点、由谁关闭的。
系统由模块拼装而成。并不是每家公司都需要全部模块:只有三名配送员、地址又很固定的服务,不需要十种异常场景的处理;而送餐离不开时间窗和给客户的通知。具体组合由需求决定,但模块之间是事先就能对接好的,而不是事后从旁边硬加。

配送员的一天用一个屏幕呈现:本班派了什么、按什么顺序、哪些已经关闭、还剩什么。这是程序的入口——配送员从这里开始一天,每跑完一站也回到这里。
一个订单的全部信息:内容和件数、地址及备注、时间窗、收货人、付款和当前状态。恰好是完成任务所需的那些——没有公司的台账和报表。
当班地址在地图上和清单里、行车顺序、从当前站点前往下一站。路线和任务一样是业务对象:它有日期、执行人,以及当天的变更历史。
一组有限的状态,以及它们之间的流转规则。配送员一步就能改状态,而不是从一长串列表里挑:已派单、已取货、在途、已到达、已送达。
在站点上记录结果:改变状态,加上按项目选定的确认方式。没有结果,任务就关不掉——「大概送到了」不是一种配送状态。
在仓库或发货点标记领到订单。从这一刻起,货物的责任在配送员身上,系统里也能看到订单已经不在仓库、而在途中。
发给配送员和收货人的消息:派了新订单、任务有变、时间窗临近、配送已取消。发送渠道在落地时选定,并通过对接接入。
配送员一天、一周、一个月完成了什么:已关闭的配送、完成用时、有问题的站点。他的产出就从同一批记录里汇总出来——为此不需要另做一套核算。
直接从任务卡片联系调度员,不必在手机里翻号码。调度员看得到问题是就哪一单配送提出的,直接就此答复,而不是再重新弄清说的是哪个地址。
在信号覆盖之外做的标记——地下室里、电梯里、平房区里——会存在设备上,等有网络时补传。重发不会生成第二单配送。
公司这一侧的工作台:在岗配送员、已派订单、状态、已完成和有问题的配送、人员负荷。在浏览器里打开,无需安装任何东西。
系统对外的接口:创建一单配送、指派执行人、获取状态、拉取确认凭据和日志。网店、仓库、物流和财务系统都通过它接入。
配送单生成之后,订单会 指派给某位具体的配送员。指派不是群里的一条消息,而是一项操作:这单配送有了执行人,执行人也有了一项带编号、下发时间和当前状态的任务。
任务立刻进到配送员的应用里,不用打电话,也不用转发地址。配送员打开清单,看到的是完整的一个班次:派了多少站点、哪些已经关闭、下一单是哪个。
谁来指派。 通常是调度员——手工指派,或者按公司设定的规则:按城市片区、按订单类型、按配送员空闲时间。自动分配 可以实现 ,按某家具体服务商的流程来做;我们不会事先把它当成现成功能来宣称——每家的分配规则都不一样,也不能替公司去凭空设想。
配送员对一项任务能做什么:
任务里不该有的,是多余的东西。配送员不需要订单成本、客户历史和公司报表:屏幕上留下的是把货送到并交出去所需要的内容。其余的用访问权限挡住,而不是用小字。

配送员生病、迟到或没来上班——这是常见情况,不是故障。调度员撤下任务并指派给另一位执行人;配送历史里会同时保留两次指派及其时间,而不只是最后一次。
这在实践中很要紧:没有重新指派的记录,「订单为什么迟到」的复盘就会卡在一个事实上——系统显示的是现任配送员,而他是在时间窗结束前一小时才接手的。
收货人的电话只在完成任务确实需要时显示,而且只显示给送这一单的人。访问个人数据是一项单独的权限,而不是打包成一个「员工」:公司全部客户的名单绝不会对配送员开放。
联系方式具体怎么显示——完整显示、部分显示,还是通过中间号码呼叫——在调研时决定:这取决于公司处理哪些数据、以及它有义务保护什么。
| № | 时间窗 | 地址 | 件数 | 付款 | 状态 |
|---|---|---|---|---|---|
| 1 | 10:00—12:00 | Akhunbaeva 97,2 号单元 | 1 | 已付款 | 已送达 |
| 2 | 11:00—14:00 | Toktogula 125,4 号办公室 | 3 | 已付款 | 已送达 |
| 3 | 12:00—15:00 | Baitik Baatyra 53 | 1 | 2 400 索姆 | 已到达 |
| 4 | 14:00—17:00 | Chuy 219,从院子进 | 2 | 已付款 | 在途 |
| 5 | 16:00—19:00 | Ibraimova 42,7 楼 | 1 | 1 150 索姆 | 已派单 |
清单按时间窗排序,而不是按派单时间:对配送员来说要紧的是一天的先后,而不是调度员发单的先后。付款那一列紧挨着地址不是偶然——应收金额得在配送员爬上七楼之前就看到。
配送员应用 — 不是调度面板的缩小版,而是按执行人作业条件专门做的界面:一手拿手机,一手抱箱子,屏幕在太阳底下,网络时有时无,到傍晚电量还很低。
它的实际意义只有一个: 全部作业信息集中在一处。配送员不该同时开着三个聊天、一张地址表格和通话记录——任务、地址、订单内容、状态和联系调度员的方式,都在同一个界面里。
界面按「当前站点和下一站」的原则来搭。此刻不需要的都收进更深处:往日的清单、台账、与交付无关的细节。屏幕上的元素越少,当班出错就越少,新人上手也越快。
比功能多少更重要的几项要求:
去算这种集中能省多少时间没有意义——那取决于现在配送员的工作被搞成了什么样。看得见的是另一个效果:有一整类错误消失了,就是那种把货送到昨天消息里的地址上、只因为新地址发在了另一个聊天里的错误。

具体形态按需求选择:可以是面向 Android 和 iOS 的移动应用,也可以是在手机浏览器里打开的适配网页。
后者更便宜、上线更快;前者用在离线运行、推送通知和调用摄像头很重要的场合。哪种适合某家具体公司,在调研时确定,而不是事先就定死。
信号掉线是有规律的:地下室、电梯、平房区、地下停车场。如果标记在那种时刻打不上去,配送员要么站着等,要么干脆不再标记——于是状态又回到了电话里。
因此标记先存在设备上,等连接恢复后补传。与此同时重发不会生成第二单配送:每个标记都带一个键,系统只接受一次。这与外部系统数据交换所遵循的是同一条规则。
标着「取决于项目」的地方,是指该能力依赖接入外部服务,或依赖某家具体服务商的作业条件。其余都是可用的最低限度:少了它们,执行人的界面就不是取代聊天,而是变成第十个派任务的来源。
配送站点 — 一个地址加一单配送。配送员的一个班次由这些站点构成,应用同时用两种方式展示它们:按行车顺序排列的清单,以及地图上的标记。清单回答的是「接下来做什么」,地图回答的是「离这儿有多远」。
先后顺序 事先排定并对配送员可见:哪一站是当前的、哪些已关闭、哪些在后面。关闭一站之后,下一站自动成为当前站——配送员不用在清单里找,也不用每次重新决定去哪。
顺序在当天可以调整。 调度员挪动站点、插入急单或撤下已取消的——变更会推送给配送员,路线历史里也留下改了什么、什么时候改的。系统绝不该悄无声息地把计划换成另一份:一个事后才知道变更的配送员,只能把一天重新排一遍。
自动生成最优行车顺序 — 是一种能力,它 可以自行实现,也可以通过对接接入 某个地图服务。我们不会把它当成现成功能来宣称:这种优化的质量取决于交通数据,也取决于某家具体服务商的约束——收货方的时间窗、片区、包或车的容量。
实践中,很多服务商用手工排序就够了:调度员比算法更懂这座城市,而收货方的时间窗本来就把一天框得很死。

配送员损耗的时间有一半不是花在路上,而是花在找入口上。因此站点带有备注:单元门、楼层、门禁密码、「从院子进」、「有道闸,给保安打电话」、「二号楼,灰色门」。
备注由配送员在送完之后自行补充,并留在这个地址的卡片里。下一个去那里的人不必再把同样的事情摸索一遍——这是把关于这座城市的知识积累在系统里、而不是积累在当班人脑子里的唯一办法。
状态不是一天结束时一批一批地改,而是每个站点在动作发生的那一刻改。到了地址——「已到达」;交出去了——「已送达」;没碰到收货人——填原因并改期。实际送达时间和在站点停留的时长都取自这些标记;否则这两项指标都要靠记忆还原,也就是根本还原不了。
| 顺序 | 地址 | 时间窗 | 运的是什么 | 站点备注 | 状态 |
|---|---|---|---|---|---|
| 1 | Baitik Baatyra 53 | 12:00—15:00 | 1 件 | 有道闸,给保安打电话 | 已关闭 |
| 2 | Chuy 219 | 14:00—17:00 | 2 件 | 从院子进,灰色门 | 当前 |
| 3 | Ibraimova 42 | 16:00—19:00 | 1 件 | 7 楼,电梯只到 6 楼 | 后面 |
| 4 | Moskovskaya 180 | 17:00—20:00 | 3 件 | 办公楼,前台领通行证 | 后面 |
| 5 | Akhunbaeva 97 | 20:00 前 | 1 件 | 退回:收货人拒收 | 当天新增 |
第五站是当天加进路线的——这是一单因拒收而需要带回去的退货。退货作为一个有地址和状态的独立站点存在,而不是一句「明天顺路捎回来」的口头约定:否则订单恰恰会在没人对它负责的那一刻从账上消失。
状态不是屏幕上的一行字,而是一种状态,由它决定哪些动作是被允许的。这个集合有限而简短:只要没有把它明确列出来,每个员工对「处理中」的理解都不一样;而一旦有十来个长得差不多的状态,配送员就会开始随手乱选。

五个状态是可用的最低限度,不是完整清单。中间状态(「已交分拣」「已转交另一名配送员」)可以按公司流程添加,但集合始终是有限且明确的:每个状态都必须回答一个问题——配送员接下来被允许做什么。
| 发生了什么 | 系统会做什么 | 状态 |
|---|---|---|
| 联系不上客户:不开门、不接电话 | 记录一次失败尝试,附原因和配送员备注,订单仍留在他名下,并把是否再送一次提上日程 | 待排查 |
| 应收货人要求改期 | 记录新的日期或时间窗,同时记下是谁、什么时候同意改期的;该站点从今天的路线中移除 | 正常 |
| 收货人拒收了订单 | 以拒收原因关闭这单配送,并新增一个返程站点——把订单退回仓库或发货点 | 待排查 |
| 收货人只接收了一部分 | 把这单配送拆开:接收的货件关闭,拒收的作为一条单独记录转入退回,而不是跟其余一起注销 | 待排查 |
| 地址有问题:找不到这栋楼、找不到入口 | 生成一个带配送员备注的事件,并把该站点转给调度员去核实,同时不把这单配送按已完成关闭 | 待排查 |
| 配送员已在途中,订单被取消 | 把该站点从路线中撤下,并把这单配送转为退回:订单不会「化掉」,仍然有人对它负责 | 正常 |
| 配送员没来上班 | 释放他的任务以便重新指派,并把受影响的全部配送用一份清单呈现给调度员 | 提醒 |
总原则:失败的结果不会消失,也不会变成成功。这单配送保持打开状态并进入排查队列——这比一份「没有问题」的报表要便宜,因为那份报表之所以没有问题,只是因为问题无处记录。
公司需要哪些异常处理,在调研时决定。送餐需要短时间窗和快速改期;送电器需要部分拒收和退回;送文件需要收件人身份验证。这个集合可以配置,但规则不变:任何一单配送的结束都有一个原因,而这个原因会进入报表。
一单配送有两个责任人更换的节点,而且两个都会被记录。第一个是 配送员取货:订单离开仓库,从这一刻起由执行人负责。第二个是 交付给收货人:配送关闭,公司的义务履行完毕。
没有这两个时刻的记录,任何一次丢失都会变成挨个问当班的人:仓库认为自己交出去了,配送员说不是他拿的,业务员则跟客户解释「我们在查」。做标记只要几秒,没有标记的排查却要花掉一天的工作量和客户的信任。
交付时系统记录什么:
确认方式按项目选择。 下面列出的是可选方案——它不是一份现成功能清单,也不是「这些都已经做好了」的承诺。哪种适合某家具体服务商,取决于送的是什么、送给谁,以及公司自身提出什么要求。

这条规则比确认方式本身更重要。在结果被记录之前,这单配送保持打开状态并对调度员可见。否则到了月底,所有配送都是「已完成」,而有争议的情况照旧要靠打电话去查。
在现场付款的场合,送达确认和收款确认是两条不同的记录。应收金额随任务一起下发,收到钱这件事另外标记:否则一个班次结束时,根本算不出配送员手里有多少现金。
刷卡或转账收款 可以通过对接实现 ,接入支付服务或执行人手里的终端——具体范围取决于服务商,并在调研时确认。
没能交付的订单一直记在配送员名下,直到他把它交回去为止:交回仓库、交回发货点,或者交给另一位执行人。交回与取货一样,由第二方共同办理。在此之前,未送达的订单单独列一份清单可见,而不会消融在当班的总体统计里。
这些方案没有一个是强制的,也没有一个被宣称为「已经做好」:具体组合在调研时确定——按送的是什么、最常出现哪类争议、公司自身提出什么要求来定。确认越严格,配送员在站点停留得越久,因此只有在确实存在争议的地方才值得把它加严。
仓库和配送不是两个共用一个群聊的部门,而是同一个流程的两段。「已拣配但未交接」的订单和「已交接但未标记」的订单,是两种不同的状态,混起来代价很高:前者要去仓库找,后者要去配送员那里找。
这个接缝很简单: 仓库员工标记交出,配送员标记接收。在两个标记都打上之前,订单挂在一个中间状态里,双方都能看到。这样一来,丢失的货件总能定位到它是在哪一段丢的,排查也就不会变成挨个问当班的人。
完整的仓储核算——收货、库位存储、库存、拣配和盘点——是另一个页面的主题, 「仓储解决方案」。这里只讲接缝:仓库交给配送员什么,又从他那里拿回什么。
如果仓库跑在另一个程序里 — 这是常见情况:仓储核算已经在既有系统里做了,没有人打算换掉它。这时接缝以数据交换的方式搭建:配送员软件取到订单是否备好和货件构成,回传状态、确认和退货。
交换的内容取决于外部系统能对外提供什么,并在调研时确认。事先宣称已有现成的对接,就等于替别人的产品做承诺。
同一条原则在反方向上同样成立——在退货上。没有交回的标记,未送达的订单就一直躺在配送员的后备箱里直到下个班次,并且恰恰在没人对它负责的那一刻从账上消失。

反向的流同样重要:未送达的订单、拒收和部分退回都会带着退回原因回来。仓库以一项操作接收它们——和接收一批到货一样——订单于是重新成为仓库的责任。
第三次流转是唯一一次订单更换责任人的地方,因此它由双方共同办理:仓库交出、配送员接收。少了这一步,货件丢失时就说不清是哪一段丢的,责任分配也就取决于谁在复盘会上嗓门大。
配送员应用
路线与站点
送达确认
调度面板
调度面板 — 系统的另一半:配送员在应用里干活时,公司看到的东西。它的任务不是「把所有数据显示出来」,而是把此刻需要做决定的内容集中到一个屏幕上,其余的收进更深处。
这里的核心想法只有一个: 公司不必不停地给每个配送员打电话,也能明白配送正在发生什么。调度员看的是一个屏幕,而不是挨个拨五个人,去问谁把哪个地址关掉了。
面板里能看到什么:
访问权限 把面板按角色区分开:配送员只看到自己当天的任务,调度员看到自己的班次或片区,负责人看到所有方向和报表。访问收货人联系方式和取消配送,都是各自独立的权限,而不是打包成一个「员工」。

系统界面截图,数字为演示用。磁贴的顺序不是随手排的:排在最前的是本班的总量,接着是需要做决定的事。未分配的订单排在最后,因为那是调度员唯一能自己彻底做完的一块。
消息到调度员那里时是绑定在某一单配送上的:一眼就能看出问题是就哪个地址提的、它处于什么状态。这省掉了对话的一半——那一半原本用来弄清说的是哪个订单。
反向也一样:调度员的消息进到配送员的任务卡片里,而不是变成一通他在六楼和七楼之间的楼梯上才听到的电话。
这种区分由角色设定,而不是给每个人单独配权限。否则半年之后,新员工的访问权就是「照着 Ivanov 那样配」,再也没人说得清他到底能看到什么。
物流系统管理的是整个配送流程:申请、货物、车辆、当天的规划和工作分配。配送员软件是这个流程内部执行人的作业工具。它们不是两个互相竞争的产品,而是同一件事的不同层级:一个回答「配送怎么组织」,另一个回答「怎么执行并把它记录下来」。

仓库负责订单被拣好并交出。物流负责它派给了谁、排在哪一天。配送员负责它送到并交付。客户以签收为这条链收尾。任何两个环节之间的断裂,看上去都是一样的:订单在一个系统里有、在另一个系统里没有,而对它负责的是第一个接起电话的人。
一单已经生成好的配送,含地址、时间窗、订单内容和收货人,以及指派信息——派给了哪位配送员、排在哪一天。当天的规划和工作分配仍留在物流系统一侧。
把任务送到执行人手上、带他跑完各站点、记录状态和交付确认。这是配送实际数据的唯一来源:其余一切都是计划,不是事实。
带时间的实际状态、每个站点的结果、配送失败的原因、退回和配送员的备注。物流据此生成跨周期报表,业务员也不用给执行人打电话就能答复客户。
配送员软件可以作为一个独立应用运行,通过 API 接到既有系统上:接收任务,回传状态和确认。这种方案用在没有打算更换物流体系的场合。
物流侧的详细解析——运输申请、货物台账、路线规划和车辆作业——见 物流软件页面。这里要紧的是另一件事:配送员的标记是实际状态的唯一来源,因此他的工作台是最先设计的,而不是最后。
通知只用在不发就得打电话的地方。它们数量不多而且很具体:每一条报告的都是一个之后有人得做点什么的事件。其余的都留在任务清单里,不会在楼梯上打扰配送员。
配送员收到一项任务:地址、时间窗和内容。他立刻就能看到,而不是等当前这单送完才知道——于是可以趁还没开去城市另一头,把这个站点插进行车顺序里。
调度员挪了站点、插了急单,或者撤下了已取消的单。没有通知,配送员会在按旧地址跑到之后才发现——然后花一小时折返。
针对时间窗快到期的站点发出提醒。它提前送达,而不是在已经超时的那一刻才发:意义不在于记录迟到,而在于让迟到不发生。
取消要在配送员爬上七楼之前就送到他手上。如果订单已经在他手里,通知会连同下一步该怎么办一起给出:退回仓库,还是转交另一位执行人。
任务一直没有标记、配送没有以结果关闭、调度员就某个站点提了问题。这不是为了管控而管控:一单到傍晚还没关闭的配送,第二天就会变成一次排查。
对客户也有话要说:订单已交给配送员、配送员已出发、配送已改期。这能减掉一部分打进公司的电话——知道状态的人不会再打电话来问。
发送渠道——应用内消息、短信、即时通讯、电子邮件——在落地时选定,并通过对接接入。我们不会事先承诺已经接好了某些具体服务:具体组合取决于公司的客户在用什么,以及所在国家有什么可用。
历史不是「以防万一」的存档,而是复盘工具。记录不做编辑:更正以一个带原因的新事件写入。因此「订单为什么晚上七点才到」这个问题有答案,而不是有几个版本。
执行人、派单时间和操作者——如果任务当天在配送员之间转过手,那么每一次重新指派也都在。
双方共同确认的交接事实:谁交出的、谁接收的、什么时候、多少件。责任从这一刻起落在执行人身上。
每一次流转都带精确时间和操作者:已出发、已抵达站点、已交付。配送的实际时长就是从这些标记里汇总出来的。
配送结果和确认方式;如果没有完成——原因、配送员的备注,以及之后决定怎么办。
| 时间 | 事件 | 谁 | 记录了什么 |
|---|---|---|---|
| 09:12 | 已派单 | 调度员 | 执行人 — 配送员 Azamat,时间窗 12:00—15:00 |
| 10:05 | 配送员已取货 | 仓库 + 配送员 | 1 件,包装完好,交接由双方确认 |
| 12:41 | 已到达 | 配送员 | 抵达 Baitik Baatyra 53 |
| 12:58 | 尝试失败 | 配送员 | 收货人不应答;备注:「道闸关着,保安不让进」 |
| 13:20 | 已改期 | 调度员 | 与收货人约定改到当天 17:00—19:00 |
| 17:34 | 已送达 | 配送员 | 确认码已通过,2 400 索姆现金已收 |
从这条记录里不仅能看到订单已送达,还能看到它为什么比时间窗晚了五个小时。值得排查的正是这样的链条:它能看出流程的哪一步是绕过系统在做的——本例中,这个地址上从来没有记录过怎么通过保安。
报表就是从配送员在班次中打下的那些记录里汇总出来的——分析不需要另外录一遍数据。指标不多,每一个都回答一个会据此做决定的问题:明天需要几名配送员、流程最常在哪里断掉、该给谁减负。
一天、一周或一个月派了多少订单——按公司、按片区、按配送员统计。这是其余一切指标的计算基数。
有多少以结果关闭,其中又有多少落在约定的时间窗内。后者比前者更重要:迟到送达和送达不是一回事。
有多少订单退了回来、原因是什么:收货人拒收、公司取消、未送达。原因是必填的——没有它,这个数字什么也解释不了。
从取货到交付一单配送要多久,以及在站点本身停留多久。这两个数字能看出时间损耗在哪里:路上还是现场。
每人摊到多少站点,以及他实际关闭了多少。「是不是还需要再招一名配送员,还是工作分配有问题」的答案就出自这里。
需要排查的配送清单及其原因。到月底看到的不是一句「难免的」,而是一份具体的、反复出现的问题清单。
一段时间内按员工和按方向统计的产出。它从已关闭的任务里汇总而来,因此不需要另做一套工时核算。
报表可导出为文件、按计划生成,也可以由外部系统通过 API 取走——适用于公司的汇总报表放在另一个程序里的情况。
条形显示的是占第一行的比例,而不是占订单总数的比例:有意义的对比对象是正常结果,而不是平均数。这样一张表里该细查的是第二行——一周七十四次迟到不是「排得紧」,而是一批具体的地址和一批具体的时段,当班在那里应付不过来。
配送很少独自存在:订单来自一个程序,客户在第二个程序里维护,仓库在第三个。以下是最常搭建交换的几个方向。具体范围取决于外部系统能对外提供什么,并在调研时确认——我们不会事先承诺现成的连接器。
已生成的订单可以自动传给配送,状态可以回传到顾客的个人中心。橱窗本身和订单核算是怎么做的,见 电子商务.
订单是否备好和货件构成从仓库进来,交给配送员的事实和退货回传过去。仓储这条链路的详解见 「仓储解决方案」.
它可以与物流系统协同:物流负责规划当天和分配订单,配送员软件回传实际状态。详见 物流的.
可以与客户台账和成交历史对接:从客户卡片创建一单配送,其结果回传给业务员。交换按客户标识进行,以免产生重复联系人。
它可以与公司的账务体系协同:订单、送货单、往来结算、货到付款。交换方向取决于哪一套账被认定为主账。
地图、地址地理编码和站点之间的路径规划,通过与外部服务的对接接入。选哪一家,按所需城市的覆盖情况和使用条款来定。
发给配送员和收货人的消息、用于货到付款的支付服务、外包承运商。每一项接入都是一个独立的交换模块,而不是设置里的一个复选框。
系统自己的接口:创建一单配送、指派执行人、获取状态和确认、拉取事件日志。凡是没有专门模块的,都通过它接入。
交换规则到哪里都一样:每个操作都带一个键,因此重复传输不会生成第二单配送;失败的结果不会消失,而是进入排查队列;每一次发送和每一次应答都写入数据交换日志。没有这三条规则,对接能撑到的正好是第一次断网。
配送不会在一天之内整体搬进系统:只要还有一部分任务绕开程序在走,里面的状态就毫无意义。因此上线是分段推进的,后一段建立在已经跑通的前一段之上。
现在配送员是怎么领任务的、谁在维护状态、交付靠什么确认、最常出现哪些异常,以及已经装了哪些程序。产出是一份流程描述,以及一份「优先自动化什么」的清单。
一份有限的状态清单、它们之间的流转规则,以及每一单配送都必须有结果。这是最被低估的一步:没有它,应用只会变成又一个用来聊天的地方。
一个片区、一个班次,或者两三名执行人,在真实配送上跑完整整一圈:派单、取货、路线、状态、确认、问题站点的排查。
其余配送员按已跑通的方案铺开,然后是角色与权限,再把各项对接作为独立的交换模块接入。此后历史逐渐积累,跨周期的报表和用于排班的数据也就有了。
请写明有多少名配送员、每天发出多少单配送、现在任务是怎么分派的、交付靠什么确认,以及订单和客户放在哪些程序里。我们会回答:优先自动化什么、有哪些可以接到现有系统上,以及试点从哪里开始比较合理。