先说一个观察:多数订单系统上线后不好用,不是因为功能少,而是因为异常情况下不知道该怎么办。

客户要改数量、要提前交期、要退货、要拆单发货——这些在设计初期往往被忽略,等发生时才发现系统里没有对应的处理方式,于是大家绕开系统用微信处理。

状态机:从正常流程开始

一个制造业订单的常见状态流转:

状态说明谁操作
待确认订单已创建,等待内部确认(产能、价格)业务员
已确认确认可接单主管
生产中进入生产/采购环节生产/采购
待发货已完成,等待物流仓库
部分发货分批交付仓库
已发货全部发出仓库
已完成客户签收且无异议业务员
已取消取消(需记录原因)主管
表:本表为作者依据行业公开资料整理,具体数值随企业情况而异。

八个状态对中小企业可能偏多。最小可用版本是五个:待确认 → 已确认 → 生产中 → 已发货 → 已完成,加上"已取消"作为异常出口。

设计状态机的一个原则:每个状态都要对应一个明确的负责人。如果一个状态没有人负责推进,订单就会卡在那里。

异常分支:这才是重点

一、订单变更

客户下单后改需求,是最常见的异常。

变更类型处理方式
改数量生成变更记录,重新计算金额,交期重新评估
改规格如已投产,需评估损失;未投产则直接改
改交期提前需评估产能,延后需通知客户并确认
拆单发货支持一个订单多次发货,记录每次发货明细
表:本表为作者依据行业公开资料整理,具体数值随企业情况而异。

所有变更必须留痕,且要记录成本影响与责任归属(是客户原因还是我方原因)。

二、取消与退款

取消订单需要明确:

  • 取消时点(未投产 / 已投产 / 已发货)
  • 损失承担(客户违约金 / 我方承担)
  • 已付款项的处理

系统应该强制填写取消原因和损失金额,这些数据在后期分析时很有价值(哪些客户经常取消?哪类产品容易取消?)。

三、缺货与延期

当订单无法按期完成时,系统应该:

  • 提前预警(在交期前 N 天检查进度)
  • 触发通知(自动通知业务员,由业务员联系客户)
  • 记录延期原因
一个关键设计:延期应该由系统提前发现,而不是由客户来问。在交期前 3 天检查所有未完成订单,把有风险的列出来——这一个动作能显著减少客户投诉。

与库存的联动

订单系统如果与库存打通,能自动做三件事:

联动作用
下单时预占库存避免超卖
发货时扣减库存实时准确
缺货时提示及时采购或通知客户
表:本表为作者依据行业公开资料整理,具体数值随企业情况而异。

最小设计:订单确认时预占库存(可用库存 = 总库存 - 预占),发货时扣减,取消时释放。

需要注意:预占不等于扣减。很多系统的错误是在下单时就扣减库存,导致取消订单后库存数据错乱。

与生产环节的联动

对有生产环节的企业,订单需要驱动生产:

环节联动方式
订单确认 → 生成生产任务自动创建,含数量、规格、交期
生产完成 → 更新订单状态生产报工时自动回写
质检结果 → 影响发货不合格则拦截发货
表:本表为作者依据行业公开资料整理,具体数值随企业情况而异。

这一层的实现复杂度较高,建议在订单系统跑通后再做。

订单变更的记录规范

每一次变更,至少记录四项:

字段说明
变更时间精确到分钟
变更内容改了什么(原值 → 新值)
变更原因为什么改
影响金额变化、交期变化
表:本表为作者依据行业公开资料整理,具体数值随企业情况而异。

有了这些记录,后期对账和争议处理都有据可查。

一个务实的设计建议:先做状态,再做联动

分两期:

第一期:订单台账 + 状态流转 + 变更留痕(不联动库存和生产)

第二期:与库存联动 → 与生产联动

第一期就能解决"订单到哪一步了"这个最核心的问题,且实现简单、员工容易接受。第二期的复杂度高,等第一期跑顺再做。

常见错误

错误后果规避
状态过多员工不知道选哪个,随便选控制在 5–8 个,每个状态定义清晰
没有异常出口异常情况只能绕开系统必须设计"取消""挂起"状态
变更无留痕争议时无据强制记录变更
下单即扣库存取消后库存错乱用预占而非扣减
无交期预警客户来问才发现要延期交期前自动检查
表:本表为作者依据行业公开资料整理,具体数值随企业情况而异。
“订单系统的价值不在于记录了多少订单,在于有没有让延期和异常提前暴露。”— 初元AI 团队
做一套订单管理要多久?+
看是否需要与库存和生产联动。如果只是记录订单状态和交付情况(不需要联动),2–4 周可以完成并上线。如果需要库存预占、生产任务生成、质检拦截等联动,通常需要 6–10 周,且复杂度显著上升。建议先做不联动的版本跑通,验证流程后再逐步加联动——一次性做全套,需求变更的风险很高。
员工老是忘记更新订单状态怎么办?+
两个方向。一是让状态更新与其他必要动作绑定:比如发货必须扫码或录入物流单号,这个动作同时触发状态更新,不需要额外操作。二是设置超时提醒:某状态超过设定天数未推进,自动提醒负责人。根本上说,如果更新状态需要额外的专门操作,就一定会被忘记——好的设计是让状态更新成为其他动作的副产品。
分批发货怎么处理?+
系统需要支持一个订单对应多条发货记录。每次发货记录:发货日期、数量、物流单号、承运方。订单状态显示"部分发货",全部发完后自动变为"已发货"。关键是每次发货的明细要清晰,便于客户核对和后期对账。另外要处理好"部分发货"状态下的收款和开票问题——这些通常在订单备注或财务模块里单独约定。
本文状态机设计为通用性建议,具体流程应结合企业实际业务调整。