У меня была та же проблема, что я и сделал:
Настройте ваше состояние через 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""";;;
Затем сопоставьте ваше состояние с промо-акцией 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;
Привязать действие к промоушену ruleType:
INSERT_UPDATE RuleActionDefinitionRuleTypeMapping;definition(id)[unique=true];ruleType(code)[default=PromotionSourceRule][unique=true]
;y_action_Id;
Создать шаблон продвижения
Сначала я создал шаблон моего продвижения с помощью ImpEx, не задавая никаких параметров, кроме имени:
INSERT_UPDATE PromotionSourceRuleTemplate;code[unique=true];name[lang=$lang];
;promotion_template_id; Template name;;
Затем я изменил шаблон из backoffice, добавив свое условие и мое действие к шаблону продвижения Условия и действия вкладка (Добавить их перетаскиванием), затем сохраните ваш шаблон.
Затем откройте вкладку «Администрирование», вы найдете поле Condition , содержащее json (этот json содержит определение ваших условий с сгенерированным uuid
, о котором вы спрашивали в своем вопросе), аналогично для actions, Actions поле, содержащее определение json действий шаблона Promotion.
Итак, здесь вы можете создать свой шаблон продвижения, используя 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}]
Надеюсь, это поможет вам