Общая информация о ML Online
Manzana Loyalty Online - готовая информационная система, которая содержит в себе полный набор необходимой функциональности для эффективного и удобного управления Программой Лояльности розничной сети.
Лояльность клиентов к компании – это потребление и постоянное увеличение потребления товаров и услуг, которые компания производит или реализует. Но это не простое потребление в силу полезности продукта или услуги, это такое потребление, когда в надежде на будущую выгоду, клиент может пожертвовать чем-то сиюминутным, в итоге продолжить потребление продуктов или услуг компании.
Система лояльности – это совокупность мероприятий и хранимых данных, позволяющих увеличить потребление клиентами товаров и услуг компании. Автоматизированные процессы данных мероприятий и процессы хранения данных называются программным обеспечением программы лояльности.
Программное обеспечение программы лояльности – это процедуры, обеспечивающие хранение данных всех продаж идентифицированных клиентов и всех коммуникаций с данными клиентами, а также процедуры обработки транзакций в реальном времени. Идентификация клиентов осуществляется посредством выданных карт лояльности. Как только карта закреплена за каким-то пользователем – данный пользователь становится клиентом (участником) программы лояльности. Каждое взаимодействие клиента программы лояльности с компанией оператором программы при покупке товаров или услуг компании записывается в базу данных системы.
Основной вид взаимодействия клиента с компанией – это покупка товаров и услуг, реализуемых компанией. Реализация товаров и услуг подтверждается специальными документами, которые называются фискальными чеками. В чеке содержится информация о том, когда было осуществлено взаимодействие; где оно было совершено; в какой степени (денежное содержание), а также какие товары и услуги были приобретены, в каком количестве, по каким ценам и кто приобрёл данные товары и услуги.
Кто приобрёл – это конкретный клиент, который идентифицируется по номеру выданной ему карты лояльности.
Когда приобрёл – это время регистрации чека на POS-терминале, причём это именно время того часового пояса, в котором находится данный POS-терминал (оно может отличаться от времени часового пояса, в котором физически расположен сервер программного обеспечения).
Где был выписан чек – это непосредственно код POS-терминала, на котором зарегистрирован чек, идентификатор магазина и идентификатор компании, которой принадлежит магазин (в системе такая компания называется партнёром).
Денежное содержание – это общая сумма чека, процент скидки по чеку и сумма чека со скидкой.
Помимо фискальных чеков возможны мягкие чеки. Мягкие чеки в целом аналогичны фискальным и используются для подтверждения возможности фискальной транзакции. В ответе мягкого чека показаны ошибки регистрации, если чек оформлен не в соответствии с правилами и алгоритмами системы. Также в мягком чеке содержится информация о скидках, которые должны быть применены к фискальной транзакции.
В интерфейсе системы доступна смена языка. В текущей версии язык можно поменять на английский или грузинский по кнопке, расположенной в верхнем правом углу рядом с учетными данными пользователя. Перевод доступен только тем пользователям, которым назначены соответствующие привилегии в ролевой модели. Привилегия называется «Использовать переводы».
- Информация системы
- Справочники системы
- Поощрения в системе
- Купоны в системе
- Коммуникации в системе
- Настройки системы
- История взаимоотношений с клиентами
- Фильтрация в системе
Информация системы
Хранимая в системе информация подразделяется на четыре категории: справочники, записи настройки алгоритмов системы, вспомогательная информация по настройке системы и история взаимоотношений с клиентами.
Справочники системы – это информация о покупателях и информация о реализуемых товарах и услугах. В качестве информации о покупателях используется хранение записей анкет контактных лиц (карточки контактов). Однако по умолчанию контактное лицо не является автоматически участником программы лояльности. Контактное лицо, покупатель, становится участником программы лояльности в тот момент, когда за ним закреплена хотя бы одна карта лояльности. Анкеты и карты – главная часть информации о покупателях. С картами связаны также справочники, в которых хранится история продаж (связанные чеки) и информация об осуществлённых коммуникациях.

Рис. Справочники контактов
Информация о реализуемых товарах составляет товарный справочник.

Рис. Товарные справочники
Информация о местах реализации этих товаров, о компаниях (партнерах) владельцах магазинов - справочники организационной структуры.

Рис. Справочники оргструктуры
Алгоритмы системы настраиваются специальными записями, представленные правилами системы. Правила в системе – это правила предоставления поощрений и правила использования поощрений. Правила предоставления поощрений – это правила начисления. Правила начисления – это записи системы, в соответствии с которыми производится начисление бонусных баллов и предоставление скидок, а также предоставление вспомогательных поощрений.
Кроме правил, предоставляющих поощрения, в системе также настраиваются алгоритмы коммуникации с клиентами, позволяющими создавать и отправлять различные сообщения, такие как E-mail, SMS-сообщения и прочие. Кроме этого есть ещё специальные алгоритмы, которые не связаны с обработкой событий покупки товаров и услуг, а отрабатывают по настроенному расписанию – это задания по расписанию.

