Персональные акции
- Правило персональной акции
- Карточка правила начисления – Персональные акции
- Персональное предложение
- Тип расчёта персонального предложения
- Обработка персональной акции
- Акцепт персональной акции
- Ограничения персональной акции
- Фильтрация по формату магазина в персональных акциях
- Обработка персональной акции со значением MxN
- Обработка персональной акции фиксированной цены
- Интеграционные персональные акции
- Персональные акции в запросах POS-сервисов
- Расширенный атрибут для персональной акции
- Внешние идентификаторы персональных акций
Правило персональной акции
Персональная акция – это поощрение конкретным участникам программы лояльности за покупку конкретных товарных позиций (либо непосредственных товаров, либо каких-то товарных общностей – подгруппы, группы товаров и т.д.). В системе персональная акция – это соединение правила начисления и значения персональной акции. Правило начисления регламентирует вид начисления по персональной акции – это может быть начисление баллов или предоставление скидки. Для организации персональной акции используется правило начисления «Персональная акция». Персональное предложение – запись, которая определяет, какое именно значение поощрения будет предоставлено для данного участника по приобретаемому товару в позиции чека, а также какой тип расчёта для этого значения: процент, значение, фиксированная цена, значение для единицы товара.
Участник программы лояльности указывается в значении персональной акции непосредственной ссылкой на карту или контакт. Одновременно указать и карту, и контакт невозможно. В случае если указана ссылка на контакт, то поощрение персональной акции будет предоставляться, если операция совершается по любой из предъявленных карт, принадлежащих контакту.

Рис. Карточка правила начисления Персональная акция
Товар, на который предоставляется поощрение, определяется указанием ссылки на одну из сущностей товарного справочника: непосредственно товара; подгруппы товаров; группы товаров; подкатегории товара, категории товара, бренда; производителя; списка товаров, списка подгрупп товаров, списка групп товаров, списка подкатегорий, списка категорий, списка брендов, списка производителей. Одновременно указать несколько определений товара нельзя, только какое-то одно. Например, нельзя одновременно определить значение персональной акции и указанием ссылки на бренд, и указанием ссылки на группу товаров. Если будет указана ссылка на бренд, то значение ставки поощрения будет распространяться на все товары данного бренда, которые присутствуют в чеке. То есть если указана ссылка на бренд, при этом в составе чека будут несколько разных товаров данного бренда, то на все на них будет распространяться действие поощрения по значению персональной акции.
В отличие от товарной акции, значения персональной акции непосредственно связаны с правилом начисления (в случае товарной акции значения связаны через промежуточную запись – группу товарных предложений). Фильтрация по чекам задаётся добавлением фильтра по чекам в правиле начисления персональной акции, фильтрация по позициям чеков задаётся в персональном предложении за счёт указания непосредственной товарной позиции или группы, подгруппы (и т.д.) товара, а фильтрация по времени настраивается сроками действия («в период с» и «в период до») правила. Фильтры по контактам в правиле персональной акции не применяются, т.к. данное правило уже является персонифицированным.
Также персональная акция позволяет рассылать сообщения как персональные предложения по данной акции. Данные сообщения будут рассылаться заданием по расписанию и правилом начисления «Персональная акция». Для рассылки персональных предложений предусмотрены специальные метапеременные, которые должны содержаться в шаблоне сообщения правила или в шаблоне сообщения задания по расписанию. Персональные предложения добавляются в общее агрегированное сообщение.
В системе выделяются две разновидности значений персональной акции. Первый вид – редактируемые через интерфейс системы, или ручные значения персональной акции (сущность «Персональное предложение»). Данный вид используется, если персональных акций используется не много. Если персональных акций очень много, то целесообразнее использовать второй вид - интеграционные значения персональной акции, которые через интерфейс заполнить или отредактировать нельзя. Интеграционные значения персональной акции необходимо загружать в систему из внешней системы, через интеграцию.
Карточка правила начисления – Персональные акции
Карточка Персональная акция содержит следующие секции:
Основное
Параметры правила
Срок действия бонуса
Персональные предложения
Интеграционные персональные предложения
Фильтр по чекам
Отправка сообщения
Информация для Личного кабинета
Взаимоисключения
Прим.: Некоторые секции могут отображаться в зависимости от настроек в карточке Правила начисления. Например, секция «Срок действия бонуса» будет выводиться только при значении Вид начисления=Бонус, Статусный бонус, Бонус + Статусный бонус и не будет выводиться при значении Вид начисления = Скидка
При создании нового правила начисления Персональная акция отображаются только основные секции: Основное параметры, Параметры правила, Срок действия бонуса (при значении Вид начисления = Бонус), Персональные предложения.
Все остальные секции можно добавить в интерфейс дополнительно в режиме редактирования карточки.
Карточка Правило-Персональная акция содержит следующие данные:
Секция Основное
| Поле | Описание | Обязательное поле | Редактирование |
| Активно | Признак активности записи правила для алгоритмов процессинга. | Да | Устанавливается выполнением процесса создания записи |
| Ответственный | Пользователь, ответственный за создание и ведение данной записи. | Да | Поле доступно для редактирования. Заполняется из справочника пользователей. |
| Подразделение | Подразделение, к которому относится данная запись. | Да | Поле доступно для редактирования. Заполняется из справочника подразделений. |
| Общие сведения | |||
| Наименование | Наименование правила начисления. | Да | Поле доступно для редактирования, заполняется вручную |
| Внешний идентификатор | Кодовое значение для интеграции с внешними системами. Есть возможность возвращать в ответ мягкого чека внешний идентификатор применённого дисконтного правила. | Нет | Поле доступно для редактирования, заполняется вручную |
| Вид начисления | Вид правила или поощрение, которое предоставляется в результате применения правила начисления. Возможные значения: Бонус Скидка Статусный бонус Значение по умолчанию Бонус. | Да | Поле доступно для редактирования, заполняется вручную |
| Описание | Подробное описание правила начисления. | Нет | Поле доступно для редактирования. Заполняется вручную |

Рис. Карточка правила начисления Правило-Персональная акция
Секция Параметры правила + Расширенные параметры – аналогично карточке Базовое правило кроме параметров для поля «Определять размер бонуса случайным образом»
В поле «На:» возможны значения:
- «Позиция чека и/или заказа»;
- «Только Позиция чека»;
- «Только Позиция заказа»;
- "Чек и/или заказ";
- "Только чек";
- "Только заказ".
Секция Срок действия бонуса (Секция отображается при параметре Вид начисления = Бонус, Статусный бонус, Бонус + Статусный бонус) – аналогично карточке Базовое правило
Секция Персональные предложения
| Поле | Описание | Обязательное поле | Редактирование |
| Персональные предложения | В разделе отображаются связанные с правилом персональные предложения (заводятся оператором вручную в системе) | ||

Рис. Карточка правила начисления Персональная акция – Персональные предложения
Секция Интеграционные персональные предложения
| Поле | Описание | Обязательное поле | Редактирование |
| Интеграционные персональные предложения | В разделе отображаются связанные с правилом интеграционные персональные предложения (загружаются в систему с помощью механизмов интеграции) | ||

