购物车的业务需求
- 暂存商品:这是购物车最直观的功能,类似于线下逛超市时的购物车。相应的,就要有商品的加购、删除、更改数量、选中等操作。
- 比价:用户可能会将多个同类商品加入购物车,从多个维度进行比价(例如:商品价格,促销力度,运费等),因此购物车模型的设计、前台页面的展示一定是方便用户进行比价的。
- 促销:除了商品本身的促销之外,大型的电商一定会有针对购物车本身的促销手段。例如,商品降价后对加购的用户推送降价提醒、空车推送营销等等。
总之,大型电商的购物车除了包含暂存商品的基础功能外,一定会通过辅助用户完成比价、以及购物车营销策略,最终提高用户的结算转化率。
购物车模型
以数据+操作的形式构建购物车模型,以京东购物车为例,可以总结出以下的模型
请添加图片描述
数据
- 商品信息:购物车中最基础的信息,基本是以sku的形式展示的,包括商品名称,销售属性,价格。注意在实现存储时肯定不能仅仅保存一个skuId,加购时的关键信息是需要保存下来的(例如加购时的价格,便于降价后提醒用户)
- 标签:购物车中有便于用户比价以及实现促销的各种标签,例如图中的“促销”,“比加入时降10元”,“无货”。
操作
- 价格计算:购物车的价格计算不仅仅是简单计算一个总和,往往还需要根据复杂的促销逻辑,计算出一个最优的结果。
- 商品分堆&排序:商品的分堆一般先以店铺为单位,店铺内部还可能会以不同活动进行分堆;排序一般就是按加购的时间倒序排序,不过由于按店铺分堆,加购后会把整个店铺的商品都移到顶部。
- 营销:如上一节提到的,实现对加购的用户推送活动提醒、空车推送营销等等。