购物车是电商APP的一个关键功能点,一般购物车包含 3~4 个页面,分别是:

1.购物车的商品列表页
2.商品下单页
3.订单付款页面
4.订单付款成功页面

由于现有购物车逻辑相对混乱,这里重新整理一下商品下单页的业务流程设计

1.生成订单

这里在业务层面把订单的生命周期划分为4个阶段,分别是:

  • 订单的初始阶段
  • 订单的完备阶段
  • 订单的支付阶段
  • 订单的服务阶段

1.1 订单的初始阶段

订单的初始阶段是在 购物车商品列表页开始的,订单的初始阶段确定了商品的种类各个商品的初始数量
此时订单金额只包含 货品的总金额。在后续订单的完备阶段,因为有修改货品数量、运费、服务增值、优惠活动等,订单金额和商品数量还会继续变动。
PS. 在这里,商品的种类 包括 商品的类别、具体型号、配置(比如笔记本电脑->型号->配置->颜色)在加入购物车时就已经确定了。

1.2 订单的完备阶段

订单完备阶段是在商品下单页完成的
订单完备阶段是 将一笔订单的 所有交易信息 补充完备,订单的完备信息包括 1.配送信息(配送方式、时间、运费)
2.商品数量 (可在下单时确定)3.发票信息 4.服务增值(退换、保修)。所有交易信息完备后订单金额已确定,进入支付阶段。

1.3 订单的支付阶段

订单的支付阶段是在订单付款页面完成的。

订单的支付阶段,用户在此阶段可以选择支付方式完成付款,也可以取消支付,在订单管理页面继续处理订单。
订单支付完成后进入订单服务阶段。

1.4 订单的服务阶段

订单服务阶段包括 未完成支付订单的后续处理,其操作包括继续支付编辑订单取消订单
对于已完成支付的订单,可能的处理有 确认收货商品交易评价退货退款查看发票等操作,

订单进入服务阶段后,一般意味着订单生命流程的结束,后续只需要对订单数据进行维护管理就可了。

2.下单页 业务流程概要设计

根据之前的分析,下单页对应着订单生命流程中的订单完备阶段,

订单完备阶段概要设计如下:

1.用户在购物车商品列表页选定商品种类和各个商品数量。
2.点击确认购买,将商品种类和商品数量 通过接口提交给后端。
3.后端接到请求后,校验 商品的有效性(库存、是否下架)若无效,返回错误信息,停留在购物车商品列表页。
4.若请求有效,服务端生成临时订单号,将临时订单 的信息(商品信息物流信息发票信息服务增值等)返回给APP端(包括临时订单号)进入下单页。
5.app端展示订单信息后,商品信息、物流信息、发票信息、服务增值等改动通过各自相关接口 更新服务端数据
6.如果此时退出下单页面,临时订单保持 3个小时的时效性。用户再次下单时,后端清除超时的临时订单。
如果用户停留在下单页超时,确认订单时返回错误信息提示用户订单超时已失效,请重新下单。这个操作可以兼容账号多端登录同时下单。
7.用户点击确认订单,将本地临时订单号上传,服务端将临时订单转为正式订单,返回正式订单号,进入订单支付阶段,并将订单状态置为待支付状态,等待支付。同时更新购物车商品列表。
8.用户支付完毕后,维护对应的订单号,订单完成支付阶段进入订单服务阶段。此时订单信息不可人为修改。
9.若用户没有完成支付,返回到其他页面,或直接退出APP,此订单成为待支付订单,在订单服务阶段进行处理。

至此,下单页的业务流程完毕,接下来就是订单维护阶段的工作了,且听下回分解。

认识问题,解决问题 -> 行行无bug的背后,是全面缜密的思考