购物车可以说是电商平台的一个标配了,起初是用于多种商品的结算,现在很多用户也把购物车当作临时收藏来使用,这里尝试做一个基本的购物车架构设计。
用例分析
加入购物车、查看购物车、修改数量或者规格、移除商品、清空购物车,是一个购物车最基本的功能。
关键流程
1.查看购物车
关键点: 1)商品状态判断:上下架、预售 2)限购 3)库存紧张判断
2.修改数量/规格
关键点: 1)在购物车中加减数量,不涉及库存扣减操作,仅判断当前库存是否购买数量
3.购物车容量
关键点: 1)购物车作为临时存储,容量一般会做一定的限制,根据实际业务而定
数据模型
存储方案
1.基于Redis
使用Redis的Hash数据结构
2.基于数据库
user_id | sku_id | quantity | price |
---|---|---|---|
uid_10001 | sku_001 | 10 | 12 |
uid_10001 | sku_002 | 2 | 100 |
uid_10002 | sku_001 | 10 | 12 |
对外接口
接口 | 说明 |
---|---|
/cart/add | 加入购物车 |
/cart/view | 查看购物车 |
/cart/modify | 修改数量/规格 |
/cart/remove | 移除商品 |
/cart/clear | 清空购物车 |