电商系统购物车模块设计
在电商系统中,购物车模块是用户购买流程的核心环节,其设计的合理性直接影响用户体验和销售转化率。本文将深入探讨电商系统购物车模块的设计要点,供大家参考。
在电商系统中,购物车是核心模块之一,用户在浏览商品过程中,可将心仪商品添加到购物车,待浏览完毕后统一结算购买。所以一份合理高效的购物车设计,对于提升用户体验、促进销售转化、降低运营成本等方面都有着至关重要的作用。
由于购物车属于核心模块,为讲的更清晰,所以针对购物车会拆分几期来讲解
本期针对商品加入购物车、购物车中移除商品、更新购物车中的商品数量、商品库存不足、失效商品等场景输出产品解决方案
1、结构设计
2、添加逻辑
1)查询商品在购物车是否存在
用户点击 “添加到购物车” 按钮时,系统首先通过商品ID和SKU ID查询购物车数据结构中是否存在该商品
2)更新总价格:
同时实时计算购物车的总价等信息,如:单价×数量
3) 存储:
3、示例:
用户首次添加商品A(ID=1001),数量为1,购物车新增条目,并顶部显示该商品。用户再次添加同一商品A时,数量变为2,商品A继续置顶。
1、移除方式:
2、移除逻辑
1)单个移除:
2)批量移除:
3、异常处理
4、示例
1、数量增加 / 减少
1)增加数量:
2)减少数量 :
2、实现逻辑说明
1)输入校验:
2)更新逻辑:
3、交互设计:
4、示例:
1、场景处理
1)加购时库存不足:
当添加商品到购物车时,若库存不足,系统自动修正为最大库存值并提示“库存不足,当前最大可购买X件”,达到限制该商品的添加数量,使其不能超过库存数量
2)已加购后库存不足
已加购的商品出现库存不足时,系统需更新购物车数据结构中该商品的状态为 “库存不足”,在购物车页面将其置灰且不可勾选,并显示 “缺货” 提示,同时禁止将其加入结算
2、实现逻辑说明
1)购物车实时校验:
每次打开或刷新购物车时,需调用库存服务校验商品可用库存
2)数量变更时库存实时校验:
3)库存不足时:
1、场景处理
1)已售罄商品 :
已加入购商品售罄时,系统需将其在购物车数据结构中的状态标记为 “售罄”,在购物车页面将其置灰且不可勾选,并显示 “已售罄” 提示,同时禁止将其加入结算
2)下架商品 :
已加入购商品下架时,系统需将其在购物车数据结构中的状态标记为 “已下架”,在购物车页面将其置灰且不可勾选,并显示 “已下架” 提示,同时禁止将其加入结算
3)区域限制 :
已加入购商品存在购买区域限制,当不在其销售区域内时,系统需将其在购物车数据结构中的状态标记为 “不在配送区域”,并显示 “不在配送区域” 提示,同时禁止将其加入结算
2、实现逻辑说明
1)处理流程:
2)标记状态:
根据处理结果,将商品状态设为“失效”,并记录原因(如“已下架”)
3)界面提示:
3、示例:
1、移除商品失败:
如网络错误,前端重试机制 +提示“删除失败,请重试”,并保留原数据
2、更新数量时库存不足:
自动修正为最大库存 + 提示“库存不足,当前最大可购买X件”;且前端限制输入,后端返回错误码,阻止操作。
3、商品失效:
实时更新状态,禁止结算并提示用户。
4、批量操作冲突:
如同时修改数量和删除,使用事务确保操作原子性,失败时回滚。
5、区域限制变更:
如地址修改,重新校验购物车商品,动态更新可售状态
用户依次添加
购物车列表顺序为:
用户在购物车中有以下商品:
交互:
首先,商品添加到购物车需要考虑到两种情况:已存在和首次添加;以及置顶需要考虑到维护一个时间戳或者顺序字段,按最新操作排序。
接下来需要考虑到更新商品数量,需要检查库存是否足够问题,以及失效商品处理场景,比如下架、售罄、区域限制等
移除商品时,需要考虑到单删和批量删除,要确保数据结构中正确找到对应的条目并删除
最后把这些点整合成一个结构化的思路。如数据结构设计、核心流程、异常处理、存储方案等。输出一份最佳的产品解决方案
作者:pemg的笔记 公众号:pemg的笔记
本文由 @pemg的笔记 原创发布于人人都是产品经理。未经作者许可,禁止转载
题图来自 Pixabay,基于CC0协议
该文观点仅代表作者本人,人人都是产品经理平台仅提供信息存储空间服务