Импорт рекламных акций из ERP в SetRetail10

Публичный ресурс

Импорт рекламных акций из ERP в SetRetail10

Для чтения визуальной составляющей схемы XSD, а также типами обязательных данных, ознакомьтесь с правилами использования.

Методы веб-сервиса для импорта рекламных акций

Без обратной связи

Метод

importActions

URL

http://IP-адрес_сервера:8090/SET-ERPIntegration/AdvertisingActionsImport

WSDL

http://IP-адрес_сервера:8090/SET-ERPIntegration/AdvertisingActionsImport?wsdl

Поле

Тип данных

Описание

Обязательное

Принимаемые параметры  

xmlData

base64Binary

Рекламные акции в формате XML

Да

Возвращаемые параметры

return

boolean

Ответ об успешном прохождении валидации пакета данных и принятии его в обработку

 

Описание формата рекламных акций

 

С обратной связью

Метод

importActionsWithTi

URL

http://IP-адрес_сервера:8090/SET-ERPIntegration/AdvertisingActionsImport

WSDL

http://IP-адрес_сервера:8090/SET-ERPIntegration/AdvertisingActionsImport?wsdl

Поле

Тип данных

Описание

Обязательное

Принимаемые параметры

xmlData

base64Binary

XML в формате данных Рекламных акций, кодированный с помощью base64Binary

Да

ti

String

Transaction Id - номер передаваемого пакета данных, по которому можно будет получить обратную связь.

Нет

Возвращаемые параметры

return

boolean

В случае успешной обработки пакета возвращается:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <ns2:importActionsResponse xmlns:ns2="http://ws.discounts.ERPIntegration.crystals.ru/"/> </soap:Body> </soap:Envelope>

 

True возвращается случае успешной обработки пакета в случаях:

  1. Корректная структура xml, валидные данные.

  2. Корректная структура xml, невалидные данные. Например: номер магазина, отправляемого в пакете, отсутствует на сервере

  3. Корректная структура xml, валидные данные, повторяющийся ti пакета:

<return>true</return> </ns2:importActionsResponse>

 

Описание формата рекламных акций

Важно

Идентификатор пакета ti

Transaction Id – является уникальным идентификатором этого пакета в SetRetail10, что накладывает определённые ограничения на повторный импорт пакета и загрузку разных типов данных с одним идентификатором.

Рекламные акции <AdvertisingActions>

AdvertisingActions

Коллекция рекламных акций

В данных каждой рекламной акции содержится внешний код (external-code), который служит уникальным идентификатором для управления рекламными акциями в SetRetail10 из ERP. При получении из ERP акции с уже имеющимся в системе external-code, текущая акция с данным external-code безусловно перезаписывается полученной из ERP.

Для рекламных акций, создаваемых в модуле визуализации SetRetail10, также генерируется уникальный в рамках торговой сети магазинов external_code с префиксом SR10_.

Атрибут external-code используется в качестве кода акции в отчете о рассчитанных скидках, выгружаемом в ERP с чеками.

Данные рекламных акций выгружаются из ERP в SR10 в формате, предоставляемом Set Retail 10 в виде единой целостной сущности.

На стороне SR10 происходит валидация данных полученных из ERP рекламных акций. Рекламная акция будет отклонена, если в данных РА:

  • Указана зависимость от другой акции, которой нет в SR10;

  • Указан магазин, которого нет в SR10;

  • Не указан один из обязательных параметров величины скидки (фиксированная цена / процент скидки и т.п.)


Отклоненные акции выкладываются в папку отклоненных акций для обеспечения обратной связи по загрузке акций с ERP

Рекламная акция <AdvertisingAction>

AdvertisingActions/AdvertisingAction

Заголовок Рекламной акции

Наименование атрибута

Тип данных

Описание

Обязательное

AdvertActGUID

Integer

Не требуется заполнение поля из ERP

Нет

name

String

Наименование РА

Да

nameForCustomer

String

Название для покупателя (маркетинговое название акции)

Пример XML

https://crystals.atlassian.net/browse/SR-7134

https://crystals.atlassian.net/browse/CR-10447

10.4.6.0

Нет

description

String

Описание рекламной акции

Пример XML

https://crystals.atlassian.net/browse/SR-6936

https://crystals.atlassian.net/browse/CR-10221

10.4.0.0

Нет

active