Рис. Группы баллов, кампании, задания по расписанию, купоны, правила начисления, правила списания, фильтры
История взаимоотношений с клиентами – это записи всех чеков, начисленных бонусных баллов и отправленных сообщений. Данная информация постоянно накапливается и отображается в связанных записях на соответствующих формах контакта, карты, мастер-счёта.

Рис. Информация по чекам, баллам на карточке контакта
Вспомогательная информация – это системные настройки, значения которых позволяют выполнять алгоритмы системы по определённым ветвям, таблицы настройки прав доступа и прочая информация.
Справочники системы
Справочники в системе — это анкетная информация клиентов, выпущенные карты лояльности, товарные справочники, организационная структура и прочая вспомогательная информация. Справочная информация является внешней для системы.
Карточка контакта – содержит информацию, которую клиент предоставил о себе, заполнив анкету. На основании электронных адресов и телефонов осуществляется коммуникационное взаимодействие с клиентами. В карточке контакта также можно указать, разрешено ли с данным клиентом пользоваться определёнными каналами коммуникации.
Доступ к записям контактов осуществляется через главное меню в разделе Контакты:

Рис. Контакты
Помимо основной информации по контактам к данному разделу относятся следующие записи:
- маркетинговые списки (записи списков контактных лиц)
- мастер-счета
- обращения
Маркетинговые списки используются в дальнейшем в алгоритмах фильтрации. Применимость операций обработки можно ограничивать для определённых списков контактов.
Мастер-счёт – это некоторая группа карт, устроенная таким образом, что бонусными баллами мастер-счёта можно оплачивать покупки, предъявив одну карту, которая входит в мастер-счёт. Одна карта может входить только в один мастер счёт.
Следует отметить, что бонусными баллами, накопленными по всем картам одного контактного лица, можно также пользоваться для оплаты покупок, предъявив какую-нибудь одну карту из всех принадлежащих данному контактному лицу.
Обращения позволяют фиксировать обращения контактов с классификацией, содержанием и статусом данного обращения. Например, обращения по работе магазина или отзывы по службе доставки.

Рис. Обращения

Рис. Карточка обращения
Карта – это идентификатор участника программы лояльности. Предъявив карту на POS-терминале при совершении покупки, покупатель идентифицируется как участник программы лояльности. При покупке в базу данных системы записывается информация по чеку, которая впоследствии доступна для извлечения различного рода отчётами.
Доступ к записям карт также осуществляется через главное меню в разделе Карты лояльности:

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

Рис. Списки категорий, подкатегорий, групп и т.д.
Доступ к справочникам организационной структуры осуществляется также через раздел «Оргструктура». В нём объединены записи о партнёрах коалиционной программы лояльности, магазинах, POS-терминалах в данных магазинах, а также списки партнёров, магазинов и регионов, в которых расположены магазины.

Рис. Оргструктура
Поощрения в системе
Доступ к записям настройки алгоритмов поощрения осуществляется через раздел «Правила программы»:

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

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

Рис. Транзакционные сообщения в системе
В данном разделе можно задать характеристики E-mail провайдеров расширенных рассылок, а также параметры аккаунтов для SMS, PUSH рассылок. Текущая версия поддерживает возможность расширенных рассылок E-mail сообщений посредством платформ-провайдеров Sendsay, ExpertSender, Devino Telecom.
Также для отправки сообщений используются задания по расписанию (ЗПР), которые создают сообщения по заранее заданному расписанию. Задание по расписанию может создавать E-mail сообщения, SMS-сообщения, PUSH сообщения, сообщения в личный кабинет.

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

Рис. Настройки в системе
В этом разделе находятся:
- Системные настройки
- Выпуски карт
- Типы платежей
- Уровни участников
- Расширенные атрибуты
- Настройки рассылок ЛК партнёра (описание полей находится в отдельной документации Manzana Loyalty Online API для интеграции с МП или ЛК на сайте)
- Настройки персональных акций
- Настройки обмена персональных поощрений
Системные и партнерские настройки
Системные настройки – это множество всех настроек, которые влияют на поведение системы, независимо от партнёра. Используются непосредственно в программном коде. Создаются разработчиками в таблице crmdata.system_settings. Вносить изменение в системные настройки могут только сотрудники Manzana Group.
Значения системных настроек позволяют выполнять алгоритмы системы по определённым ветвям. При установке системы значения системных настроек проставляются по умолчанию. При необходимости их можно изменить.
В UI системные настройки хранятся в специальном разделе. Они видны и могут быть изменены только пользователями с соответствующими правами доступа.

Рис. Справочник системных настроек

