mall商城下单流程
...大约 2 分钟
mall商城下单流程
该篇文章主要参考mall官方文档,并结合自己的使用感受做的一些笔记
1. 流程
1.1 将商品添加进购物车
- 点击直接购买的商品,也需要将商品加入购物车,然后从购物车结算(只是程序帮我们做了)
- 添加进购物车时,需要将商品加入购物车时价格、商品主图,名称等基本信息就记录下来,以免商品修改导致的前后不一致问题
1.2 根据购物车信息生成确认单
- 根据购物车id列表生确认单
- 确认单包含
- 促销信息
- 用户收货地址
- 可用的优惠券信息
- 积分和积分使用规则
- 计算金额
- 总金额
- 应付金额
- 优惠金额
1.3 生成订单
选择确认单中的优惠券,收货地址
- 需要的参数
- 选中的购物车商品id列表
- 收货地址
- 优惠券id
- 支付方式
- 流程
- 获取购物车及优惠信息
- 根据商品id列表获取商品信息
- 获取用户id的获取购物车中的商品信息
- **为什么不直接通过购物车id去查?**因为担心用户在其他客户端已删除商品
- 判断是否包含购物车id,有则添加
- 获取用户id的获取购物车中的商品信息
- 计算优惠后的商品信息
- 先根据productId对CartItem进行分组,以spu为单位进行计算优惠
- 查询所有商品的优惠相关信息
- 根据商品促销类型计算商品促销优惠价格(计算促销还比较麻烦)
- 促销类型:0->没有促销使用原价;1->使用促销价;2->使用会员价;3->使用阶梯价格;4->使用满减价格;5->限时购
- 计算库存
- 获取sku的库存信息-锁定的库存信息
- 根据商品id列表获取商品信息
- 生成下单商品信息
- 判断购物车中商品是否都有库存
- 判断使用使用了优惠券
- 判断是否使用积分
- 计算order_item的实付金额
- 进行库存锁定
- 根据商品合计、运费、活动优惠、优惠券、积分计算应付金额
- 收货人信息:姓名、电话、邮编、地址
- 计算赠送积分、成长值
- 设置自动收货天数
- 插入order表和order_item表
- 如使用优惠券更新优惠券使用状态
- 如使用积分需要扣除积分
- 删除购物车中的下单商品
- 发送延迟消息取消订单
- 获取购物车及优惠信息
2. 疑问
2.1 什么时候锁的库存?
在生成订单的时候,用户支付前。进行锁定
赞助