Как создать правило продвижения ImpEx для Hybris? - PullRequest
1 голос
/ 25 апреля 2019

Я создал правило продвижения в Backoffice и оно нормально работает для витрины магазина. Как импортировать его через ImpEx, так как условия и действия и uuid, присутствующие там, генерируются динамически?

1 Ответ

0 голосов
/ 28 апреля 2019

У меня была та же проблема, что я и сделал:

Настройте ваше состояние через 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}]

Надеюсь, это поможет вам

...