Рис. Карточка правила начисления Персональная акция – Интеграционные персональные предложения
Секция Фильтр по чекам – аналогично карточке Базовое правило
Секция Отправка сообщений (см. также Коммуникационные сообщения) – аналогично карточке Базовое правило
Секция Информация для Личного кабинета – аналогично карточке Базовое правило
Секция Взаимоисключения – аналогично карточке Базовое правило
Секция Фильтр по позициям - аналогично карточке Базовое правило
Персональное предложение
Персональное предложение – сущность, определяющая какое именно значение поощрения будет применяться при совершении операции покупки по конкретной карте и конкретному товару. Описание полей карточки Персонального предложения:
| Поле | Описание | Обязательное поле | Редактирование | ||
| Активно | Параметр, указывающий процессинговую активность записи. | Да | Поле доступно для редактирования. Заполняется вручную. | ||
| Ответственный | Пользователь, ответственный за создание и ведение данной записи. | Да | Поле доступно для редактирования. Заполняется из справочника пользователей. | ||
| Подразделение | Подразделение, к которому относится данная запись. | Да | Поле доступно для редактирования. Заполняется из справочника подразделений. | ||
| Общие сведения | |||||
| Правило | Ссылка на правило начисления «Персональная акция», для которой применяется данное персональное предложение. | Да | Поле доступно для редактирования. Заполняется вручную. | ||
| Внешний идентификатор | Идентификатор для интеграции с внешними системами. | Нет | Поле доступно для редактирования. Заполняется вручную. | ||
| Приоритет | Приоритет значения персональной акции. Возможные значения от 1 до 100. Требуется, если для конкурирующих персональных акций необходимо применение только одной с максимальным приоритетом. | Нет | Поле доступно для редактирования. Заполняется вручную. | ||
| Дата начала действия | Дата и время начала действия значения персональной акции. | Да | Поле доступно для редактирования. Заполняется вручную. | ||
| Дата окончания действия | Дата и время окончания действия значения персональной акции. | Да | Поле доступно для редактирования. Заполняется вручную. | ||
| Карта | Поле доступно при незаполненном параметре Контакт Ссылка на карту, для которой действует персональная акция. | Да | Поле доступно для редактирования. Заполняется вручную. Необходимо заполнить или карту, или контакт. | ||
| Контакт | Поле доступно при незаполненном параметре Карта Ссылка на контакт, для которого действует персональная акция. | Да | Поле доступно для редактирования. Заполняется вручную. Необходимо заполнить или карту, или контакт. | ||
| Партнёр | Ссылка на запись партнёра, к которому относится данное персональное предложение. | Нет | Поле доступно для редактирования, заполняется вручную | ||
| Тип расчёта | Параметр, определяющий, каким именно образом будет обрабатываться ставка значения персональной акции. Возможные значения: Как в правиле Значение Процент Фиксированная цена Значение для каждого элемента Значение по умолчанию: «Как в правиле начисления» (т.е. соответствует полю «Тип расчёта» правила начисления). | Да | Поле доступно для редактирования. Заполняется вручную. | ||
| Тип акции | Параметр, определяющий, кем формируется данное персональное предложение: оператором или через интеграцию. Возможные значения: Назначена Выбрана | Да | Поле доступно для редактирования. Заполняется вручную. | ||
| Описание | Подробное описание. | Нет | Поле доступно для редактирования. Заполняется вручную. | ||
| Значение | |||||
| Размер поощрения | Значение, которое используется как ставка для начисления поощрения. | Нет | Поле доступно для редактирования. Заполняется вручную. | ||
| Кол-во товара | Поле доступно при параметре Размер поощрения = 0 Параметр акции MxN. Если заполнено данное поле, то это количество штук (M) товара, определяющее стоимость порции из N штук. | Нет | Поле доступно для редактирования при «Размер поощрения»=0. Заполняется вручную. | ||
| По цене товара | Поле доступно при параметре Размер поощрения = 0 Параметр акции MxN. Если заполнено данное поле, то это количество штук (N) товара, которое будет продано по стоимости M штук. | Нет | Поле доступно для редактирования при «Размер поощрения»=0. Заполняется вручную. | ||
| Параметры подтверждения. Для активации записи персонального предложения с учетом признака подтверждения используются метод POST PersonalCampaign/Accept. | |||||
| Требует акцепта | Поле, определяющие вид персонального предложения: применяется непосредственно и требует подтверждения. | Нет | Поле доступно для редактирования. Активируется вручную. | ||
| Акцептовано | Поле, определяющие акцептовано ПП или нет. | Нет | Значение поля передается из интеграции. | ||
| Срок действия бонуса | |||||
| Тип вычисления даты начала действия балла | Тип вычисления даты начала действия балла. Возможные значения: 1-Дата начисления 2-Дата начисления + период неактивности 3-Фиксированная дата | Нет | Поле доступно для редактирования. Заполняется вручную. | ||
| Дата начала | Поле отображается, если параметр «Тип вычисления даты начала действия балла» = Фиксированная дата Дата начала действия балла. Начальное значение 1.1.2000. | Нет | Поле доступно для редактирования. Заполняется вручную. | ||
| Период неактивности |
Период неактивности балла. Поле отображается, если параметр «Тип вычисления даты начала действия балла» = Дата начисления + период неактивности. | Нет | Поле доступно для редактирования. Заполняется вручную. | ||
| Тип периода неактивности | Поле отображается, если параметр «Тип вычисления даты начала действия балла» = Дата начисления + период неактивности. Определяет единицы измерения числа, указанного в поле «Период неактивности». Возможные значения:
Значение по умолчанию Дни. | Нет | Поле доступно для редактирования. Заполняется вручную. | ||
| Округление даты начала | Поле отображается, если параметр «Тип вычисления даты начала действия балла» = Дата начисления + период неактивности. Округление даты начала действия балла. В этом случае, если установить значение поля = Да, то балл станет активным не в момент, когда он был начислен + период неактивности, а с округлением даты согласно установленному типу периода неактивности. Например, в случае типа периода неактивности = Дней, то со следующего дня после полученной даты (дата начисления + период неактивности) с 00:00. | Нет | Поле доступно для редактирования. Заполняется вручную. | ||
| Тип вычисления даты окончания действия балла | Тип вычисления даты окончания действия балла. Возможные значения:
Значение по умолчанию Фиксированная дата. | Нет | Поле доступно для редактирования. Заполняется вручную. | ||
| Дата окончания действия | Поле отображается, если параметр «Тип вычисления даты окончания действия балла» = Фиксированная дата. Дата окончания действия балла. Начальное значение 1.1.3000. | Нет | Поле доступно для редактирования. Заполняется вручную. | ||
| Период действия | Поле отображается, если параметр «Тип вычисления даты окончания действия балла» = Дата начала + период действия. Период действия балла. | Нет | Поле доступно для редактирования. Заполняется вручную. | ||
| Тип периода действия | Поле отображается, если параметр «Тип вычисления даты окончания действия балла» = Дата начала + период действия. Определяет единицы измерения числа, указанного в поле «Период действия». Возможные значения:
| Нет | Поле доступно для редактирования. Заполняется вручную. | ||
| Округление даты окончания | Поле отображается если параметр «Тип вычисления даты окончания действия балла» = Дата начала + период действия. Округление даты окончания действия балла. В этом случае, если установить значение поля = Да, то балл перестанет быть активным не в момент, когда он начал действовать + период действия, а с округлением даты согласно установленному типу периода действия. Например, в случае типа периода действия = Дней, то на следующий день после полученной даты (дата начала + период действия) в 00:00. | Нет | Поле доступно для редактирования. Заполняется вручную. | ||
| Ограничения | |||||
| Минимальное кол-во товара | Количество товаров персональной акции во всех позициях чека, начиная с которого будет применено значение персональной акции (проверка в рамках одного чека). | Да | Поле доступно для редактирования. Заполняется вручную. | ||
| Минимальная сумма товара | Минимальная стоимость товаров персональной акции во всех позициях чека, начиная с которого будет применено значение персональной акции (проверка в рамках одного чека). | Да | Поле доступно для редактирования. Заполняется вручную. | ||
| Максимальное количество товара | Кумулятивный (накопительный) лимит количества товара, на которое может примениться персональная акция за один календарный день. Кумулятивный – значит не обязательно в рамках одного чека, а учитывает историю продаж этой персональной акции. | Да | Поле доступно для редактирования. Заполняется вручную. | ||
| Количество срабатываний для карты (за всё время) | Ограничение на применение персональной акции для конкретной карты. Значение персональной акции не может примениться более указанного в данном поле количества раз. | Нет | Поле доступно для редактирования. Заполняется вручную. | ||
| Лимит на кол-во применений для контакта | Ограничение на применение персональной акции для контакта. Поощрение по персональному предложению не может примениться более указанного в данном поле количества раз. | Нет | Поле доступно для редактирования. Заполняется вручную. | ||
| Использовать внешний метод обработки | Фильтр по применению внешних скидок. Возможные значения:
По умолчанию - NULL | Нет | Поле доступно для редактирования. Заполняется вручную. | ||
| Минимальная сумма со скидкой чека | Минимальная сумма со скидкой чека, на которую может быть применено правило персональной акции. При значении меньше указанного в поле, правило к чеку не применится. | Нет | Поле доступно для редактирования. Заполняется вручную. | ||
| Фильтры. Прим.: При указании значения для какого-либо параметра в секции Фильтры все остальные параметры в этой секции становятся недоступными для редактирования. Т.е. возможно указать значение только для какого-либо одного параметра. | |||||
| Товар | Ссылка на товар, который участвует в акции и для которого предусматривается поощрение. | Нет | Поле доступно для редактирования. Заполняется вручную. | ||
| Список товаров | Ссылка на список товаров, товары из которого участвуют в акции и для позиций чека с этими товарами предусматривается поощрение. | Нет | Поле доступно для редактирования. Заполняется вручную. | ||
| Подгруппа | Ссылка на подгруппу, товары из которой участвуют в акции и для позиций с этими товарами предусматривается поощрение. | Нет | Поле доступно для редактирования. Заполняется вручную. | ||
| Список подгрупп товаров | Ссылка на список подгрупп товаров. Определяемые опосредованной связью товары участвуют в акции и для позиций чека с этими товарами предусматривается поощрение. | Нет | Поле доступно для редактирования. Заполняется вручную. | ||
| Группа | Ссылка на группу, товары из которой участвуют в акции и для позиций с этими товарами предусматривается поощрение. | Нет | Поле доступно для редактирования. Заполняется вручную. | ||
| Список групп товаров | Ссылка на список групп товаров. Определяемые опосредованной связью товары участвуют в акции и для позиций чека с этими товарами предусматривается поощрение. | Нет | Поле доступно для редактирования. Заполняется вручную. | ||
| Подкатегория | Ссылка на подкатегорию, товары из которой участвуют в акции и для позиций с этими товарами предусматривается поощрение. | Нет | Поле доступно для редактирования. Заполняется вручную. | ||
| Список подкатегорий товаров | Ссылка на список подкатегорий товаров. Определяемые опосредованной связью товары участвуют в акции и для позиций чека с этими товарами предусматривается поощрение. | Нет | Поле доступно для редактирования. Заполняется вручную. | ||
| Партнёр | Ссылка на запись партнёра. Определяемые опосредованной связью товары участвуют в акции и для позиций чека с этими товарами предусматривается поощрение | Нет | Поле доступно для редактирования, заполняется вручную | ||
| Категория | Ссылка на категорию, товары из которой участвуют в акции и для позиций с этими товарами предусматривается поощрение. | Нет | Поле доступно для редактирования. Заполняется вручную. | ||
| Список категорий товаров | Ссылка на список категорий товаров. Определяемые опосредованной связью товары участвуют в акции и для позиций чека с этими товарами предусматривается поощрение. | Нет | Поле доступно для редактирования. Заполняется вручную. | ||
| Бренд | Ссылка на товарный бренд, товары которого участвуют в акции и для позиций с этими товарами предусматривается поощрение. | Нет | Поле доступно для редактирования. Заполняется вручную. | ||
| Список брендов | Ссылка на список брендов товаров. Определяемые опосредованной связью товары участвуют в акции и для позиций чека с этими товарами предусматривается поощрение. | Нет | Поле доступно для редактирования. Заполняется вручную. | ||
| Производитель | Ссылка на производителя, товары которого участвуют в акции и для позиций с этими товарами предусматривается поощрение. | Нет | Поле доступно для редактирования. Заполняется вручную. | ||
| Список производителей | Ссылка на список производителей товаров. Определяемые опосредованной связью товары участвуют в акции и для позиций чека с этими товарами предусматривается поощрение. | Нет | Поле доступно для редактирования. Заполняется вручную. | ||
| Характеристика 1 | Ссылка на сущность Характеристика 1, в которой передаются товары-аналоги или любые параметры товара (цвет, объем, диагональ и т.д.) для персональной акции | Нет | Поле доступно для редактирования. Заполняется вручную. | ||
| Характеристика 2 | Ссылка на сущность Характеристика 2, в которой передаются товары-аналоги или любые параметры товара (цвет, объем, диагональ и т.д.) для персональной акции | Нет | Поле доступно для редактирования. Заполняется вручную. | ||
| Характеристика 3 | Ссылка на сущность Характеристика 3, в которой передаются товары-аналоги или любые параметры товара (цвет, объем, диагональ и т.д.) для персональной акции | Нет | Поле доступно для редактирования. Заполняется вручную. | ||
| Характеристика 4 | Ссылка на сущность Характеристика 4, в которой передаются товары-аналоги или любые параметры товара (цвет, объем, диагональ и т.д.) для персональной акции | Нет | Поле доступно для редактирования. Заполняется вручную. | ||
| Прочие параметры | Дополнительные параметры персонального предложения в виде json из массива полей интеграционной таблицы. Передаются в ответе на запросы методов по персональным акциям. Каждая запись связана с одной записью персональных акций по внешнему идентификатору. Пример преобразованного массива данных в одну запись: {"Campaign PCValue code":"ABC000R","Offer Product Externalid":98765432,"Offer Product Name":”Товар”,"Offer Product IconUrl":"ссылка 1",”Small Image":"ссылка 2”,”Loyalty Offer Category Id":1234567,”Group":"Группа”,”Subgroup":"Подгруппа”,”Вenefit id":567890,”Benefit Value":50.000} | Нет | Поле доступно для редактирования. Заполняется из интеграции и вручную. | ||
| Примечания | Подробнее передаваемые поля описаны в методе получения персональных предложений GET PersonalCampaign/GetAllByContact | ||||
| Форматы магазинов | |||||
| Список форматов магазинов | Ссылка на сущность Список форматов магазина. Доступны для выбора только те списки форматов магазинов, у которых партнёр совпадает с партнёром персональной акции. Можно перейти на создание новой сущности. | Нет | Поле доступно для редактирования. Заполняется вручную. | ||
| Сообщение | |||||
| Сообщение | Текст сообщения по персональному предложению, которое выводится по настроенным каналам связи: на кассу, по SMS, по E-mail. | Нет | Поле доступно для редактирования. Заполняется вручную. | ||
| Порядок расположения шаблонных сообщений | |||||
| Приоритет расположения | Приоритет расположения персональной акции в сообщении клиенту с персональными акциями. Возможные значения от 1 до 100. Значение по умолчанию: 50. | Нет | Поле доступно для редактирования. Заполняется вручную. | ||
| Создать E-mail | Разрешение на отправку данной персональной акции посредством E-mail. Возможные значения: Да Нет | Да | Поле доступно для редактирования. Заполняется вручную. | ||
| Создать SMS | Разрешение на отправку данной персональной акции посредством SMS. Возможные значения: Да Нет | Да | Поле доступно для редактирования. Заполняется вручную. | ||
| Создать сообщение на чек | Разрешение на отправку данной персональной акции посредством сообщения на чек. Возможные значения: Да Нет | Да | Поле доступно для редактирования. Заполняется вручную. | ||
| Создать сообщение в ЛК | Разрешение на отправку данной персональной акции посредством сообщения в ЛК. Возможные значения: Да Нет | Да | Поле доступно для редактирования. Заполняется вручную. | ||
| Создать сообщение кассиру | Разрешение на отправку данной персональной акции посредством сообщения кассиру. Возможные значения: Да Нет | Да | Поле доступно для редактирования. Заполняется вручную. | ||
| Создать PUSH сообщение | Разрешение на отправку данной персональной акции посредством PUSH сообщения. Возможные значения: Да Нет | Да | Поле доступно для редактирования. Заполняется вручную. | ||
Внешний вид карточки Персональное предложение:



Рис. Карточка «Персональное предложение»

Рис. Карточка «Персональное предложение» - Сообщения, Порядок расположения шаблонных сообщений
Тип расчёта персонального предложения
Значение персональной акции напрямую связано с правилом начисления. Какой тип поощрения (бонусный балл или скидка) предоставляется клиенту по персональной акции - определяется правилом начисления. Также правилом начисления определяется тип расчёта поощрения, то есть, что это будет: процент, фиксированное значение, фиксированная цена или значение для каждого элемента. Если одновременно запланированы персональные акции в рамках одной программы с разными типами, например, на один товар даётся процентная ставка, на другой предоставляется фиксированное значение, то можно задать такие значения персональной акции в рамках одного правила. Для этого служит значение поле «Тип расчёта» внутри самого персонального предложения. Тип расчёта может быть: Как в правиле начисления, Значение, Процент, Фиксированная цена, Значение для каждого элемента.
Если в значении персональной акции установлен тип расчёта «Как в правиле начисления», то для такой акции значение типа расчёта берётся из правила.
В остальных случаях тип расчёта по правилу игнорируется, а определяется непосредственно значением персонального предложения.

Рис. Тип расчёта в карточке «Персональное предложение» в режиме редактирования
Если это «Значение», то вне зависимости от того, какой тип расчёта указан в правиле, будет применяться на каждую позицию чека, содержащим товар персональной акции, определённое значение поощрения. Например, 30 руб. фиксированной скидки. Следует иметь в виду, что значение поощрения предоставляется по позиции чека. То есть если в позиции содержится два товара или один товар, в обоих случаях поощрение будет одинаковым.
В системе есть возможность в размере фиксированного поощрения учесть количество товара в позиции. То есть настроить персональную акцию таким образом, что если в позиции находится один товар, то давать скидку 10 руб., если два товара – 20 руб., если полтора товара – то 15 руб. Это делается указанием типа расчёта, равного «Значение для каждого элемента».
В случае, если тип расчёта персональной акции указан как «Фиксированная цена» - это означает, что по товару позиции будет применена такая скидка, как будто бы товар продан по той цене, которая указана как значение в персональной акции. Например, установлена персональная акция фиксированной цены со значением 150 для товара 1. Причём по прайс-листу цена товара составляет 200. В этом случае будет предоставлена скидка 25%.
Следует помнить, что для персональных акций MxN поле «Тип расчёта» в карточке персонального предложения должно быть заполнено как «Процент».
Если по какому-то товару установлена минимальная расчётная цена, то величина скидки будет также определяться этой ценой. Общая стоимость товара не может быть ниже минимальной расчётной цены, помноженной на количество этого товара в позиции. Поэтому, если ставка скидки такова, что результирующая стоимость становится меньше МРЦ, то ставка скидки будет пропорционально уменьшена, несмотря на то, какова она: в процентах или в фиксированных значениях.
Акцепт персональной акции
Персональные акции могут быть двух видов: применяемыми непосредственно и требующие подтверждения. За их настройку отвечает два поля в секции «Параметры подтверждения» в Персональном предложении: первое определяет вид акции (акцептуемая или нет), второе - акцептована или нет. Если поле “Требует акцепта” = «Да», контакт в МП видит кнопку акцепта, если он акцептует персональное предложение, в Manzana Online передается значение в поле «Акцептовано» = «Да». Если “Требует акцепта” = «Нет», контакт в МП не видит кнопку акцепта.
Дополнительно применяются методы POST PersonalCampaign/AcceptByContactIntId, PersonalCampaign/Accept, позволяющие акцептовать запись персональной акции. Если у контакта есть запись персональной акции, но в этой записи значения полей:
- «Требует акцепта» = NULL или 0 (независимо от значения поля «Акцептовано») – метод завершается с ошибкой: «Запрашиваемая для активации запись персонального предложения не требует акцепта».
- «Требует акцепта» = 1 и «Акцептовано» = 1 - метод завершается с ошибкой: «Запрашиваемая для активации запись персонального предложения акцептована».
- «Требует акцепта» = 1 и «Акцептовано» = 0 – персональная акция активируется, параметр «Акцептовано» устанавливается в значение 1 и формируется ответ на запрос метода.
Если персональное предложение требует акцепта, то к позиции чека может примениться только акцептованная (подтверждённая) персональная акция. При значении «Акцептовано» = 0 – персональная акция не примениться к позиции чека, даже если остальные параметры и значение артикула в позиции позволяют её применить.
Ограничения персональной акции
Ограничения есть нескольких видов:
- ограничение на минимальное значение количества товаров
- ограничение на минимальную сумму товаров
- ограничение на максимальное количество товаров
- количество срабатываний для карты
- лимит на количество применений для контакта
- использование внешнего метода обработки.

Рис. Ограничения в карточке «Персональное предложение»
Ставка правила будет применена к позиции чека, если количество данного товара во всех позициях чека превосходит значение «Минимальное количество товаров» или же стоимость всех данных товаров во всех позициях чека превосходит значение «Минимальная сумма товара». Возможен режим, когда минимальная сумма будет сравниваться не со стоимостью товаров (то есть суммой со скидкой по позициям), а с суммой товаров по позициям. Такой режим будет, если системная настройка Loyalty.Processing.Writeoff.CalcFromFullSum установлена в значение 1.
В случае, когда минимальные значения указываются для какой-то общности товаров, то эти минимальные значения распространяются на всю общность товаров. Например, если указано, что ставка действует, начиная с количества равного 5. При этом также указано, что ставка распространяется на группу товаров. В этом случае, будет проверяться, есть в чеке 5 товаров именно этой группы, но это не обязательно товары одинаковых артикулов. Это относится ко всем общностям: подгруппам, брендам, спискам товаров, спискам подкатегорий и т.д.
Количество срабатываний для карты (за всё время) – это сколько раз может примениться персональная акция (количество чеков, в которых может примениться персональная акция) по одной и той же карте.
В текущей версии ограничения для минимального количества, минимальной суммы, количества срабатываний действуют только для дисконтных персональных акций. Для бонусных правил эти значения игнорируются. Следует также обращать внимание, что для дисконтных персональных акций ограничение на количество срабатываний будет обрабатываться, если дополнительно включена функциональность передачи идентификаторов правил и акций в расширенных атрибутах позиций чека.
Следует иметь в виду, что при заведении значения персональной акции можно указать либо карту, либо контакт. Но можно сделать разные значения для контакта и для карты, причём карта принадлежит тому же контакту. В этом случае, если ещё и товары одинаковые, то в расчёт будет взята запись, которая предоставляет максимальное поощрение.
Аналогично, если указаны поощрения и для товара и, например, для группы, включающей данный товар. В расчёт будет взята запись, по которой предоставляется максимальное поощрение.
Лимит на количество применений для контакта ограничивает предоставление контакту поощрения по персональному предложению за весь период действия предложения. При обработке чеков с персональными акциями с заполненным лимитом на количество применений для контакта происходит логирование применения персональных акций. Если в логе есть запись с внешним идентификатором акции, то при регистрации фискального запроса увеличивается счётчик применения персональной акции.
Применение бонусной персональной акции считается непосредственно, если по ней случилось начисление баллов. Применение дисконтной персональной акции считается опосредованно по значению расширенного атрибута в позиции чека, ключ которого начинается на значение настройки Loyalty.Processing.Soft.DiscountPersonalCampaignValueRuturnAsAttribute.Prefix.
При применении персональной акции в её записи проверяется значение лимита на количество применений для контакта.
Если значение не NULL, то:
- По идентификатору акции и контакту карты запроса проверяется количество применений данной акции, если запись лога отсутствует, значение считается равным 0;
- Если разница (значение поля «Лимит на количество применений для контакта» – значение лога) строго больше нуля – персональная акция применяется (если её применение возможно по иным параметрам: сроки действия, исчерпанность количественных лимитов и тп).
При регистрации запроса отмены чека или заказа проверяется наличие в позициях удаляемого чека/заказа расширенного атрибута, начало ключа которого совпадает со значением настройки Loyalty.Processing.Soft.DiscountPersonalCampaignValueRuturnAsAttribute.Prefix. Если такой атрибут имеется, то по значению внешнего идентификатора акции (значение ключа атрибута без префикса) и контакту карты удаляемого запроса запись агрегата лимита уменьшается на 1.
Изменение агрегатов лимита при регистрации возвратов, отказов от части заказа, закрытий неоплаченных заказов – не учитывается в текущей функциональности.
К ограничениям персональной акции также относится кумулятивный количественный лимит, задаваемый параметром «Максимальное количество товара». Функциональность данного параметра учитывается, если включена системная настройка Loyalty.Processing.PCValue.UseLimits. В текущей версии данное ограничение также действует только для дисконтных персональных акций. Также дополнительно должна быть включена функциональность передачи идентификаторов правил и акций в расширенных атрибутах позиций чека.
Если функциональность включена, то по данной персональной акции можно получить поощрение на количество товара не более, чем указано в максимальном количестве. Срок действия лимитов по персональным предложениям регулируется партнерской настройкой Loyalty.Processing.QuantitativeLimits.PCValueLimits.TurnOff
При включенной настройке записи лимитов удаляются при завершении действия персональной акции. Это означает, что поощрения можно получать на количество товаров, указанное в поле "Максимальное количество товаров", пока не закончится акция. При прочих значениях, а также при отсутствии настройки, действует процедура очистки лимитов раз в сутки, поэтому поощрение по персональной акции можно получить только на указанное количество товара в сутки, независимо от того, по какому количеству покупок применилась сама акция. При включении очистки лимитов сутки считаются по серверному времени.
Максимальное количество товара по предложению может быть использовано только для товарных персональных акций, которые устанавливают поощрение для конкретных товарных артикулов, но не для групповых акций. Более того, лимит будет срабатывать, если кассовое ПО позволяет агрегировать одинаковые товары в одну позицию. Если в составе покупки есть несколько товарных позиций с товаром персональной акции, то параметр количественного лимита будет проигнорирован. Данный лимит также не распространяется на персональные акции вида MxN.
Алгоритм сортировки по цене для персональных акций устанавливается настройкой: Loyalty.Processing.PCValue.Limits.Sorting.
Важно! Следует обратить внимание: количественный лимит для персональных акций применяется также и для групповых акций, когда различные товары могут быть объединены, например, в список. Нужно тщательно следить, чтобы групповые общности не содержали одновременно и штучные и весовые товары.
Информация об израсходованном лимите для персональной акции отображается в интерфейсе Loyalty и возвращается в ответе методов API.
В поле «Количество» в карточке Контакта записывается количество товаров, купленных им с применением персонального предложения (ПП).

Рис. Поле "Количество" в подразделе "Персональные предложения"
Аналогичное значение передается в параметре "Cumulative Quantity" в ответе методов:
GET PersonalPromotionalOffers/GetAllByContact
GET PersonalCampaign/GetAllByContact
GET PersonalCampaign/GetAllByCard
Количество дней, в течение которых хранятся значения использованного кумулятивного лимита по персональным предложениям, регулируется партнерской настройкой Loyalty.Processing.PCValue.DaysOfStorageOfCumulativeLimit. Специальный джоб очистки записей накопительных лимитов по ПП удаляет строки из таблицы хранения этих записей, если дата их создания больше количества дней, указанных в настройке.
При возвратах\роллбеке в дату чека, количество товаров по ПП пересчитывается, если на следующие сутки - никакие изменения не вносятся.
В ограничениях персональной акции также можно настроить фильтр по применению внешних скидок - желтых ценников. В зависимости от значения в поле «Использовать внешний метод обработки» и значения ключа из партнерской настройки Loyalty.Processing.PCValue.ExternalMethod.PositionEAKey будет происходить начисление по персональному предложению или нет. По товару в чеке или в запросе заказа будет предоставлено поощрение, если:
- «Использовать внешний метод обработки» = «Не используется»
- «Использовать внешний метод обработки» = «Только белые», при этом у позиции с товаром из персонального предложения нет ни одного расширенного атрибута с ключом из партнерской настройки со значением true, либо значение отличается.
- «Использовать внешний метод обработки» = «Только желтые», при этом у позиции с товаром из персонального предложения есть хотя бы один расширенный атрибут с ключом из партнерской настройки со значением true.
По товару в чеке или в запросе заказа не будет предоставлено поощрение, если:
- «Использовать внешний метод обработки» = «Только белые», при этом у позиции с товаром персонального предложения есть расширенный атрибут с ключом из партнерской настройки со значением true.
- «Использовать внешний метод обработки» = «Только желтые», при этом у позиции с товаром из персонального предложения нет ни одного расширенного атрибута с ключом из партнерской настройки со значением true, либо значение отличается.
Лимит поощрений для персональных предложений в абсолютном выражении
Верхние пороги лимитов настраиваются в параметрах персональной акции:
- Максимальный размер поощрения в абсолютном выражении за всё время действия ПП
- Максимальный размер поощрения в абсолютном выражении за сутки
- Максимальный размер поощрения в абсолютном выражении в рамках чека/позиции чека
Для скидочных механик лимит задается как верхний порог скидки в рублевом выражении для конкретной позиции, которая входит в данное ПП, или для всего чека.
Рассмотрим пример применения дисконтного лимита для позиционного персонального предложения.
Клиент получил персональное предложение «Скидка 20% на любимое кофе». Для ПП в интеграционную таблицу переданы значения:
- в поле Максимальный размер поощрения в абсолютном выражении в рамках чека/позиции чека - 100 (скидка 100 руб. на товар),
- в поле Максимальный размер поощрения в абсолютном выражении за всё время действия ПП - 250 (скидка 250 руб. за всю акцию).
При совершении 1-ой покупки, клиент получает скидку 100 руб. на кофе. Клиент делает 2-ую покупку и тоже получает скидку 100 руб. на кофе. За последующую покупку он может получить максимальную скидку на товар из ПП 50 руб., так как т.к. общий лимит не позволяет получить больше.
Пример настройки персональной акции с дисконтным лимитом на позицию чека:

Настройка персонального предложения:

Передаваемые поля для дисконтного лимита в интеграционном персональном предложении:

Теперь рассмотрим пример применения дисконтного лимита для чекового персонального предложения.
Клиент получил персональное предложение «Скидка 10% для любимых покупателей». Для ПП в интеграционную таблицу переданы значения:
- в поле Максимальный размер поощрения в абсолютном выражении за сутки – 50 (скидка 50 руб. на чек),
• в поле Максимальный размер поощрения в абсолютном выражении за всё время действия ПП - 100 (скидка 100 руб. за всю акцию).
Клиент совершает 1-ю покупку на сумму 400 руб. и получает скидку в размере 40 руб. на чек. В тот же день осуществляет покупку на сумму 500 руб., но получает уже скидку 10 руб., т.к. суточный лимит предоставляет скидку только до 50 руб. На следующий день клиент снова совершает покупку на сумму 5000 руб. и получает скидку на сумму 50 руб. т.к. снова отработал суточный лимит. За следующую покупку клиент уже не получит скидку, так исчерпал общий лимит скидки.
В настройке персональной чековой акции задействованы аналогичные поля, но в основании начисления «На:» необходимо указать «Чек и/или заказ». Товары в данном случае указывать не нужно.
Для бонусных механик лимит ограничивает максимальное количество бонусов, начисляемых на позицию из персонального предложения или на весь чек. Лимитируются как обычные, так и статусные бонусы.
Рассмотрим пример применения бонусного лимита для позиционного персонального предложения.
Клиент получил персональное предложение «5% бонусами за покупку на любимое кофе». Для ПП в интеграционную таблицу переданы значения:
• в поле Максимальный размер поощрения в абсолютном выражении в рамках чека/позиции чека - 10 (10 бонусов за товар),
• в поле Максимальный размер поощрения в абсолютном выражении за всё время действия ПП - 20 (20 бонусов за всю акцию).
Клиент совершает 1-ю покупку на 100 руб. и получает 5 бонусов за покупку кофе. Далее совершает 2-ю покупку на 400 руб. и получает только 10 бонусов за кофе, т.к. лимит не позволяет получить 20. За 3-ю покупку на 1000 руб. клиент получает 5 бонусов на товар, т.к. общий лимит не позволяет получить больше 20-ти бонусов.
Пример настройки персональной акции с бонусным лимитом на позицию чека:

Настройка персонального предложения:

Передаваемые поля для бонусного лимита в интеграционном персональном предложении:

Теперь рассмотрим пример применения дисконтного лимита для чекового персонального предложения.
Клиент получил персональное предложение «2% бонусами для любимых покупателей». Для ПП в интеграционную таблицу переданы значения:
- в поле Максимальный размер поощрения в абсолютном выражении за сутки – 10 (10 бонусов на чек),
• в поле Максимальный размер поощрения в абсолютном выражении за всё время действия ПП - 15 (15 бонусов за всю акцию).
Клиент совершает 1-ю покупку на сумму 100 руб. и получает 2 бонуса. В тот же день осуществляет покупку на сумму 500 руб., но получает 8 бонусов т.к. суточный лимит предоставляет только до 10 бонусов. На следующий день клиент совершает покупку на сумму 5000 руб., но получает 5 бонусов, т.к. достиг размера общего лимита (15 бонусов).
В настройке персональной чековой акции задействованы аналогичные поля, что и при настройке позиционной механики, но в основании начисления «На:» необходимо указать «Чек и/или заказ». Товары в данном случае указывать не нужно.
Если по какому-то из полей лимитов в абсолютном выражении передано значение 0, то клиент не получает скидку. Если поля не заполнены, лимит отсутствует, ограничений на скидку нет.
Значение лимитов передается в запросах POS сервиса в тегах <PersonalOffers>.
Полученное в запросе начисление по ПП сравнивается с разницей между бонусным или дисконтным лимитом по этой ПП и накопленными поощрениями в рамках указанного периода. Если начисление меньше разницы – ПП срабатывают стандартно, начисление по чеку осуществляется в полном объёме. Если больше, то начисление по ПП уменьшается согласно лимиту, вплоть до нуля. Если это чековое ПП (без распределения по позициям) – уменьшается общее начисление. Если это позиционное правило (или с распределением по позициям) – уменьшается общее начисление и пропорционально делится на позиции, прошедшие фильтрацию ПП.
Если теги не переданы или пустые – ПП считается не лимитированным. Если передан 0, то по данному ПП поощрений не предоставляется.
Ограничения и особенности применения:
- Начисления при проведении запросов по карте без контакта в лимитах не учитываются.
- В лимитах учитываются роллбеки и возвраты. Обновляются агрегаты по лимитам.
- Лимиты применяются в заказах.
- Чековые позиционные и суточные лимиты очищаются каждый день после окончания календарных суток.
- Лимиты в рамках всего действия ПП очищаются через 2 недели после окончания действия ПП.
Другие ограничения
Если правило начисления формирует сообщение с метапеременной для всех текущих персональных предложений, то сообщение будет сформировано, если правило применилось хотя бы по одной позиции чека.
Не поддерживается отправка сообщений с персональными предложениями через механизм расширенных E-mail рассылок.
Лимиты персональных акций (все) не влияют на формирование сообщений с персональными предложениями.
Количественный лимит персональной акции можно использовать для персональных акций, заданных для артикулов и только в случае, когда кассовое ПО позволяет объединить позиции одинаковых артикулов в одну позицию.
Персональные предложения хранятся в Manzana Loyalty Online ограниченное время, заданное в настройке Loyalty.PCValue.LifeTime, потом удаляются, но при этом не удаляются в CDP.
Фильтрация по формату магазина в персональных акциях
Если в настройке персонального предложения указывается ссылка на список форматов магазина, то персональная акция должна применяться только в тех магазинах, у которых есть связь с одним из форматов магазина из списка. Подробнее о форматах магазина и их списков описано в разделе Форматы магазина и списки форматов магазинов.

Рис. Фильтр по формату магазина в настройке персонального предложения

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

Рис. Фильтр по формату магазинов в Фильтре по чекам
Персональная акция должна применяться только в тех магазинах, формат которых входит во включаемый список этого фильтра. Магазины чека, у которых формат отличается или отсутствует, не проходят фильтрацию по правилу персональной акции.
Если в фильтре по чекам список форматов магазина исключаемый, то чеки магазинов, формат которых включен в исключаемый фильтр, также не проходят фильтрацию. Форматы магазинов, у которых формат отличается из тех что в списке или отсутствует, фильтрацию по правилу проходят.
Если форматы магазинов содержат оба фильтра – включаемый и исключаемый список, то:
- форматы магазинов из списка, включенного в исключаемый фильтр, не проходят фильтрацию.
- магазины без форматов, не проходят фильтрацию по правилу.
- форматы магазинов из списка, включенного во включаемый фильтр, проходят фильтрацию.
Обработка персональной акции со значением MxN
Запись значения персональной акции может быть не только конкретным значением поощрения, но и предоставлять скидку по алгоритму MxN. В этом случае, в правило начисления должно быть обязательно дисконтным (Вид начисления = «Скидка»), а в карточке Персонального предложения соответственно указать значение параметров M и N.

Рис. Параметр «Вид начисления» в карточке правила начисления «Персональная акция»
В записи значения персональной акции должны быть заполнены поля «Кол-во товара» и «По цене товара». Поле «Кол-во товара» задаёт некоторую порцию из количества (М), которое будет продано по стоимости N товаров, которое задаётся значением поля «По цене товара». Разница стоимостей оформляется как применённая к данному товару скидка. Например, если указано 5 по цене 4, то получится итоговая скидка 20%. Соответствующая скидка будет распределена по позициям, которые попали под применение такой персональной акции.

Рис. Параметры «Количество товара» и «По цене товара» в карточке «Персональное предложение»
В случае если задаётся не какой-то конкретный товар, а некоторая общность, то по умолчанию скидка по данному алгоритму будет предоставлена именно на конкретный артикул (если в составе чека цена этих товарных позиций одинакова). В системе есть возможность предоставлять поощрения не только по товарам определённого артикула и одинаковой цены. В случае если задаётся какая-то общность, например, группа товаров, можно распределить скидку на позиции с товарами данной группы в одном чеке. Например, в значении персональной акции указано: три товара определенного бренда по цене одного. В этом случае один товар данного бренда (если в составе чека есть сразу три товара) будет продан со скидкой 100%. В данном случае появляется неопределённость - какой именно должен быть этот товар. Однозначность фиксирования данного товара задаётся значением системной настройки: Loyalty.Processing.CalcMethod.MxN.Sorting.
Если значение данной настройки установлено в 0, то при сортировке товаров скидка не распределяется на товары разной цены. Например, установлено значение персональной акции: «Три товара определенного артикула по цене двух». Далее, в чеке продаётся 6 товаров одинакового артикула, причём три по одной цене, два – по другой, и один – по какой-то третьей цене. В этом случае только на один товар будет предоставлена скидка 100%, а именно на один из трёх товаров, цены которых одинаковы. Аналогично, если указан не артикул, а какая-то общность товаров, например, группа. Если цены товаров группы совпадают, то акция может примениться, если в чеке наберётся М таких товаров с одинаковой ценой. Если цены не совпадают, то значение М будет вычисляться каждый раз для каждой отдельной цены.
Если значение данной настройки установлено в 1, то для предоставления 100%-ой скидки будут выбираться товары по возрастанию цены. То есть в самую первую очередь скидка будет предоставлена на товар с самой минимальной ценой. Например, установлена персональная акция: товары категории А продавать 4 по цене 2-х. В этом случае, если в чеке присутствует четыре товара заданной категории, то два из них будут проданы со 100% скидкой. Два товара будут выбраны так, чтобы их цены были меньше цен двух других товаров. Скидка при этом будет распределена на 4 товара данной общности. В случае равенства цен – обработка акции производится обычным методом, как и при отсутствии настройки.
Если значение данной настройки установлено в 2, то для предоставления 100%-ой скидки будут выбираться товары по убыванию цены. То есть в самую первую очередь скидка будет предоставлена на товар с самой большой ценой. Например, установлена персональная акция: товары категории А продавать 6 по цене 5-ти. В этом случае, если в чеке присутствует шесть товаров заданной категории, то один из них будет продан со 100% скидкой. Этот один товар как раз и будет товаром с максимальной ценой. Скидка при этом будет распределена на все 6 товаров данной общности. В случае равенства цен – обработка акции производится обычным методом, как и при отсутствии настройки.
Если значение данной настройки установлено в 3, то для предоставления скидки будет выбираться среднее значение. Будет вычисляться средняя цена М товаров, далее на эту общность из М товаров будет в итоге распределено значение скидки, равное (М-N) умножить на среднюю цену товаров. Например, объявлена акция: товары бренда А продаются 5 по цене 3-х. В чеке как раз есть пять таких товаров: 1 по цене 100, 1 по цене 200, 1 по цене 300, 1 по цене 400 и 1 по цене 500. Средняя цена этой общности товаров есть 300. Соответственно, покупатель должен заплатить за эти товары стоимость, равную 900. 2х300 – это как раз распределённая скидка. Ставки будут вычислены в процентах и распределены на эти пять товаров.
Для персональной акции MxN также действуют ограничения по минимальному количеству, работающие строго аналогично этому ограничению для конкретных значений. То есть если ограничения относятся к фиксированной общности: группа, подгруппа, бренд, производитель, то запись значения персональной акции будет применена в расчёте, если общее количество товаров в чеке данной фиксированной общности будет больше или равно минимальному количеству.
Следует иметь в виду: значение персональной акции MxN будет применяться некорректно, если правило начисления есть правило фиксированной цены, либо по товарам есть ненулевые значения МРЦ.
Обработка персональной акции фиксированной цены
Также, как и товарная акция, персональная акция может быть персональной акцией фиксированной цены. Обработка полностью аналогична. Ставки будут использоваться уже как фактические стоимости данного товара для данного покупателя. Разница в цене между прайсовой ценой (цена по прайс-листу – это цена, переданная в запросе чека) и стоимостью товара по персональной акции будет фиксироваться как предоставленная скидка.
Если организовываются конкурирующие персональные акции, следует обращать внимание на приоритет и на максимум. Например, есть значение для группы товаров и значение для конкретного товара, который входит в эту группу, а также в правиле персональной акции указан «Тип расчёта персональной акции» как «Максимальное поощрение», при этом «Тип расчёта» указан как «Фиксированная цена». В этом случае, будет применено значение персональной акции с наименьшим значением, поскольку чем меньше фиксированная цена, тем более максимально (выгодно) поощрение для клиента.
Важно! В случае, если по каким-то товарам проходит персональная акция фиксированной цены, во избежание некорректной обработки эти товары не должны иметь минимальной расчётной цены.
Интеграционные персональные акции
Ручные персональные акции хранятся в базе данных. Они могут быть заведены в систему либо непосредственно через интерфейс, либо созданы через стандартный импорт.
Если необходимо использовать много значений персональных акций (тысячи, миллионы), то лучше использовать интеграционные персональные акции. Они загружаются специальными алгоритмами интеграции и работают с высокой степенью производительности.

Рис. Секция «Интеграционные персональные предложения» в карточке правила начисления «Персональная акция»
Реализация конкретного механизма интеграции не входит в версию системы и может сильно отличаться для различных проектов.
Записи интеграционных персональных акций хранятся в базе периодами. По умолчанию данный период установлен как календарная неделя с 00.00 понедельника до 23:59 воскресенья. При конкретной локализации системы допускается изменение периода и установка для него произвольных значений, кратных неделе.
Для хранения значений персональных акций в базе предусмотрены три таблицы: для будущих периодов, для текущего периода, для прошлых периодов. Поощрения предоставляются только по акциям, которые хранятся в таблице текущих значений. Интеграционные персональные акции загружаются в систему как будущие, когда наступит дата смены периода, эти акции переходят в таблицу текущих акций. Текущие акции как раз и являются теми, по которым предоставляется поощрение по чеку. Время чека должно укладываться в ограничивающий акцию период действия. Как только наступит очередная дата смены периода – текущие персональные акции переходят в таблицу прошлых персональных акций. Теперь по ним невозможно предоставление поощрений, но их значения используются для корректного пересчёта параметров возврата, если случается событие возврата покупки. Для времени хранения прошлых персональных акций предусмотрен определённый период, задаваемый в системной настройке Loyalty.PCValue.LifeTime. По истечении данного периода прошлые персональные акции переходят в архивную таблицу. Корректная обработка чеков возврата для архивных персональных акций не предусматривается.
Через интерфейс системы редактировать интеграционные значения персональных акций нельзя.


Рис. Карточка интеграционного персонального предложения
Просмотреть значения интеграционных персональных акций можно в связанных записях правила начисления, контакта и карты.
В карточке Контакта интеграционное персональное предложение находится в связанном представлении Правила => Интеграционные персональные предложения.

Рис. Интеграционное персональное предложение в карточке контакта
Если нужно проверить, воспользовался ли покупатель предложением и какое поощрение получил, то эту информацию можно увидеть во вкладке Бонусы => Баллы начисления. В строке записи начисления в поле « Интеграционное персональное предложение» будет отображаться ссылка на ИПП. Наличие такой информации облегчает работу с обращениями покупателей, когда необходимо предоставить им ответ, в рамках какой персональной акции были начислены бонусы.
Если правило начисления отработало не в рамках какого-либо ИПП, то в данном поле будет стоять прочерк.

Аналогичную информацию можно посмотреть в подразделах “Бонусы / Баллы начисления» для разделов
- Чек;
- Карта.
При переходе по ссылке открывается ИПП.

Рис. Акцептованное контактом ИПП
Если данное ИПП может быть акцептовано и контакт его принял, то в поле «Требует акцепта» будет значение «Да». В поле «Дата акцепта» выводится дата и время акцепта, когда контакт акцептовал ИПП.
Если ИПП информационное и не требует акцепта, в значении поля будет стоять "Нет данных"/"Нет" , а поле «Дата акцепта» будет отсутствовать в интерфейсе.
Отложенная активация баллов по интеграционным персональным предложениям
Во избежание фрода, полученные при покупке баллы должны быть доступными к списанию не сразу после начисления. Если в ПП заполнены параметры сроков действия бонусов, то они устанавливаются на основании этих параметров. В случае, если параметры сроков действия в ПП не заполнены, то они берутся из правила персональной акции.
Для бонусных персональных предложений, загруженных по интеграции, предусмотрены дополнительные параметры сроков действия бонусов, которые записываются в специальные интеграционные таблицы pcvalue.integration_rule и archpcv.pcvalue.integration_rule и в таблицы базы лояльности loyalty. PCValue.
Можно гибко регулировать даты начала и окончания действия баллов, задавать периоды их действия или неактивности. Например указать, чтобы баллами можно было воспользоваться на следующий день после начисления. С описанием типовых настроек сроков действия можно ознакомиться здесь. Из таблиц базы данных ИПП загружаются в систему с учетом указанных сроков действия бонусов, которые применяются при покупке товаров из персонального предложения.
В интерфейсе сроки действия бонусов отображаются в ИПП как не редактируемые поля.

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

Рис. Параметры настройки сроков действия баллов для бонусного персонального предложения
Персональные акции в запросах POS-сервисов
Все значения персональных акций можно передавать в ответ на запросы чеков (возвращаются персональные акции по переданной в запросе карте, а также по контакту этой карты). В этом случае для каждой персональной акции формируется отдельный блок, внутри которого передаются параметры персональной акции. Данная функциональность включается системной настройкой Loyalty.Processing.ShowPersonalOfferInChequeResponse.
Если данная настройка включена, то в ответе по запросу чека будут присутствовать все текущие значения персональной акции по отдельности. Значения будущих периодов не возвращаются. При этом в отдельных тегах выводятся все параметры значения персональной акции: дата начала действия, дата окончания действия, описание значения персональной акции, текст сообщения значения персональной акции (персональное предложение), значение персональной акции, минимальное количество товара, по цене товара (для акции M*N), количество товара (для акции M*N).
Значения в тегах будут переданы, даже если состав чека таков, что ни одно из значений персональной акции к нему не применяется.
Расширенный атрибут для персональной акции
В случае, если к какой-то позиции применилась персональная дисконтная акция и включено формирование расширенных атрибутов детализации скидки (партнёрская настройка Loyalty.Processing.Soft.DiscountRuleRuturnAsAttribute.TurnOn в значении 1, y или Y), то для персональной акции формируется отдельный расширенный атрибут.
Ключ этого атрибута состоит из двух частей: первая часть (префикс), задаётся в строковом значении партнёрской настройки Loyalty.Processing.Soft.DiscountPersonalCampaignValueRuturnAsAttribute.Prefix; вторая часть (без пробела примыкающая к первой) состоит из значения внешнего идентификатора персональной акции.
Значение расширенного атрибута формируется в виде Json, если включена партнёрская настройка Loyalty.Processing.Soft.DiscountRuleRuturnAsAttribute.ReturnJson.
Если значение формируется в виде JSON и дополнительно включена настройка Loyalty.Processing.Soft.DiscountRuleRuturnAsAttribute.ReturnJson.PCValue.CampaingCode.TurnOn в значение расширенного атрибута добавляется ещё один параметр «CC», в который записывается внешний идентификатор кампании из системы предиктивной аналитики (не путать с кампаниями внутри ML), к которой относится значение персональная акция. Значение добавляется независимо от значения настройки Loyalty.Processing.Soft.DiscountRuleRuturnAsAttribute.ReturnJson.ValueType.
Если Loyalty.Processing.Soft.DiscountRuleRuturnAsAttribute.ReturnJson.ValueType = 1, то значение атрибута будет выглядеть так: <Value>{"N":"C1","Q":3.00,"D":11.00,"CC":"текстовый код кампании"}</Value>. Из чего формируется значение расширенного атрибута можно дополнительно ознакомиться в разделе Формирование значений расширенных атрибутов.
Внешние идентификаторы персональных акций
Внешние идентификаторы персональных акций предназначены для интеграции с внешними системами, такими как кассовое ПО и система предиктивной аналитики. Для корректной функциональности МЛ важно, чтобы в каждой позиции чека в специальных значениях расширенных атрибутов передавались эти идентификаторы, так как с помощью этих идентификаторов происходит определение применившихся акций и пересчёт количественных лимитов.
Внешние идентификаторы должны быть уникальны в рамках объекта персональной акции: контакта или карты. За всю историю продаж не должно быть ни одного случая, чтобы для одного и того же объекта были сформированы хотя бы даже две персональные акции с одинаковыми внешними идентификаторами.
Если персональные акции формируются и загружаются какой-то внешней системой, они заведомо должны иметь уникальные (в рамках объекта) внешние идентификаторы. Как правило, это персональные акции, генерируемые в рамках рекомендательных сервисов. Для внешних идентификаторов таких акций необходимо использовать отдельную номерную серию. Номерная серия задаётся значением настройки: Loyalty.Processing.PCValue.Recommended.Elected.ExternalID.Prefix. Общий формат значения: PRX1-10;PRX2-10, где PRX1 – это префикс внешнего идентификатора, а целое число после знака «-» - это общая длина идентификатора с учётом префикса. Через символ «;» можно добавить дополнительную номерную серию. В качестве остальных символов, кроме префикса, допустимы цифры, буквы английского и русских алфавитов. Если внешний идентификатор персональной акции выходит за пределы допустимой номерной серии – такая акция не может быть загружена в систему.
Внешние идентификаторы персональных акций, которые генерируются внутри системы (акции функциональности любимых товаров), также ограничиваются отдельными номерными сериями. Эти серии задаются значениями настроек:
Loyalty.Processing.PCValue.Elected.ExternalID.Prefix – аналогично, префикс и общая длина внешнего идентификатора для значений создаваемых персональных акций внутри системы. Первая часть – набор символов, которые будут являться префиксом, далее символ «-», остальная часть – целое число, которое является общей длиной внешнего идентификатора персональной акции. Минимально допустимое значение длины – 20 символов.
Какие именно символы будут допустимы в качестве свободных значений регулируется настройкой: Loyalty.Processing.PCValue.Elected.ExternalID.ValidCharacters. При значении 1 – допустимы символы английского алфавита и цифры, 2 – допустимы символы английского, русского алфавитов и цифры.
Порядок символов регулируется значением настройки: Loyalty.Processing.PCValue.Elected.ExternalID.Random. Если значение 1, y или Y – генерация случайная. При любом другом значении генерация последовательная (в порядке следования кодов символов).
В текущей версии номерные серии персональных акций реализованы для функциональности рекомендованных и любимых товаров. При генерации прочих акций необходимо учитывать эти номерные серии и не допускать их пересечений.