# 订单笔记 ## 流程 ```mermaid graph TB a(选中购物车中的商品/商品页的商品直接购买) --进入提交页前,检查逻辑--> b{检查该商品的规格库存是否足够} --库存不足--> e1[抛出异常,交由前端处理] --返回前端--> e2(由购物车来,则返回购物车处.
ps:进入购物车页面后,需要检查库存量是否够.
如果不够,则将购物车的商品数量重置到满足条件的数量
若没有库存,则需要提示) b --库存足够--> c[则查询相关订单页面相关信息:
1.获取用户的默认收货地址信息
2.按店铺,将商品的规格分组] --返回前端页面---> d[前端页面计算商品的价格.由于服务端不计算金额
所以前端不止要计算商品的金额,还需要计算有关优惠券的金额减免.] ----> f[前端选择优惠券,计算价格
最终决定下单的数据
1.按店铺分组的商品规格的信息列表
2.优惠券使用的情况
3.顾客的邮寄地址
] ----> g{检查库存,优惠卷} --检查失败--> e3(抛出异常,提示库存/优惠卷不符合条件.返回前端) g--检查成功--> h(计算出价格,将明细补全.
若是平台优惠,按比例生成.店铺优惠,跟着店铺走.
生成大订单,整理数据,请求微信支付,将结果返回给前端.等待支付) ----> i[前端支付] i----> i1(若超过支付限时,则服务端需要关闭订单) i----> j[收到回调函数,将大订单按店铺拆分,整理成用户实际看到的店铺订单.
ps:未支付订单和已支付的订单不一样] ```