Boolean

Для загрузки активных акций всегда передавать true

Да

mode

String

Тип условия применения РА.

  • automatic – автоматическое срабатывание при срабатывании всех условий, описанных в блоке условий externalConditions

  • by-condition – срабатывание при срабатывании одного любого из условий, описанных в блоке условий externalConditions

  • manual – ручная скидка

  • unconditional – безусловное срабатывание

Да

priority

Double

Приоритет (только для схемы работы акций по приоритету, акция с приоритетом 1 более приоритетная, чем акция с приоритетом 1000). По умолчанию 1000.

При загрузке значение должно быть равным 1 и более.

Логика присваивания приоритета

  1. При импорте из базы данных запрашиваются приоритеты, по возрастанию, 2 значения:

    • первый: min=2000 (ближайший сверху/равный относительно загруженного приоритета);

    • второй: max=2005 (следующий после него, если есть).

  2. Если min не равен приоритету 2000 -> оставляется приоритет 2000 как есть.

  3. Если min равен приоритету 2000 (дубликат уже есть):

    • если есть второй приоритет max -> новый приоритет = (min + max) / 2, то есть описал (2000 + 2005) / 2 = 2002.5

    • если второго нет -> новый приоритет = приоритет + 10. Тогда будет 2000 + 10 = 2010

 

Присвоение приоритета акции, созданной вручную

Вручную заведенная акция работает по другому принципу

  • Берется maxPriority из базы данных.

  • Если нет maxPriority -> приоритет 1000.

  • Иначе приоритет = maxPriority + 10.
    Приоритет ставится новым акциям сверху. Проверки на дубли приоритета нет.

 

Пример

  1. Есть акция РА1 с приоритетом 2000.

  2. Есть еще одна акция РА2 с приоритетом 2005.

  3. Загружена новая акция РА3 с приоритетом 2000.

  4. При загрузке акции РА3 в SetCentrum у такой акции приоритет станет 2002.5.

Нет

ignoreRestictions

В данном параметре отсутствует буква r для слова restrictions

Boolean

Признак игнорирования ограничений на применение скидки в данных товаров

  • true – акция игнорирует ограничения

  • false – акция учитывает ограничения

Нет

ignoreRestrictions

 

Boolean

Признак игнорирования ограничений на применение скидки в данных товаров

  • true – акция игнорирует ограничения

  • false – акция учитывает ограничения

Начиная с версии 10.2.75.8  10.2.76.3 10.2.77.0 можно использовать, как новый параметр, так и предыдущий ignoreRestictions

https://crystals.atlassian.net/browse/SR-3219

https://crystals.atlassian.net/browse/SR-3563

Нет

worksAnyTime

Boolean

  • true – скидка по данной РА суммируется со всеми остальными акциями в случае конфликтов нескольких скидок на один товар.

  • false – скидка по данной РА не суммируется с другими скидками, скидка участвует в схеме взаимодействия акции, установленной в SetRetail10

Да

color

String

Цвет маркировки рекламной акции.

Используется для визуализации акции в SetRetail10, 

  • Blue (по умолчанию)

  • Yellow

  • Orange

  • Green

  • Red

  • Violet

Нет

external-code

String

Внешний идентификатор РА

Да

ti

String

Идентификатор транспортного пакета, в котором пришла данная РА

Нет

deleted

Boolean

Признак удаления рекламной акции. Акция останавливается сразу после загрузки признака остановки.

Нет

discountType

String

Код типа скидки

Нет

exempt-from-bonus-discounts

Boolean

Флаг-признак, указывающий на то, что на товары, на которые сработала данная РА, нельзя давать скидки типа "бонусы как скидка".

Отсутствие атрибута - распознается как FALSE

Нет

disableChargeOnBonuses

Boolean

Флаг-признак, запрещающий начисление бонусных баллов на товары, на которые сработала данная РА

Нет

finalAction

Boolean

Флаг-признак, запрещающий новые скидки после срабатывания данной акции

Нет

ignoreSoftCheckRestrictions

Boolean

Флаг-признак "Игнорировать ограничения мягкого чека".

Ограничение на применение рекламных акций (isFixedDiscounts) и запрет изменения цены (isFixedPrice), переданные в составе мягкого чека, в рамках данной рекламной акции будут игнорироваться.

https://crystals.atlassian.net/browse/SR-5427