Рис. Карточка системной настройки
Описание всех системных настроек находится здесь. Описание конкретных системных настроек можно встретить в данном руководстве пользователя, они выделяются курсивом (пример: Loyalty.Processing.FillOrgunitWhenEmpty).
Кроме системных настроек есть партнерские настройки. Партнёрские настройки – это подмножество системных настроек, имеющие такое же назначение, как и системные, но действующие только в рамках конкретного партнёра. Значения конкретной настройки у разных партнёров могут различаться.
Партнёрские настройки заводятся с помощью расширенных атрибутов партнёра по кнопке «+Добавление нового элемента» только сотрудниками Manzana Group при наличии соответствующих прав.

Рис. Расширенные атрибуты (партнёрские настройки) в карточке партнёра
Если у партнера заведена какая-то партнёрская настройка, обязательно должна быть точно такая же системная. После добавления партнерских настроек в расширенные атрибуты рекомендуется проверить, как отрабатывает настройка партнера во избежание случаев, когда заведена системная настройка, которая не может быть партнёрской. При такой ситуации будет применено значение системной настройки.
Если настройка, отвечающая за конкретную функцию системы, заведена как партнёрская (действует на уровне партнёра), так и системная (действует на уровне всей системы), то вначале система проверяет значение партнёрской настройки конкретного функционала и, при нахождении этого значения, применяется именно оно. Если значение партнёрской настройки не найдено, то идёт поиск значения уже системной настройки и применяется её значение. Т.е. у партнёрской настройки имеется приоритет перед системной настройкой.
Выпуск карт (типы карт, шаблоны выпуска карт, задания на выпуск карт). Тип карт позволяет создать параметры коэффициентов для скидок/бонусов, жизненного цикла карты, а так же начальных параметров карты. Шаблоны выпуска, которые определяют выпускаемые карты лояльности. В частности, можно так задать шаблон, чтобы при создании карты на неё одновременно начислялись начальные бонусные или статусные баллы и проставлялся какой-то начальный уровень скидки по карте. Также шаблоны задают какие именно будут выпущены карты: бонусные, дисконтные или такие, по которым одновременно возможно предоставление скидок и начисление бонусных или статусных баллов.
Также в разделе параметров присутствуют Задания на выпуск карт. Задание на выпуск – это запись, которая регламентирует непосредственную регистрацию карт в системе. Оно задаёт номерную маску, количество выпускаемых карт и прочие параметры. Задание активируется специальными кнопками на её форме.
Типы платежей позволяют настроить применимость правил в зависимости от типа платежа, фильтрацию карт.
Расширенные атрибуты. В этом разделе настраиваются определения расширенных атрибутов и группы расширенных атрибутов.
Настройки рассылок ЛК кабинета партнёра
Настройка обмена персональных поощрений
История взаимоотношений с клиентами
Базы данных системы позволяют хранить историю взаимоотношений с клиентами, а также быстрый доступ к ней непосредственно из самой системы. Помимо этого, можно получать данную информацию с помощью средств аналитики.
К хранимой информации относятся: история покупок, начисленные и списанные бонусные баллы, купоны, история изменения статусов карт, исходящие сообщения и др.
Хранимую в базах данных информацию об истории взаимоотношений можно использовать для последующей сегментации клиентов и создания для каждой группы своей механики поощрения, для целей увеличения срока взаимодействия клиента с компанией или с каждым партнёром в рамках коалиционной программы лояльности.
Базы данных системы обеспечивают хранение истории взаимоотношений с очень широким набором реквизитов, что позволяет учитывать практически все детали продаж и обеспечивает успешность построения маркетинговых воздействий на сегмент клиентов с определёнными реквизитами локальных актов взаимодействия с компанией.
Через главное меню нет непосредственного доступа к этим записям. Просмотреть данную информацию можно через конкретного контрагента (контакт, карта или мастер-счет). Например, открыв запись контакта (участника программы лояльности), можно просмотреть историю взаимоотношений с данным контактным лицом.
Рис. История покупок в карточке контакта

Рис. История бонусов в карточке контакта
Баллы в системе
Баллы – особый вид поощрения, предназначенный в первую очередь для того, чтобы являться гарантией совершения покупок в будущем. В отличие от скидок (дисконта), которые являются поощрениями в текущий момент и не гарантируют повторного посещения магазинов, баллы – это для покупателя отложенная скидка, воспользоваться которой он может по своему желанию: может использовать в следующей покупке, но может специально накапливать, чтобы получить какие-то дополнительные привилегии и планировать свои покупки.
В системе реализовано множество алгоритмов начисления баллов, которые после фискализации покупок накапливаются на личном счёте покупателя в привязке к картам лояльности, которыми он пользуется.
Хранение баллов в системе порционное. Каждая порция баллов имеет свои сроки действия и набор признаков, позволяющих гибкое использование баллов для получения поощрений в последующих покупках.

