购物车.md 2.2 KB

购物车

商城应用

在mall4j商城中,用户将喜欢的商品加入到购物车中,点击购物车项进行提交订单,下面我们就简单来看看mall4j商城的购物车界面。

1566270806256

当用户将商品加入购物车后,可以在购物车中查看到添加在购物车中的列表信息,点击需要购买的购物项进行确认订单页。

1566270892129

注意:添加购物车的商品数据千万一定必须持久化到 DB 。好处如下:

  • 数据分析。例如,哪些商品被添加到购物车很多,但是很少被下单,实现转换率漏斗。
  • 业务拓展。例如,卖家基于买家购物车的商品信息,进行回访,促发购买。
  • 用户体验。缓存总会过期,可能买家目前仅仅是添加到购物车,N 天后会进行购买。

数据库实体

整体实体类关系如下图:

1566349705473

model实体类

@Data
@TableName("tz_basket")
public class Basket implements Serializable {
    /**
     * 主键
     */
    @TableId
    private Long basketId;

    /**
     * 店铺ID
     */
    private Long shopId;

    /**
     * 产品ID
     */
    private Long prodId;

    /**
     * SkuID
     */
    private Long skuId;

    /**
     * 用户ID
     */
    private String userId;

    /**
     * 购物车产品个数
     */
    private Integer basketCount;

    /**
     * 购物时间
     */
    private Date basketDate;
}
  • basketId ,购物车主键ID,唯一自增
  • shopId ,店铺Id

shopId用来标识所属的店铺信息,区分店铺,后续可扩展为B2B2C模式

  • prodId ,商品Id
  • skuId,商品skuId

添加到新的商品 skuId 添加到购物车后,生成一条购物车项,如果购物车已存在此商品,对应的购物项的数量增加

  • userId ,用户ID

  • basketCount,添加在购物车的数量

  • basketDate ,添加到购物车的最新时间

本文目前写的购物车是相对比较浅的,在实际项目中,结合在商城系统中的营销活动,有复杂的优惠价格计算逻辑等。