首页 > 解决方案 > 如何为 Hybris 促销规则创建 ImpEx?

问题描述

我在后台创建了一个促销规则,它在店面中工作正常。如何通过 ImpEx 导入它,因为那里的条件和操作以及 uuid 是动态生成的?

标签: hybris

解决方案


我有同样的问题,我所做的是:

通过 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}]

希望对你有帮助


推荐阅读