Интеграция модуля «Реферальная программа лояльности» с 1С

Интеграция модуля «Реферальная программа лояльности» с 1С

18 июня 2024


Автор: СкайВеб24
Привет, на связи Скайвеб!

Модуль «Реферальная программа лояльности» обладает поистине огромным функционалом, позволяя создавать разветвленную реферальную и бонусную сеть любой сложности.
И многие наши клиенты хотят интегрировать наш модуль с бонусной системой, которая развивается у них в 1С. И на фоне этой потребности, у клиентов возникает резонный, часто задаваемый нам, вопрос: возможно ли это? И мы решили в этой статье закрыть этот вопрос: модуль можно интегрировать с 1С!

Фото 1: «Интеграция модуля «Реферальная программа лояльности» с 1С»

Как интегрировать модуль?

Перед началом интеграции реферальной системы с 1С, важно понять, какую именно задачу вы хотите решить. Есть две частые задачи:
  • Единоразовый импорт данных: это необходимо для того, чтобы система могла работать на вашем сайте.
  • Регулярный обмен данными: в этом случае, система будет регулярно синхронизировать данные как на сайте, так и в 1С.
Универсального решения нет, но ниже приведены основные шаги для интеграции программы лояльности с 1С:
  1. Определите цели интеграции.
  2. Выберите подходящий вариант обмена данными.
  3. Следуйте инструкциям по настройке и синхронизации.
Задача I: Единоразовый импорт данных
Рассмотрим более простой вариант интеграции: единоразовый импорт данных из 1С для работы системы только на вашем сайте. Для этого:
  1. Убедитесь, что все пользователи на сайте и в 1С синхронизированы. Это важно для корректной работы системы.
  2. Перенесите накопленные бонусы пользователей из 1С на сайт. Это позволит вашим клиентам сразу начать пользоваться бонусными баллами.
Импорт данных происходит в три этапа:

Этап 1: Формирование и выгрузка списка контрагентов из 1С.
Первый шаг интеграции - выгрузка пользователей из 1С. Для этого используйте инструменты выгрузки контрагентов в 1С и сформируйте список (см. рис. 1).

Фото 2: «Интеграция модуля «Реферальная программа лояльности» с 1С»
Рис. 1: Список контрагентов
(структура вашей таблицы может отличаться от представленной)

Экспортируйте список контрагентов в .xls-файл, чтобы получить таблицу ваших покупателей. Затем загрузите эту таблицу на ваш сайт с помощью стандартных средств «Битрикс: Управление сайтом». Детально этот процесс описан и разобран в соответствующей статье обучающего курса.
Важно! Перед загрузкой файл нужно преобразовать в формат .csv и задать заголовки соответствующим колонкам. Например, колонка с именем контрагентов должна именоваться «NAME», колонка с электронным адресом - «EMAIL» и так далее.

Этап 2: Выгрузка реферальной сети
После переноса пользователей на ваш сайт необходимо импортировать реферальную сеть. Для этого:
  1. Выгрузите реферальную сеть из 1С в формате .csv
  2. Загрузите этот файл в наш модуль.
Для загрузки файла:
  1. Перейдите на страницу импорта данных: Маркетинг → Программа лояльности → Управление → Импорт данных.
  2. Во вкладке Импорт реферальной сети загрузите файл. Подробнее о данной процедуре можно ознакомиться в нашей документации.
После завершения импорта проверьте корректность реферальной сети на одноименной странице нашего модуля в админке сайта (см. рис. 2).

Фото 3: «Интеграция модуля «Реферальная программа лояльности» с 1С»

Рис. 2: Реферальная сеть

Этап 3: Выгрузка бонусных счетов

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

Для этого:

  1. Выгрузите бонусные счета пользователей в формате .csv.
  2. Загрузите этот файл в наш модуль.
Для загрузки файла:

  1. Перейдите на страницу импорта данных: Маркетинг → Программа лояльности → Управление → Импорт данных.
  2. Во вкладке Импорт бонусных счетов загрузите файл. Подробнее о данной процедуре можно ознакомиться в нашей документации.
Задача II: Регулярный обмен данными

Второй вариант импорта реферальной сети более сложный и может потребовать доработок как на стороне 1С, так и на стороне вашего сайта.

Первоначальные шаги аналогичны предыдущему варианту импорта:

  1. Формирование и выгрузка контрагентов из 1С.
  2. Перенос реферальной сети и бонусных счетов пользователей на сайт.
Далее, необходимо настроить регулярную синхронизацию между вашим сайтом и 1С. Для начала выберите принцип синхронизации:

  1. Реферальная сеть развивается в 1С: необходимо постоянно обновлять информацию на вашем сайте.

  2. Реферальная сеть развивается на вашем сайте: необходимо постоянно обновлять информацию в 1С.

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

Одним из вариантов является организация генерации файлов на файлообменнике, откуда их будет забирать принимающая сторона и обрабатывать. Также можно передавать данные с помощью REST-методов POST или GET.

Для упрощения, в данном статье мы рассмотрим два примера реализации обмена данными между 1С и вашим сайтом:

  1. С помощью технологии REST API.
  2. С помощью обмена данными с 1С.
Вариант 1: Синхронизация системы со стороны 1С.

Первый вариант - развитие реферальной сети в 1С с обновлением данных на вашем сайте с помощью REST API. Благодаря этому можно управлять данными нашего модуля и получать подробную информацию о состоянии реферальной и бонусной системы на стороне сайта.

Для обмена данными по REST API:

  1. Перейдите в настройку модуля на вкладку «REST API»: Маркетинг → Программа лояльности → Настройка.
  2. Получите код доступа, кликнув «Обновить код».
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

Фото 4: «Интеграция модуля «Реферальная программа лояльности» с 1С»
Рис. 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С, но и для интеграции с другими сервисами.
Провести интеграцию вы можете либо самостоятельно, с помощью своих разработчиков, либо можете заказать интеграцию у нас.