Интеграция модуля «Реферальная программа лояльности» с 1С
Автор: СкайВеб24
Модуль «Реферальная программа лояльности» обладает поистине огромным функционалом, позволяя создавать разветвленную реферальную и бонусную сеть любой сложности.
И многие наши клиенты хотят интегрировать наш модуль с бонусной системой, которая развивается у них в 1С. И на фоне этой потребности, у клиентов возникает резонный, часто задаваемый нам, вопрос: возможно ли это? И мы решили в этой статье закрыть этот вопрос: модуль можно интегрировать с 1С!
![Фото 1: «Интеграция модуля «Реферальная программа лояльности» с 1С»](https://skyweb24.ru/upload/marketplace-articles/skyweb24-loyalintegration1C/1.png)
Как интегрировать модуль?
Перед началом интеграции реферальной системы с 1С, важно понять, какую именно задачу вы хотите решить. Есть две частые задачи:
- Единоразовый импорт данных: это необходимо для того, чтобы система могла работать на вашем сайте.
- Регулярный обмен данными: в этом случае, система будет регулярно синхронизировать данные как на сайте, так и в 1С.
-
Определите цели интеграции.
-
Выберите подходящий вариант обмена данными.
-
Следуйте инструкциям по настройке и синхронизации.
Рассмотрим более простой вариант интеграции: единоразовый импорт данных из 1С для работы системы только на вашем сайте. Для этого:
-
Убедитесь, что все пользователи на сайте и в 1С синхронизированы. Это важно для корректной работы системы.
-
Перенесите накопленные бонусы пользователей из 1С на сайт. Это позволит вашим клиентам сразу начать пользоваться бонусными баллами.
Этап 1: Формирование и выгрузка списка контрагентов из 1С.
Первый шаг интеграции - выгрузка пользователей из 1С. Для этого используйте инструменты выгрузки контрагентов в 1С и сформируйте список (см. рис. 1).
![Фото 2: «Интеграция модуля «Реферальная программа лояльности» с 1С»](https://skyweb24.ru/upload/marketplace-articles/skyweb24-loyalintegration1C/contragents.jpg)
Этап 2: Выгрузка реферальной сети
После переноса пользователей на ваш сайт необходимо импортировать реферальную сеть. Для этого:
-
Выгрузите реферальную сеть из 1С в формате .csv
-
Загрузите этот файл в наш модуль.
-
Перейдите на страницу импорта данных: Маркетинг → Программа лояльности → Управление → Импорт данных.
-
Во вкладке Импорт реферальной сети загрузите файл. Подробнее о данной процедуре можно ознакомиться в нашей документации.
![Фото 3: «Интеграция модуля «Реферальная программа лояльности» с 1С»](https://skyweb24.ru/upload/marketplace-articles/skyweb24-loyalintegration1C/refweb.jpg)
Этап 3: Выгрузка бонусных счетов
Аналогично импорту реферальной сети, вы можете импортировать бонусы существующих пользователей. Это необходимо, если у вас есть сформированная реферальная сеть и участники накопили бонусы.
Для этого:
-
Выгрузите бонусные счета пользователей в формате .csv.
-
Загрузите этот файл в наш модуль.
-
Перейдите на страницу импорта данных: Маркетинг → Программа лояльности → Управление → Импорт данных.
-
Во вкладке Импорт бонусных счетов загрузите файл. Подробнее о данной процедуре можно ознакомиться в нашей документации.
Второй вариант импорта реферальной сети более сложный и может потребовать доработок как на стороне 1С, так и на стороне вашего сайта.
Первоначальные шаги аналогичны предыдущему варианту импорта:
-
Формирование и выгрузка контрагентов из 1С.
-
Перенос реферальной сети и бонусных счетов пользователей на сайт.
- Реферальная сеть развивается в 1С: необходимо постоянно обновлять информацию на вашем сайте.
- Реферальная сеть развивается на вашем сайте: необходимо постоянно обновлять информацию в 1С.
Одним из вариантов является организация генерации файлов на файлообменнике, откуда их будет забирать принимающая сторона и обрабатывать. Также можно передавать данные с помощью REST-методов POST или GET.
Для упрощения, в данном статье мы рассмотрим два примера реализации обмена данными между 1С и вашим сайтом:
-
С помощью технологии REST API.
-
С помощью обмена данными с 1С.
Первый вариант - развитие реферальной сети в 1С с обновлением данных на вашем сайте с помощью REST API. Благодаря этому можно управлять данными нашего модуля и получать подробную информацию о состоянии реферальной и бонусной системы на стороне сайта.
Для обмена данными по REST API:
-
Перейдите в настройку модуля на вкладку «REST API»: Маркетинг → Программа лояльности → Настройка.
-
Получите код доступа, кликнув «Обновить код».
Управление пользователями.
Поскольку реферальная сеть состоит из пользователей, необходимо реализовать добавление пользователя в реферальную сеть. Для этого модуль предоставляет три метода:
1. sw24loyaltyprogram.referral.list: позволяет получить актуальный список участников реферальной сети на вашем сайте. Метод имеет гибкую систему фильтрации данных. Если в вашей системе 1С появился новый участник или изменились данные у существующего, с помощью этого метода можно узнать, как данный клиент записан на вашем сайте.
Пример вызова:
{протокол}://{адрес_сайта}/rest/{id_пользователя}/{код_доступа}/sw24loyaltyprogram.referral.list/?order[id]=desc&filter[ref_user]=10&limit=5
Пример вызова:
{протокол}://{адрес_сайта}/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
![Фото 4: «Интеграция модуля «Реферальная программа лояльности» с 1С»](https://skyweb24.ru/upload/marketplace-articles/skyweb24-loyalintegration1C/2.jpg)
В данной статье перечислены основные REST-методы модуля по управлению пользователями и бонусными счетами. Помимо них, модуль также имеет методы для управления наградами, рангами, профилями лояльности и другим функционалом нашего модуля. Подробнее о других методах вы можете узнать в нашей документации по REST API.
Вариант 2: Синхронизация системы со стороны сайта
Как и в предыдущем случае, нам необходимо синхронизировать реферальную сеть и бонусы при их изменении. Однако, в этом варианте направление синхронизации меняется - реферальная сеть развивается на вашем сайте с обновлением данных в 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С }?> |
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С }?> |
Как и в случае с REST API, в данной статье были перечислены основные события. Также, модуль имеет события отслеживающие изменения, модифицирующие значения начисляемых бонусов ДО их начисления и т.д. Подробнее о событиях модуля можно узнать в документации, посвященной событиям.
Заключение
Модуль «Реферальная программа лояльности» можно интегрировать с 1С без каких-либо проблем. Можно использовать как один из двух представленных вариантов, так и оба сразу, ведь покупатель может использовать бонусные счета как в онлайн-магазине, так и непосредственно при личном посещении магазина, а реферальная сеть может меняться в зависимости от действий пользователей как в сети интернет, так и благодаря каким-то акциям проведенным вашим магазином.
Помимо прочего, рассмотренные варианты могут использоваться не только для интеграции с 1С, но и для интеграции с другими сервисами.
Провести интеграцию вы можете либо самостоятельно, с помощью своих разработчиков, либо можете заказать интеграцию у нас.