【暂时搁置】限价单司机报价优化
网络货运平台 · 司机端APP/小程序 · 货主调价后司机重新报价触达
目录
1. 文档信息
2. 需求背景与目标 专项需求
2.1 需求背景
2.2 需求目标
2.3 需求范围
3. 用户角色与使用场景
4. 名词解释
5. 现状与方案说明
5.1 现状
5.2 方案总览(两场景分流)
6. 业务流程图
7. 功能清单
8. 详细功能说明
8.1 页面与字段说明
8.2 交互说明
8.3 业务规则
8.4 异常与边界处理
9. 需求确认要点
10. 附录
1. 文档信息
| 项目 | 内容 |
| 文档名称 | 【暂时搁置】限价单司机报价优化 - 货主调价后司机重新报价触达 |
| 需求名称 | 【暂时搁置】限价单司机报价优化 |
| 需求编号 | —(已让出) |
| 状态 | ⏸ 暂停——方案搁置,文件保留,不再维护 |
| 所属端 | 司机端APP / 小程序 |
| 版本号 | V1.0 |
| 编写人 | 刘宁宁 |
| 编写日期 | 2026-09-10 |
| 管家 | 温慧 |
| 上线时间 | 待定 |
修订记录
| 版本 | 日期 | 修订内容 | 修订人 |
| V1.0 | 2026-09-10 | 初稿:货主修改拦标价生效后,通知过往报价未成交的司机重新报价;按新拦标价与司机原报价的关系分两场景处理(重新报价 / 一键确认)。明确场景2 判定为「司机原报价 ≤ 新拦标价 且 > 阻断值」,原报价 = 新拦标价同属场景2;补充可直接成单的报价条件(≤ 拦标价 且 > 阻断值)。补充重复推送规则:货主多次调价时,凡仍处于「因报价过高而失败」状态的司机均再次推送,推送频次控制不在本需求范围。补充并确认:触达对象仅为因报价高于原拦标价而失败的司机;触达方式增加移动端首页弹窗(直至点击「不再提醒」);消息长期有效,司机报价成功 / 订单关闭 / 司机所选报价日期当天计划数为 0 时失效;多次调价消息累积多条、点击任一条展示最新拦标价;场景判定按提交时最新拦标价实时校验;场景1、场景2 均需重新选择报价日期且不做默认;二次确认沿用提醒值规则;货主端界面不做改动。 | 刘宁宁 |
| V1.0 | 2026-09-11 | 附录补充司机端原型链接(建议方案,供司机端产品同学参考)。 | 刘宁宁 |
| V1.0 | 2026-09-11 | 方案暂停:需求名称调整为【暂时搁置】限价单司机报价优化,需求编号让出(用于后续新需求),本文档不再维护。 | 刘宁宁 |
2. 需求背景与目标 专项需求
2.1 需求背景
限价单场景下,货主调整拦标价后,此前报过价但未成交的司机往往不再关注该货源。这类司机本身有明确的拉运意向,仅因价格因素未成交,属于高价值可转化人群。
现状下货主调价后,这部分司机无法及时获知价格变化,需自行重新查找货源、重新进入报价流程,门槛较高,容易造成司机流失与成单机会浪费。
2.2 需求目标
| 目标 | 说明 |
| 快速触达 | 货主修改拦标价生效后,及时通知此前报过价的司机,缩短信息获取路径 |
| 降低重新报价门槛 | 价格已满足的运单,司机一键确认即可,无需重新填写报价 |
| 提升成单率 | 推动有明确拉运意向的司机快速完成报价,提高货主调价后的成单转化 |
2.3 需求范围
- 包含:司机端消息触达(站内消息/推送 + 移动端首页弹窗)、司机端报价流程调整(场景1 重新报价 / 场景2 一键确认)
- 适用场景:限价单模式下,货主修改拦标价并生效后
- 不包含:货主端界面改动(货主端不做任何界面调整)、非限价单模式、抢单后的订单流转(本次不改动)
3. 用户角色与使用场景
3.1 用户角色
| 角色 | 说明 | 涉及功能 | 使用端 |
| 货主 | 修改限价单拦标价(调价的触发方) | 修改拦标价(现有功能,本次不改动) | 货主端APP / PC |
| 司机 | 此前报价因高于原拦标价而失败,收到通知后重新报价或一键确认 | 站内消息/推送触达、移动端首页弹窗提醒、重新报价、一键确认报价 | 司机端APP / 小程序 |
3.2 核心使用场景
场景1(新拦标价仍低于司机报价):
司机此前对某限价单报价 95 元/吨,货主修改拦标价后,新拦标价 80 元/吨仍低于司机报价。司机收到站内消息/首页弹窗提醒后进入该运单,需重新发起报价流程,填写新的报价、重新选择报价日期并提交。
场景2(司机原报价 ≤ 新拦标价,且 > 阻断值):
司机此前报价 80 元/吨,货主修改拦标价后,新拦标价 100 元/吨高于司机报价(等于亦同)。司机收到提醒后进入该运单,无需修改报价金额,点击报价按钮即确认提交,系统沿用司机原报价金额;报价日期可修改,且不做任何默认。
场景3(司机未响应):
司机收到提醒后未进入运单操作,货源维持原有状态,消息长期有效(司机报价成功 / 订单关闭 / 司机所选报价日期当天计划数为 0 时失效),司机后续仍可主动进入并操作。
4. 名词解释
| 术语 | 说明 |
| 限价单 | 货主发布时设置报价上限(拦标价)的货源订单,司机在限价范围内报价,报价越低越容易中选 |
| 拦标价 | 货主为限价单设置的最高报价上限,司机报价不得超过拦标价 |
| 司机报价 | 司机对限价单填写的期望运输单价(元/吨等,与订单计价单位一致) |
| 过往报价司机 | 本次触达对象:此前对该限价单报过价、且因报价高于原拦标价而报价失败的司机 |
| 站内消息 | 司机端APP内的消息通知(含推送),司机重新启动APP时可查看 |
| 报价下限 | 含阻断值与提醒值两档:报价低于阻断值时系统不允许提交;低于提醒值时需二次确认提醒。本需求场景判定中的「报价下限」指阻断值 |
| 报价日期 | 司机报价时选择的承运日期。本次重新报价时必须重新选择,不做任何默认 |
5. 现状与方案说明
5.1 现状
| 项 | 现状 |
| 货主调价 | 货主可修改限价单拦标价并生效(现有功能) |
| 司机侧触达 | 货主调价后,因报价高于原拦标价而失败的司机无专门提醒,需自行重新查找该货源 |
| 司机重新报价 | 司机需重新进入货源、重新填写报价,流程重复、门槛高 |
5.2 方案总览(两场景分流)
货主修改拦标价生效后,系统向此前报过价、未成交的司机发送站内消息/推送;司机进入运单后,按新拦标价与司机原报价的关系分流处理:
| 场景 | 判断条件 | 司机侧操作 | 报价金额 |
| 场景1 |
新拦标价 < 司机原报价 (原报价超出新拦标价) |
重新发起报价流程,重新填写报价并提交 |
由司机重新填写 |
| 场景2 |
司机原报价 ≤ 新拦标价 且 司机原报价 > 阻断值 |
点击报价按钮即确认提交,无需(不可)修改报价 |
沿用司机原报价金额 |
可直接成单的报价条件:司机报价 ≤ 拦标价 且 > 阻断值,即处于有效报价区间内,均可直接成单。场景2 即司机原报价在新拦标价下已满足该条件,故无需重新报价。
触达方式:司机端站内消息 / 推送通知,司机重新启动APP时可查看;同时在每次司机重新启动移动端时,首页弹窗提醒,直至司机手动点击「不再提醒」按钮为止。本次不使用短信触达。
消息生命周期:消息长期有效,在以下任一情形出现时失效——① 司机报价成功(成单);② 订单关闭;③ 司机所选报价日期当天计划数为 0(当日无库存,司机无单可接)。货主多次调价时消息累积多条,点击任一条均展示货主最新一次修改的拦标价。
报价日期:场景1、场景2 司机重新报价时均必须重新选择报价日期,不做任何默认(原报价所选日期可能已过去),以保证司机主动认知本次报价对应的日期。
范围说明:本次仅涉及司机端,货主端界面不做任何改动;货主端修改拦标价生效后触发司机端推送,为本需求核心逻辑。
6. 业务流程图
货主修改拦标价生效 → 系统触达相关司机 → 司机按两场景分流操作。
7. 功能清单
| 序号 | 功能模块 | 功能点 | 适用端 | 优先级 | 说明 |
| 1 | 消息触达 | 货主调价后向相关司机发送站内消息 / 推送 | 司机端APP / 小程序 | P0 | 货主修改拦标价生效后,触达因报价高于原拦标价而失败的司机 |
| 2 | 消息触达 | 移动端首页弹窗提醒 | 司机端APP / 小程序 | P0 | 每次司机重新启动移动端时首页弹窗,直至司机手动点击「不再提醒」为止 |
| 3 | 司机报价 | 场景1:重新发起报价流程 | 司机端APP / 小程序 | P0 | 新拦标价 < 司机原报价时,司机重新填写报价与报价日期并提交 |
| 4 | 司机报价 | 场景2:一键确认报价 | 司机端APP / 小程序 | P0 | 司机原报价 ≤ 新拦标价时,点击报价按钮即确认,沿用原报价金额;报价日期可改且不做默认 |
优先级说明:P0=必须有(MVP),P1=重要(本期),P2=锦上添花(后续迭代)
8. 详细功能说明
8.1 页面与字段说明
8.1.1 司机端 · 站内消息
| 字段 | 说明 |
| 消息标题 | 提示货主已调整该货源价格,可重新报价 |
| 消息文案 | 建议文案:「货主XX已修改订单XX的拦标价,您可重新提交报价」。最终以司机端产品文案为准;场景1、场景2 共用同一条文案 |
| 消息入口 | 点击消息进入该运单报价页 |
| 消息类型 | 站内消息 / 推送通知,司机重新启动APP时可查看 |
| 消息有效期 | 长期有效;出现以下任一情形即失效——① 司机报价成功(成单);② 订单关闭;③ 司机所选报价日期当天计划数为 0(当日无库存) |
| 多条消息 | 货主多次调价时消息累积多条(不去重);点击其中任意一条,展示的均为货主最新一次修改的拦标价 |
8.1.2 司机端 · 移动端首页弹窗
| 字段 | 说明 |
| 触发时机 | 每次司机重新启动移动端时,首页弹出提醒 |
| 弹窗内容 | 提示货主已调整该货源拦标价、可重新报价,并提供进入该运单报价页的入口 |
| 关闭方式 | 司机手动点击「不再提醒」按钮后,不再对该司机该运单弹出 |
| 与站内消息关系 | 与站内消息 / 推送并行,属同一触达链路;弹窗文案与消息文案一致,最终以司机端产品文案为准 |
8.1.3 司机端 · 运单报价区
| 字段 | 场景1 | 场景2 |
| 报价金额 | 可编辑,司机重新填写 | 展示司机原报价金额,不可编辑 |
| 报价日期 | 需重新选择,不做任何默认 | 可修改,且不做任何默认 |
| 操作按钮 | 「提交报价」——按重新填写的报价提交 | 「报价」——点击即确认,沿用原报价提交 |
8.2 交互说明
| 触发条件 | 用户操作 | 系统响应 |
| 货主修改拦标价生效 | — | 系统向因报价高于原拦标价而失败的司机发送站内消息 / 推送 |
| 货主多次修改拦标价 | — | 消息累积多条(不去重)并再次推送;司机点击任意一条,页面展示的均为最新一次修改的拦标价 |
| 司机重新启动移动端 | 正常启动 | 首页弹出提醒弹窗;司机点击「不再提醒」后不再弹出 |
| 司机点击站内消息 / 首页弹窗 | 点击进入该运单 | 跳转至对应运单报价页,按当前最新拦标价判定场景 |
| 新拦标价 < 司机原报价(场景1) | 重新填写报价、重新选择报价日期后点击「提交报价」 | 按现有报价校验规则提交(含拦标价上限、报价下限校验) |
| 司机原报价 ≤ 新拦标价且 > 阻断值(场景2) | (可选修改报价日期后)点击「报价」按钮 | 沿用司机原报价直接提交,报价金额不可修改;触发提醒值时弹出二次确认提醒 |
| 司机报价成功后 | — | 该运单相关消息全部失效(同一运单其余未点击的消息一并失效) |
| 司机未响应消息 | 不操作 | 消息长期有效;货源维持原有状态,司机后续仍可主动进入操作 |
| 司机所选报价日期当天计划数为 0 | — | 当日无库存、司机无单可接,相关消息失效 |
8.3 业务规则
1触发条件:货主修改限价单拦标价并保存生效后,触发司机触达
2触达对象:此前对该限价单报过价、且因报价高于原拦标价而报价失败的司机。司机报价低于阻断值的情况不存在(系统不允许提交),故触达对象中不含此类司机
3触达方式:①司机端站内消息 / 推送通知,司机重新启动APP时可查看;②移动端首页弹窗——每次司机重新启动移动端时首页弹出,直至司机手动点击「不再提醒」为止。本次不使用短信
4重复推送与消息累积:货主多次调价时,凡仍处于「因报价过高而失败」状态的司机均再次推送;消息累积多条、不去重,点击任意一条均展示货主最新一次修改的拦标价。推送频次控制不属于本需求范围(归货主修改运费相关功能点控制)
5消息失效条件:消息长期有效,出现以下任一情形即失效——① 司机报价成功(成单,同一运单其余未点击消息一并失效);② 订单关闭;③ 司机所选报价日期当天计划数为 0(当日无库存,司机无单可接)
6场景判定基准:司机提交(或点击确认)报价时,按当前最新拦标价与司机报价实时校验是否符合限价单报价规则:符合则报价成功,不符合则报价失败。不锁定推送时的价格快照
7场景1(新拦标价 < 司机原报价):司机需重新发起报价流程,重新填写报价并提交;重新报价后若仍超出最新拦标价,则报价失败,状态回到等待货主再次调整拦标价
8场景2(司机原报价 ≤ 新拦标价,且 > 阻断值):司机点击报价按钮即确认提交,沿用原报价金额,无需(不可)修改报价;原报价 = 新拦标价时同属场景2,可直接成单
9报价上限与成单区间:司机报价不得超过当前拦标价,且需 > 阻断值;处于「≤ 拦标价 且 > 阻断值」区间的报价均可直接成单(原有规则,本次不变)
10报价下限规则保留:司机重新报价仍适用报价下限校验——触发阻断值时无法提交;触发提醒值时按提醒规则二次确认(原有规则,本次不变)
11报价日期:场景1、场景2 司机重新报价时均必须重新选择报价日期,不做任何默认。原因:货主修改拦标价时,司机原报价所选日期可能已经过去,需让司机主动认知本次报价对应的日期(场景2 日期为可修改)
12二次确认:场景2 点击报价按钮时按提醒值判断规则执行——司机报价触发提醒值则弹出二次确认提醒,未触发则点击即提交
13适用范围:仅限价单模式下货主调价场景生效;非限价单不受影响
14货主端范围:货主端界面不做任何改动;货主端修改拦标价生效后触发司机端推送,为本需求核心逻辑
8.4 异常与边界处理
| 场景 | 处理方式 |
| 司机原报价 = 新拦标价 | 已确认:归入场景2。司机报价 ≤ 拦标价且 > 阻断值即可直接成单,故司机点击确认即可,无需重新报价 |
| 司机报价低于阻断值 | 不适用:司机报价低于阻断值时系统不允许提交,故不存在此类报价,也不存在此类需触达的司机 |
| 货主多次修改拦标价 | 已确认:凡仍处于「因报价过高而失败」状态的司机均再次推送;消息累积多条,点击任一条展示最新拦标价;司机提交时按最新拦标价实时校验。推送频次控制不在本需求范围(归货主修改运费相关功能点控制) |
| 司机已在本次调价后完成重新报价 | 已确认:① 报价成功 → 该运单相关消息(含其余未点击消息)全部失效;② 报价仍失败 → 消息保持有效,等待货主下次调价后再次推送 |
| 司机收到消息后货源已失效 / 已成交 | 已确认:货源已失效即订单已关闭;已成交即订单已完成,同属订单关闭状态之一。司机无法报价,提示「订单已关闭」或「已下架」,该消息失效 |
| 司机未响应消息 | 已确认:消息长期有效,直至司机报价成功 / 订单关闭 / 司机所选报价日期当天计划数为 0;货源维持原有状态,不重复打扰 |
| 场景1 司机重新报价超出新拦标价 | 已确认:该次报价仍属报价失败(沿用原有上限校验拦截);状态回到「因报价过高而失败」,等待货主再次修改拦标价 |
| 场景1 司机重新报价触发报价下限 | 已确认:触发阻断值 → 无法提交;触发提醒值 → 按提醒规则二次确认 |
| 司机所选报价日期当天计划数为 0 | 已确认:当日无库存,司机无单可接,相关消息失效 |
9. 需求确认要点
本版本相关业务细节已全部确认,无遗留待确认项。确认结论汇总如下:
| 序号 | 确认事项 | 确认结论 |
| 1 | 触达对象口径 | 仅「因报价高于原拦标价而失败」的司机;报价低于阻断值的情况不存在 |
| 2 | 触达方式 | 站内消息 / 推送 + 移动端首页弹窗(直至点击「不再提醒」);不使用短信 |
| 3 | 消息生命周期 | 长期有效;司机报价成功 / 订单关闭 / 司机所选报价日期当天计划数为 0 时失效 |
| 4 | 多条消息处理 | 累积多条、不去重;点击任一条均展示最新一次修改的拦标价 |
| 5 | 场景判定基准 | 司机提交时按当前最新拦标价实时校验,不锁定推送时的价格快照 |
| 6 | 报价日期 | 场景1、场景2 均需重新选择,且不做任何默认(场景2 可修改) |
| 7 | 二次确认 | 沿用提醒值判断规则:触发提醒值才弹二次确认,未触发则点击即提交 |
| 8 | 报价下限口径 | 场景判定中的「报价下限」指阻断值(硬下限) |
| 9 | 司机已完成重新报价 | 报价成功 → 该运单相关消息全部失效;报价仍失败 → 消息保持有效,待下次调价再推送 |
| 10 | 货主端范围 | 货主端界面不做任何改动;货主端调价生效触发司机端推送为核心逻辑 |
| 11 | 消息文案与有效期细节 | 文案为建议内容,最终以司机端产品文案输出为准 |