Рис. Баланс бонусов и история начислений бонусов в карточке клиента
Накопленные баллы можно конвертировать в оплату товаров, получая линейную скидку. В этом случае можно учитывать курс конвертации: например, считать, что 1 балл будет равнозначен 1 рублю скидки. Курс может быть любым: некоторые порции баллов можно конвертировать в скидку по курсу 1 к 1, некоторые по курсу 10 к 1 и так далее. Причём в одной покупке можно использовать различные порции баллов с различными курсами конвертации.
Второй алгоритм использования баллов, реализованный в системе – не линейный или обмен баллов на скидку. Например, действует акция: скидка 5% будет стоить 100 баллов. В этом случае, в зависимости от величины покупки выгода покупателя будет различной. Для чека в 100 рублей – выгода будет 5 рублей, для чека в 10000 рублей – выгода 500 рублей. Такие акции сами будут побуждать покупателя не только посещать магазины и делать покупки, но и побуждать увеличивать величину чека.
Помимо этого, за баллы можно, например, приобретать дисконтные купоны, чтобы, предъявив их при какой-то покупке, получить выгодную скидку, что уже будет побуждать покупателя планировать свои взаимоотношения с продавцом на длительную перспективу времени.
Система одновременно поддерживает операции с двумя типами баллов: бонусными баллами и статусными баллами. Все операции по этим типам баллов аналогичны, за исключением того, что статусные баллы не могут быть списаны безакцептно, то есть статусными баллами нельзя оплачивать покупки, если активного баланса статусных баллов недостаточно для оплаты покупки (см. Безакцептное списание).
Операция с баллами подразумевает создание записей баллов в системе. При начислении создаются положительные порции баллов, при списании – отрицательные порции. Отрицательные порции могут быть также созданы тогда, когда завершился срок действия порции баллов.
Записи баллов могут быть созданы при следующих транзакциях:
- Начисление при совершении покупки (через правило начисления);
- Начисление по заранее запланированному расписанию (через задание по расписанию);
- Однократное начисление на указанную карту лояльности (через ручной бонус, а также по специальному запросу POS-сервиса);
- Списание баллов при оплате покупок (через правило списания);
- Списание баллов в обмен на скидку (через товарную акцию гашения баллов);
- Списание при выпуске купонов, предполагающих стоимость в баллах;
- Однократное списание с указанной карты лояльности (через ручной бонус, а также по специальному запросу POS-сервиса);
- Начисление и списание баллов при обработке возврата покупки;
- Гашение баллов и списание по завершению срока действия.
Каждая запись балла представляет собой отдельную порцию, в общем случае разбитую по позициям чека и связанную с определённой картой. Поэтому с одним чеком может быть связано несколько порций баллов. Порции, связанные с позицией, порождаются позиционными правилами начисления; порции, не связанные с позицией, а только с чеком – порождаются чековыми правилами начисления.
Также баллы разбиваются относительно породивших их правил списания, начисления, заданий по расписанию, ручных бонусов. Операция начисления или списания порождает запись балла. Возможны четыре типа записей баллов:
| Операция | Запись бонусных баллов | Баланс бонусного счёта | |||
| Знак | Тип | Дебет счёта | Кредит счёта | Баланс | |
| Начисление в Дебет | + | Увеличивается | Не меняется | Увеличивается | |
| Начисление в Кредит | + | Не меняется | Уменьшается | Увеличивается | |
| Списание в Дебет | - | Уменьшается | Не меняется | Уменьшается | |
| Списание в Кредит | - | Не меняется | Увеличивается | Уменьшается | |
Запись начисления в Дебет возникает тогда, когда производится обычное начисление баллов. Обычное списание баллов – это списание в кредит. Соответственно, начисление в кредит возникает при возвратах, когда на бонусную карту возвращаются ранее списанные в чеке покупки баллы. Списание в дебет – это операция корректировки баллов начисления при возврате покупки, по которой эти баллы были начислены.
Следует иметь в виду, что дебетовый и кредитовый учёт баллов отличается от бухгалтерского учёта. В виду отсутствия двойной записи общий баланс баллов по всем картам не равен нулю. Поэтому полностью отождествлять дебитный и кредитный учёт бонусов с аналогичным учётом денежных средств не следует.
Записи баллов создаются не только при операциях начисления/списания бонусных или статусных баллов. Записи баллов также создаются для уровней скидки по карте (со специальным отличным от стандартных баллов признаком; баллы для уровней скидки по карте не входят в балансы бонусных и статусных баллов).
Гашение баллов
Баллы начисляются на карту клиента для того, чтобы он мог воспользоваться баллами для оплат последующих покупок. При оплате очередной покупки бонусными баллами уменьшается порция ранее начисленных бонусных баллов в определённом порядке. Операция соотнесения списанных и начисленных баллов называется гашением. Например, баллы были начислены двумя порциями: 50 и 50 баллов. После этого 75 баллов использовано для оплаты какой-то покупки. Данная порция отрицательных баллов будет разбита на две порции: одна -50 баллов, другая -25. Первая порция (-50 баллов) будет связана с положительной порцией 50 баллов, при этом остаток этой положительной порции станет нулевым. Вторая порция (-25 баллов) будет связана с другой положительной порцией 50 баллов, и остаток этой положительной порции станет равен 25.
Таким образом, в системе для баллов оплаты будет создано две строки со значениями -50 и -25, при этом начисленные порции баллов будут использованы: одна из порций начисления будет использована полностью, а другая порция начисления будет использована частично, соответственно, поле остатка будет равно 25 по этой порции начисления.
Бывает ситуация, когда на карте есть отрицательные баллы. Например, в случае, когда совершена первая покупка, по которой были начислены баллы. Далее совершается вторая покупка, которая оплачивается ранее начисленными баллами. После этого по каким-то причинам первая покупка возвращается. В результате на карте будут отрицательные баллы. Например, в первой покупке начислено 100 баллов, во второй покупке списываются эти 100 баллов, и далее возвращается полностью первая покупка. В итоге, на карте есть отрицательный баланс в 100 баллов. Далее эти отрицательные баллы будут гаситься, когда будут появляться положительные баллы. Допустим, что совершается покупка, в результате которой начисляется 10 баллов. В этом случае отрицательная порция -100 баллов будет разбита на две порции: -10 баллов и -90 баллов. Отрицательная порция -10 баллов будет связана с положительной порцией 10 баллов, и остаток этой положительной порции станет нулевым. Отрицательная порция -90 баллов не будет связана ни с какой положительной порцией. Так будет продолжаться, пока все отрицательные баллы не будут погашены.
Отрицательные баллы могут появиться при безакцептном списании. В случае безакцептного списания появляются баллы списания с отрицательным значением остатка. Такие же порции баллов могут появиться и при возврате по алгоритму без ссылки на чек покупки. В этом случае гашение будет производиться также, то есть первыми начисленными баллами. Если начисленных баллов достаточно для гашения, то остаток по начисленным баллам будет уменьшен на количество ранее списанных, а остаток списанных баллов обнулён. Если же начисленных баллов недостаточно, то остаток начисленных будет обнулён, а остаток списанных изменится на то количество, которое можно погасить данной порцией начисления. Следует иметь в виду, что для этого гашения будут использоваться баллы начисления, которые вступили в действие. Если начисленные баллы ещё не вступили в действие, то они не могут быть использованы для гашения.
Однако между списанием баллов в чеке покупки и описанным гашением уже имеющихся отрицательных баллов есть различия.
Гашение в офлайн режиме
Если отрицательные баллы образованы ранее, когда недостаточно положительных порций для возможного гашения, то гашение будет происходит после того, как появятся положительные порции, активные порции. Гашение отрицательных баллов с ненулевым остатком происходит не сразу после появления положительной порции, а на следующие сутки, после появления таких порций. Для этого есть специальная процедура, которая запускается по умолчанию ежедневно в 02:00.
При гашении в офлайн режиме порядок сортировки положительных порций всегда ФИФО (то есть баллы списываются в порядке даты начала действия). Предпочтительное использование партнёрских баллов также не используется в этом случае.
В системе есть настройки, позволяющие более гибко регулировать гашение отрицательных баллов.
Если системная настройка Loyalty.Processing.DischargeNegativeBonuses.BonusGroupDispose установлена в значение 1 или Y, то порция отрицательных баллов будет погашена какой-то порцией положительных, начисленных в рамках той группы баллов, что использовалась при возникновении отрицательных баллов при списании. При прочих значениях настройки отрицательные баллы будут погашены любыми подходящими по алгоритму списания.
Если системная настройка Loyalty.Processing.DischargeNegativeBonuses.CampaignDispose установлена в значение 1 или Y, то порция отрицательных баллов будет погашена какой-то порцией положительных, начисленных в рамках той кампании, что использовалась при возникновении отрицательных баллов при списании. При прочих значениях настройки отрицательные баллы будут погашены любыми подходящими по алгоритму списания.
Если системная настройка Loyalty.Processing.DischargeNegativeBonuses.TurnOn установлена в значение 1 или Y, то отрицательные баллы будут гаситься не только положительными баллами данной карты, но для гашения будут использованы также бонусные баллы, начисленные на другие карты, но объединённые общим контактом или мастер-счётом. При этом учитываются значения двух предыдущих системных настроек.
Гашение в онлайн режиме
Данная процедура гашения используется при возвратах покупок и заказов. Появляющиеся отрицательные порции (активные) будут гаситься в момент их появления. Для гашения будут использоваться все положительные порции, имеющиеся уже по карте участника или возникающие в момент регистрации возврата.
(Положительные баллы, которые возникают при покупке как результат начисления, в случае, если по карте есть отрицательные непогашенные баллы – не участвуют в онлайн гашение. Такие баллы участвуют в гашение в офлайн режиме).
Онлайн гашение баллов отключаемый процесс, включается изменением значения настройки Loyalty.Processing.DischargeNegativeBonuses.TurnOn.
Если при возврате покупки или заказа появляется отрицательная активная порция – то вначале для её гашения используются положительные порции, относящиеся к той же самой кампании, к которой относится отрицательная порция. Если этих положительных порций не хватает, то для гашения уже используются положительные порции, относящиеся к другим кампаниям, но к тому же партнёру, что и отрицательная порция. Если и таких баллов не хватает – то используются все прочие положительные порции карты, по которой регистрируется возврат. Если и таких порция не хватает, на непогашенную величину формируется отрицательная активная порция, которая будет погажена в офлайн режиме уже после того, как появятся положительные порции в результате других процессов.
Порядок сортировки положительных порций при возврате задаётся настройкой Loyalty.Processing.DischargeNegativeBonuses.Order (1 - FIFO, 2 - LIFO, 3 - FEFO, 4 - LEFO).
Гашение отрицательных баллов
Системные настройки включения гашения по кампаниям и группам работают таким образом, что если есть баллы, которые не включены в группу, то они никогда не будут погашены. Для корректной работы, в случае, когда допускаются кампании без групп баллов, настройки гашения по кампаниям и группам должны быть выставлены в отключенное состояние.
Гашение баллов производится ночным заданием. За один запуск задания может быть погашено не более 5000 записей порций баллов. Если баллы не были погашены в результате операции по запросы, то ночное задание будет гасить баллы только в порядке ФИФО.
Если по карте (контакту, мастер-счёту) есть непогашенные отрицательные баллы, то они не будут погашены в онлайн режиме при совершении покупки с начислением активных порций, но будут погашены в офлайн режиме при выполнении соответствующего системного задания.
Начало и окончание действия баллов
Каждая порция бонусных баллов имеет сроки действия.

