订单状态设计先画状态机,再画页面。用户需要知道订单现在在哪一步、为什么停留、下一步能做什么。用在线原型设计连接付款、处理、部分成功和退款路径,能及时发现“处理中”覆盖太多情况的问题。

把业务状态翻译成用户语言
| 内部状态 | 用户看到的标题 | 可提供的动作 |
|---|---|---|
| 待支付 | 等待付款 | 继续支付、修改支付方式 |
| 处理中 | 订单正在处理 | 查看预计进度或取消条件 |
| 部分成功 | 部分商品已完成 | 查看未完成项目、联系客服 |
| 退款中 | 退款申请处理中 | 查看进度和到账说明 |
状态标题不应直接暴露内部枚举值。时间、金额和对象范围要就近显示,让用户知道这条状态属于哪一单、哪一项。
每次变化都给出原因
支付失败、库存不足和人工审核不是同一个“异常”。在状态时间线中保留发生时间和简短原因,给出重试、修改或联系客服的动作。重试前要说明是否会重复扣款,避免用户连续提交。

部分成功单独建模
一个订单含多个商品时,订单级状态和商品级状态可能不同。页面先给整体摘要,再列出每个对象的完成、取消或退款状态;不要因为一件商品失败就把全部订单写成失败。
客服入口放在需要的位置
客服入口应带上订单编号和当前状态,减少重复描述。若只能提交工单,应说明响应时间或查询入口;无法确认的承诺不要写成固定时效。
连通一条异常路径
原型至少覆盖支付成功、支付失败后重试、部分成功和退款中四条路径。检查回到列表后状态是否同步,浏览器返回是否会重复提交,以及客服入口是否保留上下文。
先画状态机再写页面文案
把支付、库存、履约和退款分别看作状态来源,避免在页面里把多个系统状态拼成一句模糊话。每条转换写明触发事件、用户可见动作和失败回退;内部重试不一定要暴露为用户动作,但必须有可查询的结果。
订单被取消后,是否还能恢复支付、是否需要重新下单,要在状态机中明确。退款可能经历申请、审核和到账,用户看到的是进度和时间范围,而不是后台接口名称。无法确认到账时间时,用“以支付渠道处理为准”等限定,不编造固定承诺。
部分成功的商品清单
三件商品中两件已发货、一件缺货时,订单摘要显示“2件已发货,1件待处理”,并为缺货项提供取消或联系客服。整体订单仍可查看物流和退款信息,不能只显示一枚红色失败标签。
订单页评审清单
- 状态标题是否能对应到具体订单和商品?
- 异常是否解释原因、影响和下一步?
- 重试、取消、退款按钮是否有重复提交保护?
- 列表、详情、通知和客服入口是否显示同一状态?
时间线和通知保持一致
状态时间线上的时间要说明是下单、处理还是更新时间。时区或日期跨天时,使用用户所在时区并提供完整时间查看方式。订单列表、详情页和通知卡片不能一个写“待处理”、另一个写“处理中”,状态来源要统一。
客服入口旁可以带上订单编号和当前状态,但不要把用户的完整支付信息自动暴露给客服。涉及退款或取消时,确认页说明影响范围,用户返回后仍能在时间线看到操作结果。
测试时模拟重复点击、浏览器返回、网络超时和后台状态变化。任何情况下都要避免重复支付、重复取消或让用户找不到最终状态。
状态、动作与数据一致
每个状态都配一组允许动作,动作不可用时说明条件。支付已受理后隐藏再次支付,退款处理中保留查询而非重复申请。按钮执行后先进入处理中,再根据服务结果转为成功、失败或待确认。
订单列表使用摘要状态,详情页提供完整时间线;两者都指向同一个订单编号和更新时间。后台状态变化后,用户刷新页面应得到同一结果,通知也不应重复发送。
把订单号、商品行和客服上下文作为原型数据贯穿各画板,测试人员才能验证部分成功和重试路径,而不是只看漂亮的状态卡片。
把订单信息分层展示
首屏先显示状态、订单编号和下一步,商品清单、支付信息和物流详情按任务分组。错误原因和客服入口靠近受影响的商品,避免用户在长页面底部寻找。对不确定的时间使用“预计”或“以渠道为准”等限定。
状态改变时,页面保留前一状态的时间线,帮助用户理解为什么从处理中变成退款中。通知卡片只显示必要摘要,点击后回到同一订单详情,不制造另一套状态。
订单状态设计还要考虑权限:客服、买家和管理员看到的动作不同,但状态含义必须一致。敏感信息只在有权限的区域展示,并提供遮蔽和复制规则。
交付时保护重复操作
订单页面交付需列出每个状态允许的动作、重复点击保护、超时查询和部分成功展示。状态文案、时间线和通知使用同一份词汇表,客服入口只携带必要的订单上下文。
如果某个状态取决于支付或库存服务,设计稿标注数据来源和未知结果处理,不用静态成功画面代替。
把未知结果单独测试
支付超时、退款查询失败和后台状态延迟都属于未知结果,不应直接归类为失败。原型和测试数据中分别标出查询、等待和联系客服路径,验证用户不会重复操作。
用一单多件验证状态层级
准备同一订单含已发货、处理中和退款中的三件商品,分别检查订单摘要、商品行、时间线和通知。只要一处把整体状态覆盖商品状态,用户就会误解下一步。
将重复支付、后台延迟和客服查询作为异常路径,确认每条路径都能解释当前状态并避免重复操作。
状态模型确定后,页面、通知、客服和数据报表都使用同一套名称。任何新增状态先补状态机和异常路径,再补按钮和文案,避免线上出现用户无法理解的中间状态。
将状态机中的每条异常转换转成一条可点击路径,评审时逐项检查按钮和通知。没有路径的状态不要上线,否则用户会停在无法行动的页面。
状态机中的“待确认”应有明确查询入口和最终期限,不能长期停在中间态。页面可以提供刷新或订阅通知,但不应通过重复点击来推动后台处理。