一、官网用户下单
该模块内容主要包含3个内容:
(1)产品选购页---立即购买、加入购物车
(2)购物车页面---立即购买
(3)订单确认页---提交订单
其中,产品选购页面包含了加入购物车的入口,同时也包含直接进入订单确认页的入口。购物车页面通过勾选多个商品后点击立即购买进入订单确认页,区别在于,首先,产品选购页面是单个产品规格,而购物车页面可选择多个商品;其次,选购商品页面调用接口时需要把选购的参数都传给后端,而购物车页面一开始加入购物车时就已经将参数保存过,所以提交时仅需要将购物车中的id传给后端,此时两个接口返回的都是一个暂时保存商品的缓存标识(验签),拿着这个验签进入订单确认页后获取缓存中的数据回显,最后点击订单确认按钮提交缓存,值得注意的是,该缓存仅在后端保留3分钟的期限,3分钟内不点击提交订单按钮该缓存失效。
二、后端代下单
背景:创建人代替购买人下单,购买人不需要选择自己去手动选择产品规格属性等,下单的整个流程不需要走一遍,当创建人下单后,订单会自动流转到购买人角色下,购买人只需要点击确认订单即可。
该模块涉及到3个部分内容:
(1)购买人信息填写(为谁下的单子)
(2)选购商品页
(3)订单确认页(购买人信息+商品信息)
该部分内容前端需要注意如何设计表单,第一步和第二步是同一个接口,所以建议采用v-show的方式展示。第三步由于也是通过验签的方式获取缓存信息,按钮点击上一步或下一步时需要重新获取缓存,所以不能使用v-show,采用v-if。
需要注意在创建、编辑、以及提交订单时的判断逻辑。在创建订单时,首先第一次选择商品新增后,接口参数需要将第一步购买人信息带上,接口返回一个草稿id,页面缓存,后续再次编辑商品时需要传递该缓存id,不需要带上第一步的购买人信息。提交订单后,下单的多个商品被拆成多个订单流转给购买人确定。