2020-09-23 22:58发布
点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我想知道如何执行以下促销活动: ... 显示全部
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
我想知道如何执行以下促销活动:
购买这50种产品中的任何5种,并免费获得1种产品。
我只能执行:购买其中任何一种产品,并免费获得Y。 将数量更改为5要求用户购买5个相同的产品。
嗨杰森,
"合格产品"中的"数量"字段是指所需的合格产品数量(每个订单条目),这是正确的行为。 您可以通过使用Drools的"累加"功能来完成您想做的事情。 该过程被描述为对另一个问题的答案:
通常,支持Drools的"累加"功能,但到目前为止仅适用于数量。 如果您查看最终生成Drools代码的类(DefaultDroolsRuleTargetCodeGenerator),您将看到其用法。 需要汇总诸如"如果购物车中有3个类别为xyz的产品,则..."之类的数量。 例如,我创建了一个促销活动,检查在这种情况下,是否有3部黑白电影(类别代码" 598")对第三部电影给予5美元的折扣。 请参阅附件,以了解源规则的定义以及促销触发时在店面中的外观。 生成的Drools代码(使用"累积" OOTB):
通常,支持Drools的"累加"功能,但到目前为止仅适用于数量。 如果您查看最终生成Drools代码的类(DefaultDroolsRuleTargetCodeGenerator),您将看到其用法。
需要汇总诸如"如果购物车中有3个类别为xyz的产品,则..."之类的数量。
例如,我创建了一个促销活动,检查在这种情况下,是否有3部黑白电影(类别代码" 598")对第三部电影给予5美元的折扣。
请参阅附件,以了解源规则的定义以及促销触发时在店面中的外观。
生成的Drools代码(使用"累积" OOTB):
软件包de.hybris.platform.droolsruleengine; 导入de.hybris.platform.droolsruleengineservices.compiler.impl.DefaultDroolsRuleActionContext; 导入de.hybris.platform.ruleengineservices.rao.CartRAO; 导入de.hybris.platform.ruleengineservices.rrd.RuleConfigurationRRD; 导入java.math.BigDecimal; 导入de.hybris.platform.ruleengineservices.rao.CategoryRAO; 导入de.hybris.platform.ruleengineservices.rao.RuleEngineResultRAO; 导入de.hybris.platform.ruleengineservices.rao.WebsiteGroupRAO; 导入java.util.Map; 导入de.hybris.platform.ruleengineservices.rao.OrderEntryRAO; 导入de.hybris.platform.ruleengineservices.rao.ProductRAO; 全局de.hybris.platform.ruleengineservices.rule.evaluation.RuleExecutableAction rulePartnerOrderEntryFixedDiscountAction; 查询rule_2cdb34ef8ab34c44a76e951f58d81df3_query(OrderEntryRAO $ v6,CartRAO $ v1,RuleEngineResultRAO $ v2,WebsiteGroupRAO $ v3,CategoryRAO $ v4,ProductRAO $ v5) ( $ v1:= CartRAO() 和 $ v2:= RuleEngineResultRAO() 和 $ v3:= WebsiteGroupRAO(id ==" electronicsPromoGrp") 和 ( $ v4:= CategoryRAO((" 598"中的代码)) 和 $ v5:= ProductRAO(类别包含$ v4) 和 $ v6:= OrderEntryRAO(产品== $ v5,数量> =新整数(1)) 和 $ v1:= CartRAO(条目包含$ v6) ) ) 结束 规则" 2cdb34ef-8ab3-4c44-a76e-951f58d81df3" @ruleCode(" accumulate_source_rule") @moduleName("促销模块") 方言" mvel" 显着性0 什么时候 $ config:= RuleConfigurationRRD(ruleCode ==" accumulate_source_rule") 积累 rule_2cdb34ef8ab34c44a76e951f58d81df3_query($ v6,$ v1,$ v2,$ v3,$ v4,$ v5;) ; $ v6_set:collectSet($ v6), $ v1_set:collectSet($ v1), $ v2_set:collectSet($ v2), $ v3_set:collectSet($ v3), $ v4_set:collectSet($ v4), $ v5_set:collectSet($ v5), $ result_count:计数(1) ) eval($ result_count> 0) 然后 映射变量= [ " CONTAINER_X/de.hybris.platform.ruleengineservices.rao.OrderEntryRAO":$ v6_set, " de.hybris.platform.ruleengineservices.rao.CartRAO":$ v1_set, " de.hybris.platform.ruleengineservices.rao.RuleEngineResultRAO":$ v2_set, " de.hybris.platform.ruleengineservices.rao.WebsiteGroupRAO":$ v3_set, " CONTAINER_X/de.hybris.platform.ruleengineservices.rao.CategoryRAO":$ v4_set, " CONTAINER_X/de.hybris.platform.ruleengineservices.rao.ProductRAO":$ v5_set ]; rulePartnerOrderEntryFixedDiscountAction.executeAction(new DefaultDroolsRuleActionContext(variables,kcontext),[" value_uuid":" a85950b0-2082-4458-9e1c-4a0aa21be4fd"," selection_strategy":de.hybris.platform.ruleengineservices.Selection_Strategy.AP ::" 596ada79-3bb8-4865-ab52-bac02864d865"," target_containers_uuid":" 64b76398-f3a6-4206-ba20-d061497c13fc"," qualifying_containers":[" CONTAINER_X":new Integer(3)]," target_containers":[ " CONTAINER_X":新整数(1)]," qualifying_containers_uuid":" cee10fc2-bacc-4f56-ab2e-a9aaec0dfd5a"," value":[" USD":new BigDecimal(" 5")]])); 结束
所有功劳归于
最诚挚的问候,
最多设置5个标签!
嗨杰森,
"合格产品"中的"数量"字段是指所需的合格产品数量(每个订单条目),这是正确的行为。 您可以通过使用Drools的"累加"功能来完成您想做的事情。 该过程被描述为对另一个问题的答案:
所有功劳归于
最诚挚的问候,
一周热门 更多>