Рис. Даты начала и окончания действия порций бонусов в карточке клиента
Если бонусные баллы начисляются текущим моментом, не важно в каком часовом поясе, то они и начинают действовать сразу. То есть даже через одну минуту ими можно воспользоваться для оплаты покупок. Если же бонусные баллы имеют отложенное действие, например, начисляются таким образом, что начнут действовать через час после совершения покупки, то это не означает, что они через час будут доступны для оплаты. Бонусные баллы отложенного действия становятся доступными для оплаты после отработки специальной ночной процедуры. По умолчанию, расписание отработки периодических процедур настроено таким образом, что они начинают отрабатывать в 02:05 по серверному времени. Например, если бонусные баллы начинают действовать с 16:30, то в 16:40 ими нельзя пользоваться для оплаты покупок; они будут доступны в 02:05 следующих суток, если используется стандартное расписание процедур.
Это же относится к сроку окончания действия баллов. Если баллы заканчивают срок действия в 13:15, то эти баллы становятся недоступными для оплаты покупок, но завершившаяся порция будет входить в активный баланс до тех пор, пока не будет обработана офлайновой процедурой системного задания (в 02:05 по серверному времени).
Поэтому следует иметь в виду, что при начислении лучше использовать округление срока начала и срока окончания действия бонусных баллов (поля «Округление даты начала» и «Округление даты окончания» в записи правила начисления и задания по расписанию).
Отрицательные баллы также могут иметь сроки действия. Срок окончания действия отрицательных баллов установлен условно как бесконечность, а именно 1 января 3000 года. Сроки начала действия отрицательных баллов могут быть произвольными. Например, при алгоритме отложенного возврата (системная настройка Loyalty.Processing.Refund.NegativeBonusDelayed) возникающие отрицательные баллы начинают действовать с момента действия того положительного балла, который корректируется этими отрицательными баллами.
Отложенная активация баллов и дополнительные параметры чека/заказа
Если в правилах указано, что баллы должны активироваться сразу после начисления, а между регистрацией чека и оплатой есть задержка по времени, то клиент может пробить товары на кассе самообслуживания, получить баллы, не оплатить покупку и списать баллы на другой кассе.
Чтобы избежать подобного фрода, в запрос фискального чека добавляется триггерный РА - параметр «PostponeActivation», по которому выполняется отложенная активация баллов. При его значении=1, баллы создаются неактивными для оплаты покупок в течение ближайших 100 лет. То же самое касается моментально выпущенных купонов.
Для того, чтобы можно было воспользоваться баллами или купонами после оплаты покупки, обрабатывается еще один запрос по чеку - «Дополнительные параметры фискального чека после оплаты» («ChequeAddParameters»). Если в запросе указан параметр ActivateBonuses в значении=1, при этом ранее был зарегистрирован запрос чека/заказа с параметром PostponeActivation =1, то сроки действия всех начисленных по данному запросу баллов и купонов, сдвигается на 100 лет назад, то есть к текущему времени.
Помимо активации баллов в этом запросе передаются дополнительные параметры фискализации оплаты чека. К ним относятся:
- fd - Фискальный номер документа
- fs - Фискальный признак документа
- fn - Серийный номер ФН.
Значения этих РА отображаются для пользователя в интерфейсе в карточке контакта и карты в дополнительных полях для чеков/заказов. Для этого ключи этих РА должны быть указаны в партнерской настройке Loyalty.ChequeAddParameters.

