mall商城下单流程

zszdevelop大约 2 分钟

mall商城下单流程

该篇文章主要参考mall官方文档open in new window,并结合自己的使用感受做的一些笔记

1. 流程

1.1 将商品添加进购物车

  1. 点击直接购买的商品也需要将商品加入购物车,然后从购物车结算(只是程序帮我们做了)
  2. 添加进购物车时,需要将商品加入购物车时价格、商品主图,名称等基本信息就记录下来,以免商品修改导致的前后不一致问题

1.2 根据购物车信息生成确认单

  1. 根据购物车id列表生确认单
  2. 确认单包含
    1. 促销信息
    2. 用户收货地址
    3. 可用的优惠券信息
    4. 积分和积分使用规则
    5. 计算金额
      1. 总金额
      2. 应付金额
      3. 优惠金额

1.3 生成订单

选择确认单中的优惠券,收货地址

  1. 需要的参数
    1. 选中的购物车商品id列表
    2. 收货地址
    3. 优惠券id
    4. 支付方式
  2. 流程
    1. 获取购物车及优惠信息
      1. 根据商品id列表获取商品信息
        1. 获取用户id的获取购物车中的商品信息
          1. **为什么不直接通过购物车id去查?**因为担心用户在其他客户端已删除商品
        2. 判断是否包含购物车id,有则添加
      2. 计算优惠后的商品信息
        1. 先根据productId对CartItem进行分组,以spu为单位进行计算优惠
        2. 查询所有商品的优惠相关信息
        3. 根据商品促销类型计算商品促销优惠价格(计算促销还比较麻烦)
          1. 促销类型:0->没有促销使用原价;1->使用促销价;2->使用会员价;3->使用阶梯价格;4->使用满减价格;5->限时购
        4. 计算库存
          1. 获取sku的库存信息-锁定的库存信息
    2. 生成下单商品信息
    3. 判断购物车中商品是否都有库存
    4. 判断使用使用了优惠券
    5. 判断是否使用积分
    6. 计算order_item的实付金额
    7. 进行库存锁定
    8. 根据商品合计、运费、活动优惠、优惠券、积分计算应付金额
    9. 收货人信息:姓名、电话、邮编、地址
    10. 计算赠送积分、成长值
    11. 设置自动收货天数
    12. 插入order表和order_item表
    13. 如使用优惠券更新优惠券使用状态
    14. 如使用积分需要扣除积分
    15. 删除购物车中的下单商品
    16. 发送延迟消息取消订单

2. 疑问

2.1 什么时候锁的库存?

​ 在生成订单的时候,用户支付前。进行锁定

Loading...