如何设计一个购物车功能?


一、什么是购物车功能?

购物车指的是用户在选购商品的时候,用来将用户意向购买的商品存放的地方,从而方便用户后续找到这些商品并进行统一支付

购物车的主要元素有:

  • 商品ID
  • 商品数量
  • 折扣
  • 添加后的价格变化

购物车的主要操作有:

  • 下单
  • 调整商品数量
  • 加入/移出购物车

二、购物车设计

购物车设计一般要分为未登录和已登录这两种场景

1、未登录

对于未登录用户使用购物车功能,他的购物车信息就没必要存储在后端了,只需要在客户端做临时缓存即可,比如Cookie等

存储的数据也不需要存用户信息,数据如下:

{
  "cart": [
    {
      "goods_id": 123,
      "quantity": 2,
      "add_time": 123456789
    },
    {
      "goods_id": 234,
      "quantity": 3,
      "add_time": 234567890
    }
  ]
}

2、已登录

对于已登录用户使用购物车功能,由于用户数据可以会清理,或者更换设备导致数据丢失,就不能存储在客户端了,所以需要持久化到后端,比如MySQL、Redis等

存储的数据需要存用户信息,数据如下:

{
  "uid": 123,
  "cart": [
    {
      "goods_id": 123,
      "quantity": 2,
      "add_time": 123456789
    },
    {
      "goods_id": 234,
      "quantity": 3,
      "add_time": 234567890
    }
  ]
}

//TODO:后续优化补充


文章作者: GaryLee
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 GaryLee !
  目录