Эти дополнительные параметры могут в дальнейшем использоваться в отчетности для различных фильтраций
Операции с баллами по внешним механикам по запросу
В случаях, когда необходимо начислять бонусы за акции, настроенные во внешних системах, в запросе начисления баллов BonusRequest указывается несколько дополнительных параметров, в том числе название внутренней механики компании. Начисления могут быть переданы в рамках партнерских программ , розыгрышей, компенсаций и т.д. В интерфейсе поле "Внешняя механика партнера" выводится в разделах Контакты, Карты и Чеки/Заказы=>Бонусы =>Баллы начисления, в текстовом формате, без ссылки на правило.

Рис. Поле "Внешняя механика партнера" в бонусных начислениях контакта
Методом BonusRequest можно выполнять запросы различных типов операций:
NULL – (по умолчанию)
|
Тип операции записывается в UI в связанном представлении контакта или карты "Бонусы" во вкладке "Запросы начисления/списания баллов":

Рис. Поля "Тип операции" в бонусах контакта
По типу операции можно делать фильтрацию запросов.

Рис. Тип операции как параметр фильтрации запросов
В запросе BonusRequest реализован запрет на проведение операций по неактивным картам.
Функционал проверки состояния карты для возможности совершения операций начисления и списания бонусов при запросе BonusRequest включается партнерской настройкой
Loyalty.Processing.BonusRequest.CheckCardstate.
Если настройка включена и карта не проходит проверку, в ответ возвращается ошибка о невозможности совершения операции по состоянию карты. Если карта проходит проверку состояния, операции по ней совершаются.
Начисление и списание возможно по картам в состояниях Новая и Активная.
Запрет на проведение операций по статусу карты проверяется через конфигурационную таблицу статусов карт [configure].[card_status].
Начисление выполняется для карт в статусе Активная и Продана. Списание только для карт в активном статусе.
Исходящие сообщения в системе
Сообщения в личный кабинет, E-mail и SMS сообщения, которые были созданы в системе и отправлены участнику программы лояльности, хранятся в системе заданное время.
Сохранённые в базе данных системы сообщения привязаны к записям контакта. Они доступны для просмотра, если в карточке контакта: «Исходящие Сообщения». В представлении «Исходящие Сообщения» отображаются только отправленные клиенту SMS-сообщения.

Рис. Исходящие сообщения в карточке клиента
Существует возможность ограничить время хранения сообщений с помощью следующих системных настроек:
Loyalty.Communications.Common.LifeTime – настройка задаёт количество дней хранения сообщения всех видов. День считается с 00:00 до 24:00 по серверному времени. Удаляться будут сообщения в любом статусе. Если настройка не существует, заполнена не целым числом, или имеет значение 0, считается, что сообщения хранятся всё время. Значение по умолчанию: 900.
Loyalty.Communications.PushByRequest.LifeTime – настройка задаёт количество дней хранения сообщений PUSH класса (в текущей версии это сообщения в личный кабинет). День считается с 00:00 до 24:00 по серверному времени. Удаляться будут сообщения в любом статусе. Если настройка не существует, заполнена не целым числом, или имеет значение 0, то считается, что сообщения хранятся всё время. Значение по умолчанию: 100.
Чеки в системе
Количество дней, в течение которого хранятся чеки в базе данных, может быть задано в партнерской/системной настройке LoyaltyChequeStoregePeriod (партнерская настройка указывается через расширенный атрибут партнера).
Если значение настройки равно 0 или настройка не заполнена, то функционал удаления чеков отключен (чеки хранятся неограниченное время). Значение по умолчанию - 0.
Если значение настройки больше 0, то тогда вычисляется пороговая дата для удаления чеков по формуле: g – v – 1, где g – дата запуска процедуры, v – значение настройки в днях и - 1 учитывает, что ежедневный джоб удаления чеков запускается после 00:00. Данные по всем записям чеков до вычисленной даты помещаются в специальную таблицу-агрегат в базе с группировкой по карте и pos, после чего удаляются из таблицы чеков вместе со следующими данными: расширенные атрибуты чеков/позиций, платежи по чекам, позиции чеков. При этом в базе для отчётности исторические чеки не удаляются.
Рис. Записи чеков в карточке клиента

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

