对于电商系统来说,下订单的服务是相当重要的。下订单服务的好与坏甚至影响到用户的体验,以及后续是否再次购买等行为。近期对于我们系统的下订单业务进行梳理,总结如下。
一般的下单流程
1. 用户挑选相应的商品放入购物车;
2. 点击购买,进入订单详情页(这一页也可以通过购物车页,点选商品之后进入);
3. 点击下单,生成相应的订单;
4. 点击支付进入支付环节;
我们主要分析第3步:
前端请求提交了相应的订单详情页数据进来;
后台服务接收请求,在各情况下所使用技术策略不会是一成不变的,而是为了应对各种场景而采用了不同的实现方案,下面我们就来分析两种场景。一种场景是普通的下单;另一种场景是秒杀。
普通的下单:
前端请求提交了订单详情页的数据至订单提交服务,后台服务接收请求,后台服务的一般处理步骤:
1. 校验数据的正确性、合法性,这涉及几个方面:库存、商品价格检查、使用促销规则、商品售卖区域校验等;
2. 数据模型的转化,将商品模型转化为订单模型,主要包括订单、订单详情两部分;
3. 订单额度计算;
4. 订单数据的写入数据库;
5. 订单写入成功消息投递;
6. 返回前端调用;
在这6步中,其中只有第4步是需要直接操作数据库(一般情况下都是mysql数据库)的。为什么这么说呢?原因是其他几步要么是内存计算,要么需要的数据是可以进行缓存的。比如库存,它是