如果购物车中存在该商品则直接叠加商品数量,这块不考虑库存的问题吗?

 // 从数据库中查询该商品是否已经在购物车中
        if ($cart = $user->cartItems()->where('product_sku_id', $skuId)->first()) {

            // 如果存在则直接叠加商品数量
            $cart->update([
                'amount' => $cart->amount + $amount,
            ]);
        } else {
        ...
    已知的是在request中判断了本次加入购物车商品数量与库存的判断。
    请教,那么 
    //如果商品存在则直接叠加商品数量 
    之前,不需要再判断一下库存吗?
    有可能 叠加后的数量会超过实际库存
_Fairy
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
leo
最佳答案

你说的有道理。

但是加入购物车这个操作只是初步的校验,在购物车页面用户还是可以手动去修改下单数量,而在之后下单时还会有一步的库存校验,那里才是保证用户不会下超过库存数量的订单。

而这里如果要计算叠加后是否超过库存会让代码逻辑变得复杂,而带来的收益却不是很明显,所以可以选择不去做那么严格的校验。

5年前 评论
讨论数量: 3
leo

你说的有道理。

但是加入购物车这个操作只是初步的校验,在购物车页面用户还是可以手动去修改下单数量,而在之后下单时还会有一步的库存校验,那里才是保证用户不会下超过库存数量的订单。

而这里如果要计算叠加后是否超过库存会让代码逻辑变得复杂,而带来的收益却不是很明显,所以可以选择不去做那么严格的校验。

5年前 评论
_Fairy

@leo 好的,谢谢解答,确实是 收益问题,也是应该在开发逻辑的构建中。

5年前 评论

加购物车与下订单有着最大的一个区别就是,下单时会对库存进行扣减。

而加购物车则与库存无关,此处的验证只是用户体验会好一些,但并无实际意义。

叠加商品不仅会出现在自己加购车,还会存在多人将某一sku都增加到购物车,购物车中的总数大于库存数情况。

类似于双11前大家都将特价商品放到购物车中,但到双11时,只有部少人可以下单成功。

5年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!