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

2020-09-05 09:16发布

         点击此处--->   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。

谢谢,尼克尔。

         点击此处--->   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条回答
软件心理学工程师
1楼-- · 2020-09-05 09:29

嗨,有人有解决方案吗? 我们也遇到类似的情况,有些产品两次应用折扣,因此,我们总共给出的是75%的折扣,而不是50%的折扣。

粗暴的香蕉
2楼-- · 2020-09-05 09:34

您是否找到解决此问题的方法? 每天我们有10,000多个订单,因此目前存在此问题。 经过一两个星期的调试,我无法弄清原因。 我正在考虑在购物车计算后进行一些防御性编码,以检查订单上的DiscountValues并删除任何没有匹配促销动作的商品,因为它们似乎无效。 谢谢!

Alawn_Xu
3楼-- · 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){
         //没做什么
      }
  }
 
  
shere_lin
4楼-- · 2020-09-05 09:25

在过去的4天中,我们已经在生产中使用了上面的代码,此后没有发现此问题。 我们通常每天有一天。 到目前为止,一切都很好!

三十六小时_GS
5楼-- · 2020-09-05 09:32

更新:这解决了我们的问题!

一周热门 更多>