Модуль «Реферальная программа лояльности» обладает поистине огромным функционалом, позволяя создавать разветвленную реферальную и бонусную сеть любой сложности. И многие наши клиенты хотят интегрировать наш модуль с бонусной системой, которая развивается у них в 1С. И на фоне этой потребности, у клиентов возникает резонный, часто задаваемый нам, вопрос: возможно ли это? И мы решили в этой статье закрыть этот вопрос: модуль можно интегрировать с 1С!
[spoiler]
Как интегрировать модуль?
Перед началом интеграции реферальной системы с 1С, важно понять, какую именно задачу вы хотите решить. Есть две частые задачи:
Единоразовый импорт данных: это необходимо для того, чтобы система могла работать на вашем сайте.
Регулярный обмен данными: в этом случае, система будет регулярно синхронизировать данные как на сайте, так и в 1С.
Универсального решения нет, но ниже приведены основные шаги для интеграции программы лояльности с 1С:
Определите цели интеграции.
Выберите подходящий вариант обмена данными.
Следуйте инструкциям по настройке и синхронизации.
Задача I: Единоразовый импорт данных Рассмотрим более простой вариант интеграции: единоразовый импорт данных из 1С для работы системы только на вашем сайте. Для этого:
Убедитесь, что все пользователи на сайте и в 1С синхронизированы. Это важно для корректной работы системы.
Перенесите накопленные бонусы пользователей из 1С на сайт. Это позволит вашим клиентам сразу начать пользоваться бонусными баллами.
Импорт данных происходит в три этапа:
Этап 1: Формирование и выгрузка списка контрагентов из 1С. Первый шаг интеграции - выгрузка пользователей из 1С. Для этого используйте инструменты выгрузки контрагентов в 1С и сформируйте список (см. рис. 1).
Рис. 1: Список контрагентов
(структура вашей таблицы может отличаться от представленной)
Экспортируйте список контрагентов в .xls-файл, чтобы получить таблицу ваших покупателей. Затем загрузите эту таблицу на ваш сайт с помощью стандартных средств «Битрикс: Управление сайтом». Детально этот процесс описан и разобран в соответствующей статье обучающего курса.
Важно! Перед загрузкой файл нужно преобразовать в формат .csvи задать заголовки соответствующим клонкам. Например, колонка с именем контрагентов должна именоваться «NAME», колонка с электронным адресом - «EMAIL» и так далее.
Этап 2: Выгрузка реферальной сети После переноса пользователей на ваш сайт необходимо импортировать реферальную сеть. Для этого:
Выгрузите реферальную сеть из 1С в формате .csv
Загрузите этот файл в наш модуль.
Для загрузки файла:
Перейдите на страницу импорта данных: Маркетинг → Программа лояльности → Управление → Импорт данных.
Во вкладке Импорт реферальной сети загрузите файл. Подробнее о данной процедуре можно ознакомиться в нашей документации.
После завершения импорта проверьте корректность реферальной сети на одноименной странице нашего модуля в админке сайта (см. рис. 2).
Рис. 2: Реферальная сеть
Этап 3: Выгрузка бонусных счетов
Аналогично импорту реферальной сети, вы можете импортировать бонусы существующих пользователей. Это необходимо, если у вас есть сформированная реферальная сеть и участники накопили бонусы.
Для этого:
Выгрузите бонусные счета пользователей в формате .csv.
Загрузите этот файл в наш модуль.
Для загрузки файла:
Перейдите на страницу импорта данных: Маркетинг → Программа лояльности → Управление → Импорт данных.
Во вкладке Импорт бонусных счетов загрузите файл. Подробнее о данной процедуре можно ознакомиться в нашей документации.
Задача II: Регулярный обмен данными
Второй вариант импорта реферальной сети более сложный и может потребовать доработок как на стороне 1С, так и на стороне вашего сайта.
Перенос реферальной сети и бонусных счетов пользователей на сайт.
Далее, необходимо настроить регулярную синхронизацию между вашим сайтом и 1С. Для начала выберите принцип синхронизации:
Реферальная сеть развивается в 1С: необходимо постоянно обновлять информацию на вашем сайте.
Реферальная сеть развивается на вашем сайте: необходимо постоянно обновлять информацию в 1С.
В обоих случаях необходимо обеспечить обмен данными между 1С и сайтом. Как это сделать? Вам необходимо решить самостоятельно, так как каждая ситуация имеет свои особенности, связанные с конфигурацией систем учета, правилами доступа и так далее.
Одним из вариантов является организация генерации файлов на файлообменнике, откуда их будет забирать принимающая сторона и обрабатывать. Также можно передавать данные с помощью REST-методов POST или GET.
Для упрощения, в данном статье мы рассмотрим два примера реализации обмена данными между 1С и вашим сайтом:
С помощью технологии REST API.
С помощью обмена данными с 1С.
Вариант 1: Синхронизация системы со стороны 1С.
Первый вариант - развитие реферальной сети в 1С с обновлением данных на вашем сайте с помощью REST API. Благодаря этому можно управлять данными нашего модуля и получать подробную информацию о состоянии реферальной и бонусной системы на стороне сайта.
Для обмена данными по REST API:
Перейдите в настройку модуля на вкладку «REST API»: Маркетинг → Программа лояльности → Настройка.
Получите код доступа, кликнув «Обновить код».
API-методы нашего модуля позволяют управлять как реферальной сетью, так и бонусными счетами.
Управление пользователями. Поскольку реферальная сеть состоит из пользователей, необходимо реализовать добавление пользователя в реферальную сеть. Для этого модуль предоставляет три метода: 1. sw24loyaltyprogram.referral.list: позволяет получить актуальный список участников реферальной сети на вашем сайте. Метод имеет гибкую систему фильтрации данных. Если в вашей системе 1С появился новый участник или изменились данные у существующего, с помощью этого метода можно узнать, как данный клиент записан на вашем сайте.
Пример вызова: {протокол}://{адрес_сайта}/rest/{id_пользователя}/{код_доступа}/sw24loyaltyprogram.referral.list/?order[id]=desc&filter[ref_user]=10&limit=5
2. sw24loyaltyprogram.referral.add: метод используется для регистрации нового пользователя в вашей реферальной сети. С его помощью можно указать рефералодателя и тип привязки, если потребуется.
Пример вызова: {протокол}://{адрес_сайта}/rest/{id_пользователя}/{код_доступа}/sw24loyaltyprogram.referral.add/?user_id=1
3. sw24loyaltyprogram.referral.delete: метод позволяет удалить пользователя из реферальной сети. При этом, все его рефералы автоматически перепривяжутся к рефералодателю более высокого уровня. Пример вызова: {протокол}://{адрес_сайта}/rest/{id_пользователя}/{код_доступа}/sw24loyaltyprogram.referral.delete/?user=22
Управление бонусными счетами. После синхронизации пользователей необходимо синхронизировать бонусные счета. Для этого модуль представляет три метода:
1. sw24loyaltyprogram.bonus.list: позволяет с помощью фильтров получить историю транзакций как отдельной группы пользователей, так и всех пользователей программы лояльности.
Пример вызова: {протокол}://{адрес_сайта}/rest/{id_пользователя}/{код_доступа}/sw24loyaltyprogram.bonus.list/?order[id]=desc&filter[profile_type]=Registration&limit=5 2. sw24loyaltyprogram.bonus.add: используется для начисления или списания бонусов за какие-либо действия. Пример вызова: {протокол}://{адрес_сайта}/rest/{id_пользователя}/{код_доступа}/sw24loyaltyprogram.bonus.add/?user_id=3&bonus=99 3. sw24loyaltyprogram.bonus.update: позволяет изменить количество еще не начисленных бонусов. Модуль поддерживает отложенное начисление бонусов, которое можно настроить как в профиле лояльности (см. рис. 3), так и в методе sw24loyaltyprogram.bonus.add, указав дату начисления в будущем.
Пример вызова: {протокол}://{адрес_сайта}/rest/{id_пользователя}/{код_доступа}/sw24loyaltyprogram.bonus.update/?id=3&bonus=99
Рис. 3: Отложенное начисление бонусов
В данной статье перечислены основные REST-методы модуля по управлению пользователями и бонусными счетами. Помимо них, модуль также имеет методы для управления наградами, рангами, профилями лояльности и другим функционалом нашего модуля. Подробнее о других методах вы можете узнать в нашей документации по REST API.
Вариант 2: Синхронизация системы со стороны сайта Как и в предыдущем случае, нам необходимо синхронизировать реферальную сеть и бонусы при их изменении. Однако, в этом варианте направление синхронизации меняется - реферальная сеть развивается на вашем сайте с обновлением данных в 1С. В первую очередь, настройте точку доступа в 1С, так как сайт должен сообщать об изменениях. Перед рассмотрением варианта допустим, что:
Модуль уже готов к использования;
Необходимые профили добавлены;
Проведены реферальные и бонусные настройки;
Реферальная сеть развивается и бонусы начисляются.
Все, что остается сделать, это настроить обмен с 1С информацией о добавлении новых пользователей и изменении бонусных счетов.
1. Событие OnRegisterInRefSystem Модуль имеет событие, которые отслеживает изменения в реферальной сети и передает данные по зарегистрированному пользователю в 1С.
Пример кода в init.php:
<?php
\Bitrix\Main\EventManager::getInstance()->addEventHandler("skyweb24.loyaltyprogram",
"OnRegisterInRefSystem", "yourFunction");
function
yourFunction(\Bitrix\Main\Event $event) {
$arParam = $event->getParameters();
//примерный вид полученного массива:
//$arParam=[USER_ID=>123,
REFERRAL_ID=>122, PROFILE_ID=>1];
// ваш код по передаче полученного массива в 1С
}?>
Вот и все, данные о новом пользователе переданы в 1С.
2. Событие OnAfterActivateBonus Модуль также имеет событие для отслеживания добавления бонусов. Логика работы этого события аналогична событию для добавления нового реферала.
Пример кода в init.php
<?php
\Bitrix\Main\EventManager::getInstance()->addEventHandler("skyweb24.loyaltyprogram",
"OnAfterActivateBonus", "yourFunction");
function
yourFunction(\Bitrix\Main\Event $event){
$arParam = $event->getParameters();
//примерный вид полученного массива:
//$arParam=[BONUS=200,
CURRENCY=RUB, USER_ID=122, CHILD_USER_ID=123, ORDER_ID=12, PROFILE_TYPE=ordering,
PROFILE_ID=15.12.21, DATE_REMOVE=12.02.22];
// ваш код по передаче полученного массива в 1С
}?>
Благодаря этим событиям, в 1С всегда будет актуальная информация по вашей реферальной сети.
Как и в случае с REST API, в данной статье были перечислены основные события. Также, модуль имеет события отслеживающие изменения, модифицирующие значения начисляемых бонусов ДО их начисления и т.д. Подробнее о событиях модуля можно узнать в документации, посвященной событиям.
Заключение
Модуль «Реферальная программа лояльности» можно интегрировать с 1С без каких-либо проблем. Можно использовать как один из двух представленных вариантов, так и оба сразу, ведь покупатель может использовать бонусные счета как в онлайн-магазине, так и непосредственно при личном посещении магазина, а реферальная сеть может меняться в зависимости от действий пользователей как в сети интернет, так и благодаря каким-то акциям проведенным вашим магазином.
Помимо прочего, рассмотренные варианты могут использоваться не только для интеграции с 1С, но и для интеграции с другими сервисами. Провести интеграцию вы можете либо самостоятельно, с помощью своих разработчиков, либо можете заказать интеграцию у нас.
Подписывайтесь на наши соцсети и медиа, чтобы не пропустить новости об обновлениях и выходе новых продуктов. Также, если у вас есть идеи или пожелания по развитию наших продуктов, не стесняйтесь - пишите нам, мы всегда открыты для новых идей: