库存水平为负

2020-08-31 20:28发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨, 在我们的项目中,我们维护...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,

在我们的项目中,我们维护产品的库存水平。 我在特定情况下正面临一个问题,其在下面提到-

我将产品A的库存设置为3,现在有两个不同的用户(假设用户A和用户B)在购物车中添加了2数量的产品A。 由于尚未预留库存,因此双方都可以向其购物车中添加数量2,因此当两个用户同时进入付款页面时,结果库存水平达到-1(负)订单,这两个用户都成功下达了订单。

理想情况下,一旦其中一个用户保留了它,就不应允许其他用户继续进行qty 2。

有人可以在这个问题上建议或建议我吗? 如何预防这种情况?

我无法在本地复制此问题,但在生产环境中很少发生。

先谢谢了。

6条回答
Violet凡
2020-08-31 21:07

:我假设您在购物车页面上有一个继续结帐按钮。 该按钮的动作应为/cart/checkout。 如果这样做,则用户单击此按钮后,您的调用将转到CartPageController中的以下方法。

  @RequestMapping(value ="/img/checkout",方法= RequestMethod.GET)
      @RequireHardLogIn
      公共字符串cartCheck(final RedirectAttributes redirectModel)引发CommerceCartModificationException
      {
          SessionOverrideCheckoutFlowFacade.resetSessionOverrides();
 
          如果(!getCartFacade()。hasEntries())
          {
              LOG.info("缺少或清空购物车");
 
             //没有会话购物车或空会话购物车。 弹回购物车页面。
              GlobalMessages.addFlashMessage(redirectModel,GlobalMessages.ERROR_MESSAGES_HOLDER," basket.error.checkout.empty.cart",
                      空值);
              返回REDIRECT_CART_URL;
          }
 
 
          如果(validateCart(redirectModel))
          {
              GlobalMessages.addFlashMessage(redirectModel,GlobalMessages.ERROR_MESSAGES_HOLDER,CART_CHECKOUT_ERROR,null);
              返回REDIRECT_CART_URL;
          }
 
         //重定向到结帐流程的开始以开始结帐流程
         //我们只重定向到通用的'/checkout'页面,该页面实际上将选择结帐流程
         //使用。 客户不一定是根据此请求登录的,但将被迫登录
         //当他们到达"/结帐"页面时。
          返回REDIRECT_PREFIX +"/img/checkout";
      }

  

此功能检查购物车是否为空。 此功能会将用户重定向回购物车页面。 还有另一个if块,用于检查购物车是否有效 if(validateCart(redirectModel))。 该validateCart函数将检查购物车是否已修改或添加的产品库存是否已更改。 如果这样做,它将在redirectModel中存储适当的消息,将用户重定向回购物车页面,并在页面顶部以Flash消息形式显示适当的消息。 简而言之,在您的情况下,在用户A和用户B之间,谁先单击 Proce to Checkout 按钮,将被带到结帐页面,另一个将被重定向回购物车页面,并显示一条消息,提示 >您的购物车已调整。

希望有帮助。

一周热门 更多>