10.3.10.0

Нет

Наименование элемента

Тип данных

Описание

Обязательное

shop-indices

PositiveInteger

(разделение через пробел)

Список магазинов через пробел, в которых действует акция. По умолчанию – действует во всей торговой сети.

Нет

begin-date

 DateTime

Дата начала действия акции

Да

end-date

 DateTime

Дата окончания действия акции

Да

pricetag-type

 String

Тип ценника, который должен печататься на товары этой акции.
NONE — на акцию не надо печатать никакие ценники
ACTION акционный ценник
ADDITIONAL дополнительный ценник
REPLACEMENT — замещающий ценник

Нет

template-format

String

Внешний код формата шаблонов ценников.

Нет

Блоки содержимого Рекламной акции

Блок

Описание

dependence

Блок позволяет управлять из ERP зависимостью загружаемых РА от других акций, ранее загруженных в систему. Необязательный блок данных

region-indices

Регионы, в которых должна действовать акция. Учитывается фильтр по формату магазинов, если задан параметр format-indices.

Необязательный блок данных.

https://crystals.atlassian.net/browse/SR-8625

https://crystals.atlassian.net/browse/CR-14397

10.4.22.0

city-indices

Города, в которых должна действовать акция. Учитывается фильтр по формату магазинов, если задан параметр format-indices.

Необязательный блок данных.

https://crystals.atlassian.net/browse/SR-8625

https://crystals.atlassian.net/browse/CR-14397

10.4.22.0

format-indices

Фильтр по формату магазинов, действующий на все магазины регионов и городов в заданной зоне охвата акции. Необязательный блок данных.

https://crystals.atlassian.net/browse/SR-8625

https://crystals.atlassian.net/browse/CR-14397

10.4.22.0

externalConditions

Условия применения данной РА, акция сработает только при соблюдении всех указанных в акции условий. Если условия не указаны, акция действует для всех покупателей. Необязательный блок данных, заполняется только при mode = automatic 

actionResults

Применяемые скидки в рамках данной Рекламной акции. Обязательный блок данных

pricetag-template

Коды ценников, которые должны печататься по умолчанию на товары этой акции.

actionLabels

Метки рекламной акции

finalActionExclusions

Множество кодов РА, игнорирующих запрет новых скидок после срабатывания данной акции

externalPromotions

Периоды внешнего продвижения

https://crystals.atlassian.net/browse/SR-7086

https://crystals.atlassian.net/browse/CR-10739

10.4.2.0

extended-attribute

Расширенные атрибуты рекламной акции

https://crystals.atlassian.net/browse/SR-7388

https://crystals.atlassian.net/browse/CR-11278

10.4.6.0

Зависимости <dependence>

Данный блок служит для обеспечения возможности управления из ERP зависимостью акций. Использование зависимостей позволяет строить более сложные и гибкие двухуровневые схемы построения маркетинговых программ.

В случае использования зависимых скидок расчет скидок производится в два последовательных этапа расчета, сначала рассчитываются скидки первого уровня (без установленной зависимости), а затем скидки второго уровня (с установленной зависимостью от скидки первого уровня).

Скидка второго уровня может сработать на позицию, только если на эту позицию на первом этапе уже сработала скидка первого уровня, от которой построена зависимость. Скидки второго уровня действуют от цен, полученных в результате действия скидок первого уровня.

Таким образом могут быть построены классические схемы расчета скидок, например, дополнительные скидки действуют от цен по дисконтной карте (акции на применение второй цены).

Важно:

Данный блок не является обязательным, вы не обязаны использовать зависимости в ваших маркетинговых программах.

Принцип работы суммирующихся акций остается неизменным.

Все суммирующиеся акции worksAnyTime = true всегда действуют после последовательного применения конкурирующих worksAnyTime = false акций первого и второго уровня.

Возможно построение зависимостей сразу от нескольких акций, тогда скидка второго уровня будет работать, если на позицию сработала хотя бы одна из скидок, от которых построена зависимость.

AdvertisingActions/AdvertisingAction/dependence

Наименование элемента

Тип данных

Описание

Обязательное

key

String

Всегда заполняется значением 'external-code'

Да

value

String

External-code уже существующей акции, от которой должна быть установлена зависимость.

Да

