在订单输入级别发行时有多个DiscountValue Guid

2020-09-05 09:16发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我们有一个生产订单中的一个问题,...

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

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


我们有一个生产订单中的一个问题,如果符合条件的产品的价格> 49.99,则该订单的产品可获得50%的折扣。 订单包含7个项目。 在这7个产品中,有2个项目具有多个discountValue(意味着两次应用折扣两次)。 当我们尝试从flexi查询中搜索RuleBasedPromotionAction以获得这些Action guid时,我们没有找到任何RuleBasedPromotionAction以获得额外的discountValues。 由于此问题,折价后很少有产品的价格为负。

在较低的环境中,我们无法复制这种情况。 请帮助我们。 我们正在使用hybris 6.6。

谢谢,尼克尔。

5条回答
Alawn_Xu
2020-09-05 09:37

实际上是的,我们很快将为此部署防御策略。 希望它能解决它,到目前为止,测试似乎表明这样做没有任何破坏性。 我们注意到订单条目上的DiscountValues没有与之关联的促销动作。 您可能想看看您是否处于类似情况。 这是我们添加的计算挂钩:

 包com.crossview.hybris.order;
 
  导入de.hybris.platform.commerceservices.order.hook.CommerceCartCalculationMethodHook;
  导入de.hybris.platform.commerceservices.service.data.CommerceCartParameter;
  导入de.hybris.platform.core.model.order.AbstractOrderEntryModel;
 
  公共类VddCommerceQuoteCartCalculationMethodHook实现CommerceCartCalculationMethodHook {
      @Override
      公共无效beforeCalculate(CommerceCartParameter参数){
        /*
              这是防御性的,因为在订单条目上设置了DiscountValues数组。 清理促销时
              在重新计算购物车的过程中,即使所有
              相关的促销对象已被清理。 这样可以确保不将孤立的DiscountValues设置为
              重新计算发生时,将其计算为报价总额。
           */
 
          if(parameter!= null && parameter.getCart()!= null && parameter.getCart()。getEntries()!= null){
              对于(AbstractOrderEntryModel orderEntryModel:parameter.getCart()。getEntries()){
                  orderEntryModel.setDiscountValues(null);
              }
          }
      }
 
      @Override
      public void afterCalculate(CommerceCartParameter parameter){
         //没做什么
      }
  }
 
  

一周热门 更多>