hybris - 如何为 Hybris 促销规则创建 ImpEx?
问题描述
我在后台创建了一个促销规则,它在店面中工作正常。如何通过 ImpEx 导入它,因为那里的条件和操作以及 uuid 是动态生成的?
解决方案
我有同样的问题,我所做的是:
通过 Impex 配置您的条件
创建条件:
$lang = en
INSERT_UPDATE RuleConditionDefinition; id[unique=true]; name; priority; allowsChildren; translatorId; translatorParameters; categories(id)
;y_condition_id; Condition Name; 1100; false; YourCustomConditionTranslator; ; cart;
创建条件参数(这里是条件参数的示例):
INSERT_UPDATE RuleConditionDefinitionParameter;definition(id)[unique=true];id[unique=true];name[lang = $lang];priority;type;value;required[default=true];validators;filters;defaultEditor
;y_condition_id;operator;Operator;1300;Enum(de.hybris.platform.ruledefinitions.AmountOperator);"""GREATER_THAN_OR_EQUAL""";;;
然后将您的条件映射到 Promotion RuleType :
INSERT_UPDATE RuleConditionDefinitionRuleTypeMapping;definition(id)[unique=true];ruleType(code)[default=PromotionSourceRule][unique=true]
;y_condition_id;
配置您的操作
创建动作定义:
INSERT_UPDATE RuleActionDefinition;id[unique=true];name[lang = $lang];priority;;translatorId;translatorParameters;categories(id)
;y_action_Id;Action Name;1000;;YourActionTranslator;actionId->YourAction;product_discounts
创建您的操作参数:
INSERT_UPDATE RuleActionDefinitionParameter;definition(id)[unique=true];id[unique=true];name[lang=$lang];priority;type;value;required[default=true];validators;filters
;y_action_Id;your_param_id;Your parameter name ;1000;java.lang.Integer;1;;YourParameterValidator;
将您的 Action 映射到 Promotion ruleType :
INSERT_UPDATE RuleActionDefinitionRuleTypeMapping;definition(id)[unique=true];ruleType(code)[default=PromotionSourceRule][unique=true]
;y_action_Id;
创建促销模板
首先,我使用 ImpEx 创建了我的促销模板,除了 name 之外没有设置任何参数:
INSERT_UPDATE PromotionSourceRuleTemplate;code[unique=true];name[lang=$lang];
;promotion_template_id; Template name;;
然后我从后台修改了模板,将我的条件和我的操作添加到促销模板的条件和操作选项卡(通过拖放添加它们),然后保存您的模板。
然后检查管理选项卡,您将找到一个包含 json 的Condition字段(此 json 包含您的条件定义以及您uuid
在问题中询问的生成),同样对于操作,Actions字段包含促销模板操作的 json 定义.
因此,您可以在这里使用 Impex 创建促销模板:
INSERT_UPDATE PromotionSourceRuleTemplate;code[unique=true];maxAllowedRuns;ruleGroup(code);conditions;actions
;promotion_template_id;1;productPromotionRuleGroup;[{your conditions json here}];[{ your action json here}]
希望对你有帮助
推荐阅读
- neo4j - 从 Neo4j 获取每个组的最高搜索结果
- scala - Scala ExecutionContext 作为类或方法参数更惯用吗?
- reactjs - React JS 的承诺重定向
- c# - 如何从毫秒获取时间点?
- unity3d - 任务“:checkReleaseDuplicateClasses”执行失败
- python - Pandas 遍历列的每一行并更改其值
- c# - 过滤数组,然后根据权重随机选择一个元素,不分配
- graph-databases - 如何从本地 Germlin 控制台连接到远程 Janus 图?
- excel - Airtable/Excel 多个 if 语句帮助(语法似乎相同)
- javascript - 验证打印正则表达式的页面范围