添加购物车错误以防止进入结帐


Adding cart error to prevent going into the checkout

我一直在努力创建一个编辑订单系统,当订单低于给定状态时,客户可以编辑订单

现在我通过添加一个reorder链接使一切正常工作,它的功能与reorder完全相同,但创建了一个会话,该会话标识您正在编辑订单,为了对缺货产品执行此操作,我必须打开积压订单

然而,我发现了一个小故障,如果客户要添加5顶帽子到购物车并注销,如果当他们回来时,该项目的库存数量现在是0,他们仍然可以进入购物车,这自然是因为启用了缺货。

我已经制作了一个CartController来拾取添加/更新购物车,并手动检查库存是否少于购物车中的库存,但是如果客户在库存充足时拥有该商品,离开并在现在缺货时返回,他们会绕过这些检查

一个学院提出的建议是我们缩短注册客户的购物车会话的生命周期,虽然我们可以这样做,但在销售期间存在更多的问题

原来,在缺货被打开之前,如果同样的情况发生,"继续结帐"按钮将会丢失,你会得到一个错误消息

现在我已经尝试修复一个新的IndexController和使用$this->_getSession()->addError('Some products in your cart have gone out of stock');,但我没有得到相同的结果

那么我如何创建一个错误消息来阻止客户进入结帐,直到他们已经修复了他们的购物车

我建议您创建一个专用页面,我们将其命名为edit_cart。当您重定向到结帐时,请检查所有产品并确认其数量。将它们推送到edit_cart,并让它们从购物车中删除缺货产品。然后将它们重定向到checkout。