我从刚开始做产品起,就只想做电商,对医疗、教育类的都不太感兴趣。公司转型做电商,整个电商模块重构,有幸负责购物流程优化,之后支付中心和订单中心都会相继优化,今天先来讲购物车。
一、购物车目的
任何产品功能都有目的,App端的购物车就好比我们在超市的手推车购物车。
对用户来说,主要有:批量结算、商品收藏和价格对比三种作用。
从产品角度来讲,我最开始做这个需求时,觉得是为了提高订单转化率,之后和leader交流,知晓根本目的是提高客单价,订单转化率之类的只是辅助数据指标。除此之外,根据用户购物车商品数据做商品推荐,解决同一店铺下多件商品运费问题等也是目的之一。
二、购物车的功能模块
原型之前,用Xmind罗列出所有的功能点,确定要做什么,做到心中有图,心中有规划,这样可以避免原型反复修改,提高原型效率。
由于开发时间的原因,商品属性编辑、优惠券、活动降价引导、活动预热、满减活动凑单页条件筛选、结算拆单、购物车唤醒(文中红色X标注的)等功能放在下个版本中完成。
三、主要功能讲解
3.1 购物车列表
每次进入购物车或者刷新购物车都会调购物车列表接口,给用户展示购物车商品信息。列表的关键在组合类型和排序,前提条件是用户已登录。
组合类型
- 同一商家下的满减活动:满减活动下的SKU全部来自同一商家,按商家维度打包到一起,成为一个组合;
- 跨商家满减活动:满减活动下的SKU只要有SKU来自不同的商家,按活动维度打包到一起,成为一个组合;
- 无满减活动:按商家维度组合。
异常情况:同一SKU同时满足活动维度和商家维度,优先活动维度。
如SKU1、SKU2和SKU3都是OPPO店的商品,但SKU2和SKU3参加了满100减10的活动,所以SKU2和SKU3在满减活动模块中,而不在商家模块下。
排序
- 组合内的SKU排序按照最新添加SKU排在第一的规则;
- 组合间的排序按照每个组合内最新SKU排在第一的规则。
如SKU1 添加购物车时间为2019/5/29,SKU2添加购物车时间为2019/5/27,则SKU1在组合内排在第一;
SKU3添加购物车时间为2019/5/28,SKU4添加购物车时间为2019/5/26,则SKU3在组合内排在第一;
因SKU1 添加购物车时间2019/5/29>SKU3添加购物车时间为2019/5/28,所以组合1排列在组合2之前。
异常情况:添加购物车时无法找到商品对应商家或者活动,提示“网络出错了”。
3.2 购物车商品
列表是由一个个商品组成的。购物车中的商品基本信息有:商品图片、商品名称、商品属性、商品价格和商品活动信息和商品数量组成。其中属性、活动信息和数量都会影响价格,关键在于活动信息和数量。
商品活动信息
购物车是电商平台内各种营销活动的最终载体,尤其是对于满减、满赠这样需要凑单的营销活动来说,更是重要。目前平台内做了三种活动:满减(满折、满赠)、秒杀和单品促销。每种活动展示各自活动的样式,目前只做了“进行中”样式,“未开始”状态,购物车预热、降价提醒、领券功能放入二期来做,如下:
商品数量
用户每次增减商品数量,系统调编辑接口、列表接口和结算接口。编辑接口校验库存和活动信息。
- 非活动商品:判断商品本身库存。
若购买数量超过商品可售库存,toast提示”您最多购买X件噢“。X指商品最多购买数量,见样式一; - 活动商品且活动有限购,始终文案提示“限购5件”;若增加数量超过活动库存,价格恢复活动前价格,文案提示“限购5件,超出恢复原价”,同时toast提示,见样式三;
- 参加活动的商品还需要校验活动库存,若超过活动可售库存,见样式一。
异常情况:购物车中无商品,空页面展示。
商品状态
进入购物车列表商品会出现两种异常情况:商品无货和商品下架。“无货”状态商品仍处于原位置,“下架”状态商品全部置于最底端。考虑点是:无货商品可能只是暂时没货,待库存补充后又可以售卖,但下架很大可能就是无法再售卖,所以置底。
3.3 结算
结算时要校验商品状态、商品库存、活动信息异常情况。
- 库存不足:若勾选商品中有库存不足的商品,弹窗提示。若点”取消“,刷新当前页面,将库存不足的商品取消勾选,库存不足的商品露出;若”移除无货商品“则继续购买。
- 商品下线:若勾选商品中有库存不足的商品,弹窗提示,刷新当前页面;若”移除失效商品“则继续购买;
- 活动信息发生变更:提示用户价格已发生变更,是否要以变更后的价格购买。
四、关于购物车的额外思考
1、进入购物车时引导登录还是在购物车结算时引导登录?
对用户来说很明显是结算时引导登陆更友好,但此时需要离线购物车功能,根据设备号记录哪个商品加入到哪个设备的购物车,用户登陆后合并设备下的离线购物车数据和账号下的在线购物车数据。目前京东、淘宝、唯品会、网易严选等主流电商平台均是结算时引导登陆,我们平台内的购物车还是进入购物车时引导登陆,这点应该会在下个版本中优化掉。
2、购物车上限商品数量?
购物车商品设置上限,主要是考虑接口性能。购物车本身承载着巨大的计算工作,如每点击数量增减,需要请求列表接口、编辑接口和结算接口,如果商品太多,接口请求速度会变得比较慢,影响用户体验。
3、是加入购物车时扣减库存还是下单时扣减库存?
像淘宝和京东这样的平台,用户添加购物车大多数是为了收藏,所以是下单时扣减库存,如果加入购物车时扣减库存,会造成大量库存被占用,实际又没有结算的浪费;而唯品会是加入购物车时就扣减库存,所以唯品会添加到购物车的商品到20分钟时会自动删除,也是为了避免库存被占用。目前平台采用的是下单扣减库存
购物车和商品系统、库存系统、活动系统、订单系统,我们金融电商,还和风控系统交互,算属于一个比较复杂的模块了,在此次产品设计中,得到了挺多锻炼。接下来会逐步讲解支付中心和订单中心。
做着自己感兴趣喜欢的工作,又有leader指导,还是那句话,一切都是最好的安排,感谢,感恩。