如何设计购物车

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/gavinsun/article/details/88950464

购物车简介

功能:临时存放要购买的商品。

特点:结算后,对应购物车中的物品要被移除。

数据结构:用户ID,商品ID,商品数量,商品规格(可选)

注意事项

  1. 购物车排序:加入购物车时间排序,如果有店铺,需要按店铺分组

  2. 库存判断:结算时判断或调整数量时实时判断

  3. 商品下架:要把购物车里的商品状态设置为失效

  4. 购物车可以放在缓存数据库中,例如:Redis。值得说明的是Django支持使用Redis缓存session。所以,在Django中,我们可以把购物车直接放在session中,然后配置使用redis存储session。

  5. 只使用cookie保存购物车数据时行不通的,因为不能实现多终端同步,要实现多终端同步,必须配合后端的数据存储技术。

    在Django中,不管session还是具体的数据库表,都属于后端存储技术。只不过,Django中的session默认是存储在数据库表中的,我们可以很方便修改它的存储介质,例如修改成Redis或Memcached。

某东购物车的实现

  1. 未登录状态,product_id(商品id) ,sku_Id(库存),buy_num(购买数量)添加到cookie中

  2. 登录后,把cookie中保存的购物车合并到后台购物车数据库中,并把cookie中的购物车删除。

    (想一想:问什么要把cookie中的购物车删除呢?)

参考资料

https://github.com/diefenbach/django-lfs/blob/master/lfs/cart/models.py
https://github.com/muvatech/Shopping-Cart-Using-Django-2.0-and-Python-3.6/blob/master/cart/cart.py

猜你喜欢

转载自blog.csdn.net/gavinsun/article/details/88950464