一、概述
在电商系统中,购物车是核心模块之一,用户在浏览商品过程中,可将心仪商品添加到购物车,待浏览完毕后统一结算购买。所以一份合理高效的购物车设计,对于提升用户体验、促进销售转化、降低运营成本等方面都有着至关重要的作用。
由于购物车属于核心模块,为讲的更清晰,所以针对购物车会拆分几期来讲解
本期针对商品加入购物车、购物车中移除商品、更新购物车中的商品数量、商品库存不足、失效商品等场景输出产品解决方案
二、功能设计与实现方案
2.1 商品添加到购物车
1、结构设计
-
商品唯一标识:商品ID、SKU ID
-
值为商品对象:数量、添加时间、状态(正常/失效)等字段
-
排序:商品列表按添加/更新时间倒序排列(最新操作置顶)
2、添加逻辑
1)查询商品在购物车是否存在
用户点击 “添加到购物车” 按钮时,系统首先通过商品ID和SKU ID查询购物车数据结构中是否存在该商品
-
已存在:数量+1,更新添加时间为当前时间(用于置顶排序),将该商品移动到购物车列表顶部
-
不存在:新增条目(新增商品),数量=1,加入时间=当前时间,并置顶,将该商品移动到购物车列表顶部
2)更新总价格:
-
同时实时计算购物车的总价等信息,如:单价×数量
3) 存储:
-
登录用户:将购物车数据存入Redis
-
未登录用户:数据缓存在浏览器,用户登录后合并到Redis(有些电商必须登录才可以加入购物车,这个根据实际业务去处理)
3、示例:
用户首次添加商品A(ID=1001),数量为1,购物车新增条目,并顶部显示该商品。用户再次添加同一商品A时,数量变为2,商品A继续置顶。
2.2 购物车中移除商品
1、移除方式:
-
支持单删:点击删除按钮
<