从各种促销活动中排除特定产品

2020-09-14 07:32发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨, 我们如何才能将特定产品从...

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

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


嗨,

我们如何才能将特定产品从所有hybris促销中排除。

我们需要使用促销引擎在hybris 6.3 B2C中使用此限制。

6条回答
落灬小鱼
2020-09-14 08:27

嗨,

我有类似的要求,并按照以下方式进行操作:

在产品模型中添加了新属性

  
      表明将从全球折扣计算中排除该产品
       false 
      
  


  

在bean ProductRao中添加了新属性

  
      
  

  

添加了两个填充器

 公共类MyProductRaoExcludedPopulator实现Populator 
  {
      @Override
      公共无效人口(最终ProductModel源,最终ProductRAO目标)
      {
          target.setExcluded(source.isExcludedFromPromotions());
      }
  }
 
 
  公共类MyCartRaoPopulator扩展了CartRaoPopulator
  {
      @Override
      公共无效填充(最终AbstractOrderModel源,最终CartRAO目标)
      {
          super.populate(来源,目标);
 
          target.setEntries(filterEntries(target.getEntries()));
      }
 
      私人Set  filterEntries(最终Set 条目)
      {
          返回entry.stream()
                  .filter(entry->!entry.getProduct()。isExcluded())
                  .collect(Collectors.toSet());
      }
  }

  

更改的bean声明

  
 
  
      
          <列表>
              
              
          
      
  
 
  
 
  
  


  

从MyCalculationService中的DefaultCalculationService覆盖方法:受保护的double computeDiscountValues(最终AbstractOrderModel顺序,最终布尔重新计算)

从父方法复制代码并对其进行了小的调整

  ...
  最终的double DiscountablePrice =计算DiscountablePrice(订单)
  ...

  

在MyCalculationService私有方法中添加了方法double double CalculationDiscountablePrice(最终AbstractOrderModel订单),并从父级DefaultCalculationService :: calculateSubtotal复制了代码

进行了调整,其中主要的调整是

  ...
  用于(最终AbstractOrderEntryModel条目:条目)
         {
             如果(!entry.getProduct()。isExcludedFromPromotions())
             {
  ...

  

不要忘记为此调整弹跳豆(最可能的是您已经拥有自己的CalculationService)。

它正在运行。

一周热门 更多>