Рис. Пример карточки «Список магазинов»
Динамический метод – позволяет выделить какое-то множество записей, не указывая конкретно какую именно запись необходимо включить в данное множество. Отбор производится указанием соответствующих параметров и условий отбора записей в это множество. В зависимости от того, в какое время используется динамическое множество, оно может как содержать какие-то записи, так и не содержать эти же самые записи. Например, если мы хотим создать множество бонусных карт, по которым было начислено некое количество бонусных баллов, например, в интервале от 10 до 100, то с течением времени состав этого множества будет меняться. Множество динамически отобранных записей называется фильтром.
Фильтр может содержать в себе подчинённые записи списков. Например, фильтр по позициям чеков включает в себя списки: товаров, подгрупп товаров, групп товаров, производителей и др. Список же не включает в себя фильтры.
Фильтры используется в системе в правилах начисления, в правилах списания, в заданиях по расписанию. Если необходима связь правила или задания только со списком, то можно этот список включить в фильтр, а этот фильтр уже связать с соответствующим правилом или заданием.
Связываться с записями фильтры и списки могут следующими способами: как включаемые, как исключаемые, так и оба одновременно (включаемые и исключаемые). Включаемость подразумевает, что фильтрация будет отбирать только те записи, которые присутствуют в наборе или списке, и уже к этим записям будут применяться различные алгоритмы. Исключаемость означает, что отобранные записи будут исключаться из фильтрации; алгоритмы будут применяться ко всем остальным записям, за исключением тех, что попали в исключаемую фильтрацию. Исключение имеет приоритет над включением. Если к правилу начисления относится и включаемый, и исключаемый фильтр по контактам, то правило будет применяться только к контактам, которые отбираются включаемым фильтром и при этом не отбираются исключаемым фильтром.
В системе ML реализованы четыре типа фильтрации:
- фильтрация с использованием параметров контакта или карты, то есть по идентификатору участника программы лояльности – фильтры по контактам;
- фильтрация по параметрам чека: например, магазин, где совершена покупка, партнёр, к которому относится магазин, общая сумма чека, общая сумма со скидкой – фильтры по чекам;
- фильтрация по товарному составу чека: например, товар, количество позиций в чеке, сумма позиции, сумма со скидкой, количество товара по позиции – фильтры по позициям чека;
- фильтрация по времени: по дате и времени создания чека – фильтры по времени.

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

Рис. Настройка фильтрации по целевой аудитории/наборам контактов в карточке задания по расписанию
Фильтрация времени запуска задания определяется настройками расписания, которое относится к данному заданию по расписанию.

Рис. Настройка времени запуска в карточке задания по расписанию
В момент запуска задание проверяет текущие параметры каждой записи контакта и/или карты. Если текущие параметры таковы, что они укладываются в ограничения включаемого фильтра, то задание по расписанию отрабатывает по данному контакту и/или карте.
Следует отметить, что есть особенность выполнения задания, к которому относятся наборы с одновременными ограничениями и по контакту, и по карте. В этом случае из всей базы контактов будут выбраны контакты, удовлетворяющие условиям фильтрации. Потом будут выбраны только карты, относящиеся к выбранным контактам, и на них будут наложены ограничения фильтра по картам. В результирующее множество войдут карты, параметры которых укладываются в ограничения фильтра. Вначале анализируется множество контактов и только потом карты.
Предупреждение при изменении фильтра, связанного с более чем 2-ми активными правилами или заданиями по расписанию
Перед активацией редактируемых фильтров в правилах начисления, списания или ЗПР пользователю выводится окно-предупреждение, в котором посчитано количество связей фильтра с этими сущностями.
Предупреждение появляется, если фильтр прикреплен к 2 и более активным правилам или ЗПР. Учитываются как включаемые, так и исключаемые фильтры.

Пользователю предлагается проверить и подтвердить корректность настроек фильтра, прежде чем активировать его.
На примере фильтра по позициям чека «Demo исключения» видно, что этот фильтр присутствует в 12 активных правилах начисления.
Чтобы посмотреть, с какими именно правилами связан редактируемый фильтр, необходимо зайти во вкладку «Зависимости» в фильтре:

Далее проверить настройки правил, убедиться, что планируемые изменения в фильтре не нарушат логику начисления, только после этого активировать фильтр.
В фильтре по контактам в «Зависимостях» отображается также связь с заданиями по расписанию. Другие фильтры в ЗПР не используются.