Пример акции с установленной зависимостью от двух других акций
<AdvertisingActions> <AdvertisingAction name=”Скидка на количество по карте (зависит от 2й цены)” active=”true” mode=”automatic” priority=”1” ignoreRestictions=”true” worksAnyTime=”false” color=”green” external-code=”SR10_001”> <dependence key=”external-code” value=”SR10_1363”/> <dependence key=”external-code” value=”SR10_1364”/> <begin-date>2012-10-21T00:00:00Z</begin-date> <end-date>2012-11-31T00:00:00Z</end-date> <actionResults> <catalog> <marking-of-the-good id = “3850114202480” discountStart = “2.000” fixedPrice = “1000.00” maxQuantity = “43534.00”/> </catalog> </actionResults> <externalConditions> <InternalCardsCondition guid=”1359”/> </externalConditions> </AdvertisingAction> </AdvertisingActions>

Регионы в зоне охвата акции <region-indices>

https://crystals.atlassian.net/browse/SR-8625

https://crystals.atlassian.net/browse/CR-14397

10.4.22.0

Возможность указывать зону охвата акции с привязкой к регионам.

Если после загрузки акции в систему будет добавлен новый магазин, входящий в указанный регион, акция автоматически будет распространяться и на него.

Все коды регионов, переданные в составе рекламной акции при импорте, должны существовать в соответствующем справочнике топологии Set Centrum 10. В противном случае акция будет отклонена с ошибкой валидации.

AdvertisingActions/AdvertisingAction/region-indices/region

Наименование атрибута 

Тип данных

Описание

Обязательное

code

String

Код региона.

Регион с указанным кодом должен существовать в справочнике регионов (topology_region).

Нет

Рекламная акция из приведённого ниже примера будет отправлена на все магазины, соответствующие хотя бы одному из следующих условий:

  • Магазины всех городов, относящихся к регионам с кодами reg_1 и reg_2, у которых в свойствах магазина выбран один из форматов: super или giper.

  • Магазины городов с кодами city_1 и city_2, у которых в свойствах магазина выбран один из форматов: super или giper.

  • Магазины с номерами 123 и 124 вне зависимости от форматов магазинов.

Пример акции с указанной зоной охвата
<AdvertisingActions>     <AdvertisingAction name="РА_1" active="true" mode="automatic" color="green" external-code="РА_1">         <shop-indices>123 124</shop-indices>         <region-indices>             <region code="reg_1"/>             <region code="reg_2"/>         </region-indices>         <city-indices>             <city code="city_1"/>             <city code="city_2"/>         </city-indices>         <format-indices>             <format code="super"/>             <format code="giper"/>         </format-indices>         <begin-date>2012-02-21T00:00:00Z</begin-date>         <end-date>2042-02-29T00:00:00Z</end-date>         <actionResults>             <set name="Кефир в подарок">                 <row requiedQuantity="1.000" fixedPrice="10.00">                     <marking-of-the-good id="00001"/>                 </row>                 <row groupName="Хлеб" requiedQuantity="3.000" fixedPrice="30.00">                     <marking-of-the-good id="00014"/>                     <marking-of-the-good id="00004"/>                 </row>             </set>         </actionResults>     </AdvertisingAction> </AdvertisingActions>

Города в зоне охвата акции <city-indices>

https://crystals.atlassian.net/browse/SR-8625

https://crystals.atlassian.net/browse/CR-14397

10.4.22.0

Возможность указывать зону охвата акции с привязкой к городам.

Если после загрузки акции в систему будет добавлен новый магазин, привязанный к указанному городу, акция автоматически будет распространяться и на него.

Все коды городов, переданные в составе рекламной акции при импорте, должны существовать в соответствующем справочнике топологии Set Centrum 10. В противном случае акция будет отклонена с ошибкой валидации.

AdvertisingActions/AdvertisingAction/region-indices/city

Наименование атрибута 

Тип данных

Описание

Обязательное

code

String

Код города.

Город с указанным кодом должен существовать в справочнике городов (topology_city).

Нет

Рекламная акция из приведённого ниже примера будет отправлена на все магазины, соответствующие хотя бы одному из следующих условий:

  • Магазины всех городов, относящихся к регионам с кодами reg_1 и reg_2, у которых в свойствах выбран один из форматов: super или giper.

  • Магазины городов с кодами city_1 и city_2, у которых в свойствах магазина выбран один из форматов: super или giper.