关于打折数量限制问题
包括库存数量
sku打折数量
product打折数量
flash打折数量,每个客户限制购买数量
所有加入购物车得需要时间保护比如30分钟
否则应该提示expire并且还原数量
淘宝设计思路
1.单个订单,如果超过限制数量直接原价
2,加入购物车不扣库存,订单下单(不用付款)才扣库存,关闭交易恢复库存,同时失去了折扣。。。。(这是bug)
##淘宝购物车侧边栏购物车不错(就怕宽屏)
3,第二次购买折扣消失(那就意味着要统计订单,或者标记打折的用户了)
4,退出登陆,折扣又显示了
产品库存不怕超卖,所以付款才扣库存,创建订单不扣库存,可以让更多的人购买,一般都不准的,超卖是肯定的(这个可以在产品表上给个选项,如果需要严格控制超卖的话,就下单扣库存)
flash deal 价格很低,肯定不能超卖,创建订单就扣库存(只扣flash deal的库存)(结果就是有些下单未付款也占用了名额)
打折的产品 宁愿少卖也不超卖,如果可以的话(全店铺,目录打折都是不能设置数量限制的)
能够精确限制的只有skuDiscount和flashDeal,这个就应该是创建订单就扣库存
所有的核心准则是宁少卖不超卖,只要客户下单就可以付款,这是更好的客户体验,客户下单了却不能购买体验太差,太尴尬,所有未付款的订单都应该在一段时间后关闭(比如一天抢单的折扣应该更短,根据订单创建时间)
加入购物车需要检查产品
每次进入checkout都需要检查产品是否可以购买
下单还要验证数据
checkout不检查产品,付款时不检查产品
下订单检查并且扣库存,不允许超卖(会少卖)
下单的时候检查可能会导致订单失败
****仅仅在下单的时候检查产品合法性
1,点击下单按钮直接本地检测产品是否有效,价格是否正确,如果不对写入session,并且在chekout显示清楚(绝大部分问题订单都可以在这一步检测出来)
2,mothership创建订单检测,本地时效性会有一点点误差,数量也会和客端有些误差,就看能不能接受,如果要非常严格的话,还要再次验证产品
3,付款不要验证产品和价格了,这样客户体验太差了
4,checkout也不要验证产品了(但是flash deal 的产品提醒客户要快速下单)
5,加入购物车是第一步验证,仅仅验证数量时候可用,应该使用ajax,便于直接结账,和更多的空间反馈信息
checkout提交订单的时候ajax要全局锁定,不能更改和刷新
订单需要给一个deactive来调整状态和释放库存
skuDiscount取消,合并到flashDeal,flashDeal要连接订单ID,这样便于取消订单还原flashDeal数量,同时限制客户购买多少个,这个已经没法再做缓存了(还得刷新,下一次单,刷新一次?本地刷新,也好过与看一次产品刷新一次),卖出数量更新太快,订单还要连接一个skuId,便于找到哪个曾经的Sku的单(nullable) 都不做外键,不然不能删除了
flashDealSku one to many 搞个soldEntry,来记录(客户id,订单id,数量)这个应该是最轻便的了
flash deal 无法定位到sku产品显示,悲剧了