先说一个观察:多数订单系统上线后不好用,不是因为功能少,而是因为异常情况下不知道该怎么办。
客户要改数量、要提前交期、要退货、要拆单发货——这些在设计初期往往被忽略,等发生时才发现系统里没有对应的处理方式,于是大家绕开系统用微信处理。
状态机:从正常流程开始
一个制造业订单的常见状态流转:
| 状态 | 说明 | 谁操作 |
|---|---|---|
| 待确认 | 订单已创建,等待内部确认(产能、价格) | 业务员 |
| 已确认 | 确认可接单 | 主管 |
| 生产中 | 进入生产/采购环节 | 生产/采购 |
| 待发货 | 已完成,等待物流 | 仓库 |
| 部分发货 | 分批交付 | 仓库 |
| 已发货 | 全部发出 | 仓库 |
| 已完成 | 客户签收且无异议 | 业务员 |
| 已取消 | 取消(需记录原因) | 主管 |
表:本表为作者依据行业公开资料整理,具体数值随企业情况而异。
八个状态对中小企业可能偏多。最小可用版本是五个:待确认 → 已确认 → 生产中 → 已发货 → 已完成,加上"已取消"作为异常出口。
设计状态机的一个原则:每个状态都要对应一个明确的负责人。如果一个状态没有人负责推进,订单就会卡在那里。
异常分支:这才是重点
一、订单变更
客户下单后改需求,是最常见的异常。
| 变更类型 | 处理方式 |
|---|---|
| 改数量 | 生成变更记录,重新计算金额,交期重新评估 |
| 改规格 | 如已投产,需评估损失;未投产则直接改 |
| 改交期 | 提前需评估产能,延后需通知客户并确认 |
| 拆单发货 | 支持一个订单多次发货,记录每次发货明细 |
表:本表为作者依据行业公开资料整理,具体数值随企业情况而异。
所有变更必须留痕,且要记录成本影响与责任归属(是客户原因还是我方原因)。
二、取消与退款
取消订单需要明确:
- 取消时点(未投产 / 已投产 / 已发货)
- 损失承担(客户违约金 / 我方承担)
- 已付款项的处理
系统应该强制填写取消原因和损失金额,这些数据在后期分析时很有价值(哪些客户经常取消?哪类产品容易取消?)。
三、缺货与延期
当订单无法按期完成时,系统应该:
- 提前预警(在交期前 N 天检查进度)
- 触发通知(自动通知业务员,由业务员联系客户)
- 记录延期原因
一个关键设计:延期应该由系统提前发现,而不是由客户来问。在交期前 3 天检查所有未完成订单,把有风险的列出来——这一个动作能显著减少客户投诉。
与库存的联动
订单系统如果与库存打通,能自动做三件事:
| 联动 | 作用 |
|---|---|
| 下单时预占库存 | 避免超卖 |
| 发货时扣减库存 | 实时准确 |
| 缺货时提示 | 及时采购或通知客户 |
表:本表为作者依据行业公开资料整理,具体数值随企业情况而异。
最小设计:订单确认时预占库存(可用库存 = 总库存 - 预占),发货时扣减,取消时释放。
需要注意:预占不等于扣减。很多系统的错误是在下单时就扣减库存,导致取消订单后库存数据错乱。
与生产环节的联动
对有生产环节的企业,订单需要驱动生产:
| 环节 | 联动方式 |
|---|---|
| 订单确认 → 生成生产任务 | 自动创建,含数量、规格、交期 |
| 生产完成 → 更新订单状态 | 生产报工时自动回写 |
| 质检结果 → 影响发货 | 不合格则拦截发货 |
表:本表为作者依据行业公开资料整理,具体数值随企业情况而异。
这一层的实现复杂度较高,建议在订单系统跑通后再做。
订单变更的记录规范
每一次变更,至少记录四项:
| 字段 | 说明 |
|---|---|
| 变更时间 | 精确到分钟 |
| 变更内容 | 改了什么(原值 → 新值) |
| 变更原因 | 为什么改 |
| 影响 | 金额变化、交期变化 |
表:本表为作者依据行业公开资料整理,具体数值随企业情况而异。
有了这些记录,后期对账和争议处理都有据可查。
一个务实的设计建议:先做状态,再做联动
分两期:
第一期:订单台账 + 状态流转 + 变更留痕(不联动库存和生产)
第二期:与库存联动 → 与生产联动
第一期就能解决"订单到哪一步了"这个最核心的问题,且实现简单、员工容易接受。第二期的复杂度高,等第一期跑顺再做。
常见错误
| 错误 | 后果 | 规避 |
|---|---|---|
| 状态过多 | 员工不知道选哪个,随便选 | 控制在 5–8 个,每个状态定义清晰 |
| 没有异常出口 | 异常情况只能绕开系统 | 必须设计"取消""挂起"状态 |
| 变更无留痕 | 争议时无据 | 强制记录变更 |
| 下单即扣库存 | 取消后库存错乱 | 用预占而非扣减 |
| 无交期预警 | 客户来问才发现要延期 | 交期前自动检查 |
表:本表为作者依据行业公开资料整理,具体数值随企业情况而异。
“订单系统的价值不在于记录了多少订单,在于有没有让延期和异常提前暴露。”— 初元AI 团队
做一套订单管理要多久?+
看是否需要与库存和生产联动。如果只是记录订单状态和交付情况(不需要联动),2–4 周可以完成并上线。如果需要库存预占、生产任务生成、质检拦截等联动,通常需要 6–10 周,且复杂度显著上升。建议先做不联动的版本跑通,验证流程后再逐步加联动——一次性做全套,需求变更的风险很高。
员工老是忘记更新订单状态怎么办?+
两个方向。一是让状态更新与其他必要动作绑定:比如发货必须扫码或录入物流单号,这个动作同时触发状态更新,不需要额外操作。二是设置超时提醒:某状态超过设定天数未推进,自动提醒负责人。根本上说,如果更新状态需要额外的专门操作,就一定会被忘记——好的设计是让状态更新成为其他动作的副产品。
分批发货怎么处理?+
系统需要支持一个订单对应多条发货记录。每次发货记录:发货日期、数量、物流单号、承运方。订单状态显示"部分发货",全部发完后自动变为"已发货"。关键是每次发货的明细要清晰,便于客户核对和后期对账。另外要处理好"部分发货"状态下的收款和开票问题——这些通常在订单备注或财务模块里单独约定。
本文状态机设计为通用性建议,具体流程应结合企业实际业务调整。