Руководство по установке и использованию модуля 1С-Рарус: Система управления лояльностью в Bitrix Framework

Требования к серверу и платформе
1С-Битрикс


● Требуемая версия 1С-Битрикс 20.0 или выше
● Версия PHP не меньше 7.2.
● Требуются установленные расширения PHP и сторонние сервисы:
     ○ composer
     ○ ext_curl
     ○ ext_json
 

Порядок установки

1. Скачайте архив с плагином.

2. Разархивируйте плагин и разместите содержимое архива
в директории
bitrix/modules/rarus.bonus (папку необходимо создать)

3. Подключитесь к ssh, перейдите в каталог модуля и установите
зависимости:

cd [document_root]/bitrix/modules/rarus.bonus

composer install

4. Установите модуль в административном разделе в меню
Marketplace->Установленные решения:

 

image-1712242677311.png

 

Порядок обновления


1. Скачайте архив с плагином.

2. Разархивируйте плагин и разместите содержимое архива
в директории
bitrix/modules/rarus.bonus

3. Подключитесь к ssh, перейдите в каталог модуля и установите
зависимости:
cd [document_root]/bitrix/modules/rarus.bonus
composer update

4. Переустановите модуль в административном разделе в меню
Marketplace->Установленные решения (Удалить - Установить)

5. При необходимости, выполните ручной перенос обновлений
компонентов в ваш кастомный шаблон.


Настройка модуля


1. В панели управления сайтом нажмите Маркетинг -
Система управления лояльностью - Настройки.

image-1712242942713.png

2.
На шаге 1 заполните поля для авторизации:
   a. Адрес API сервера. По умолчанию
https://bonus.rarus-online.com:88/
   b. Логин
   c. Пароль

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

 

image-1712243059449.png

 

На шаге 3 При необходимости экспортируйте существующих пользователей
в кабинет

image-1712243121288.png

 

На шаге 4 Выберите инфоблок с товарами и товарными предложениями,
при необходимости выполните экспорт товаров, установите флажок, если
требуется экспортировать товары через Битрикс-Агенты (периодичность
1 раз в сутки)

 

image-1712328261934.png

 

На вкладке Вебхук вы можете настроить доступы базовой аутентификации
к обработчику вебхуков. При регистрации пользователя в СУЛ сервис
отправит запрос на адрес вашего обработчика для добавления нового
пользователя.

 

image-1712328350768.png

 

3. Создайте скидку в разделе “Правила работы с корзиной”
Заполните название скидки

 

image-1712328439886.png

 

Во вкладке “Действия и условия” выберите тип действия
“Применить внешнюю скидку”

 

image-1712328542026.png

 

Выберите из списка модуль rarus.bonus

 

image-1712328659029.png

 

Во вкладке ограничения установите группу пользователей, для которых
доступна система лояльности
 
4. Модуль поставляется в комплекте с компонентами:
image-1712328772151.png

 image-1712328813146.png

 

Бонусный счет

image-1712328938828.png

Создайте страницу, например /personal/bonus/index.php
Подключите компонент
rarus.bonus:balance
<?php
require($_SERVER["DOCUMENT_ROOT"] . "/bitrix/header.php");
global $APPLICATION;
$APPLICATION->setTitle('Мои бонусы');
$APPLICATION->IncludeComponent(
"rarus.bonus:balance",
'',
[]
);
require($_SERVER["DOCUMENT_ROOT"] . "/bitrix/footer.php");

 

Продажа

image-1712329022003.png

Создайте страницу, например /personal/bonus/detailed.php
Подключите компонент rarus.bonus:balance.detailed
<?php
require($_SERVER["DOCUMENT_ROOT"] . "/bitrix/header.php");
global $APPLICATION;
$APPLICATION->AddChainItem('Продажа');
$APPLICATION->setTitle('Продажа');
$APPLICATION->IncludeComponent(
"rarus.bonus:balance.detailed",
'',
[]
);
require($_SERVER["DOCUMENT_ROOT"] . "/bitrix/footer.php"); ?>

 

Корзина

image-1712586258220.png

 
Откройте файл template.php компонента bitrix:sale.basket.basket
Установите компонент корзины
<?php
$APPLICATION->IncludeComponent(
'rarus.bonus:basket',
''
);
?>
перед кодом:
<?
if (
$arParams['BASKET_WITH_ORDER_INTEGRATION'] !==
'Y'
&& in_array('bottom',
$arParams['TOTAL_BLOCK_DISPLAY'])
){

 

Оформление заказа

 

image-1712586373679.png

 

1. Откройте файл template.php компонента bitrix:sale.order.ajax
2. Установите компонент заказа
<?php
$APPLICATION->IncludeComponent(
'rarus.bonus:order',
'',
[
'ITEMS' => $arResult['JS_DATA']['GRID']['ROWS'],
'PERSON_TYPE_ID' =>
$arResult['USER_VALS']['PERSON_TYPE_ID']
]
);
?>
перед блоком
<!-- ORDER SAVE BLOCK →
3. Откройте файл order_ajax.js
Перед кодом:
propsItemsContainer.appendChild(propsItemNode);
Вставьте:
if (property.getSettings().CODE === 'BONUS_PAYMENT' ||
property.getSettings().CODE ===
'BONUS_COUPON' ||
property.getSettings().CODE ===
'BONUS_DOC_ID') {
return;
}
 

image-1712586547611.png

 

image-1712586609967.png

 

Форма для ввода баллов и промокода

 

Подарочные сертификаты


Требования
Функционал подарочных сертификатов основан на внутреннем счете
пользователя.
Для его работы требуется версия 1С:Bitrix Бизнес.

 

Покупка подарочных сертификатов

 

image-1712586828658.png

 

Для создания функционала покупки подарочного сертификата с выбором
произвольного номинала выполните следующие действия:

● Перейдите в Вашу систему управления лояльностью в раздел Правила
программы - Сертификаты
● Создайте группу сертификатов с указанием произвольного номинала
подарочного сертификата

 

image-1712586966724.png

● Перейдите в настройки модуля в 1С:Bitrix Маркетинг - Система
управления лояльностью - Настройки
● На шаге “Подарочные сертификаты” выберите созданную группу
подарочных сертификатов и завершите настройки, нажав “Завершить”

 

image-1712587039281.png

● Создайте инфоблок, которые является торговым каталогом.
В инфоблок добавляться подарочные сертификаты в виде товаров.

 

image-1712587152185.png

 

В разделе Настройки Настройки продукта Почтовые и СМС события Типы
событий создайте почтовое событие, необходимое для отправки письма
с кодом подарочного сертификата

 

image-1712587205623.png

 

В разделе Настройки Настройки продукта Почтовые и СМС события
Почтовые шаблона создайте почтовый шаблон со следующими
параметрами:

 

image-1712587339327.png

 

Макет html письма:


<!DOCTYPE html>
<html lang="en" xmlns:v="urn:schemas-microsoft-com:vml">
<head>
<meta charset="utf-8">
<meta name="x-apple-disable-message-reformatting">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="format-detection" content="telephone=no, date=no, address=no,
email=no">
<!--[if mso]>
<noscript>
<xml>
<o:OfficeDocumentSettings
xmlns:o="urn:schemas-microsoft-com:office:office">
<o:PixelsPerInch>96</o:PixelsPerInch>
</o:OfficeDocumentSettings>
</xml>
</noscript>
<style>
td,th,div,p,a,h1,h2,h3,h4,h5,h6 {font-family: "Segoe UI", sans-serif;
mso-line-height-rule: exactly;}
</style>
<![endif]-->
<title>Вам подарочный сертификат</title>
<style>
@media (max-width: 600px) {
.sm-w-full {
width: 100% !important;
}.s
m-px-24 {
padding-left: 24px !important;
padding-right: 24px !important;
}.s
m-leading-32 {
line-height: 32px !important;
}
}<
/style>
</head>
<body style="margin: 0; width: 100%; padding: 0; word-break: break-word;
-webkit-font-smoothing: antialiased; background-color: #efefef;">
image-1712587669013.png<div role="article" aria-roledescription="email" aria-label="Вам подарочный
сертификат" lang="en">
<table style="width: 100%; font-family: ui-sans-serif, system-ui,
-apple-system, 'Segoe UI', sans-serif;" cellpadding="0" cellspacing="0"
role="presentation">
<tr>
<td align="center">
<table class="sm-w-full" style="width: 600px;" cellpadding="0"
cellspacing="0" role="presentation">
<tr>
<td align="center" class="sm-px-24">
<table style="margin-top: 64px; margin-bottom: 64px; width: 100%;"
cellpadding="0" cellspacing="0" role="presentation">
<tr>
<td style="text-align: center;">
<img
src="https://rzn-wb-01.1c-hosting.com/images/email/sul-certificate/sul-certificate.p
ng" alt="Подарочный сертификат" style="max-width: 100%; vertical-align: middle;
line-height: 100%; border: 0;">
</td>
</tr>
<tr>
<td class="sm-px-24" style="border-radius: 4px; background-color:
#ffffff; padding: 48px; text-align: left; font-size: 16px; line-height: 24px;">
<p class="sm-leading-32" style="margin: 0; margin-bottom: 24px;
text-align: center; font-size: 24px; font-weight: 600; color:
#000000;">Поздравляем!</p>
<p style="margin: 0; margin-bottom: 24px; text-align:
center;">#TEXT#<br><br>Отправитель: #FROM#</p>
<div style="line-height: 100%;">
<div style="margin: auto; border-radius: 4px; background-color:
#f3f3f3; padding-top: 20px; padding-bottom: 20px; padding-left: 24px;
padding-right: 24px; text-align: center; font-size: 18px; font-weight: 600; color:
#333333;">
<span>#CERTIFICATE#</span>
</div>
<p style="margin-top: 8px; text-align: center; font-size: 14px; color:
#757575;">Сертификат действует в течение года с момента активации</p>
<p style="margin-top: 40px; text-align: center; font-weight:
600;">Удачных покупок! </p>
</div>
<table style="width: 100%;" cellpadding="0" cellspacing="0"
role="presentation">
<tr>
<td style="padding-top: 32px; padding-bottom: 32px;">
<div style="height: 1px; line-height: 1px;">‌</div>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td style="height: 48px;"></td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
</div>
</body>
</html>

● Создайте страницу покупки сертификата, создав раздел в структуре
Вашего сайта, например /buy_sertificate/
● В данном разделе создайте файл index.php, в котором установите
компонент rarus.bonus:certificate.buy

image-1712587780561.png

image-1712587816587.png

● Укажите настройки компонента

 

image-1712587913482.png

 
● Создайте страницу оплаты /buy_sertificate/payment.php

 

image-1712588810679.png

image-1712588891615.png

 

В настройках компонента платежной системы укажите тип платежной
системы и тип плательщика
Подарочный сертификат создается и отправляется на почту в момент
изменения статуса заказа с Принято на Оплачено
Пример письма

 

image-1712645393039.png

 

Активация подарочного сертификата


● В шаблоне компонента bitrix:sale.account.pay , в конце файла
установите компонент

image-1712646076445.pngimage-1712646113905.png

Форма активации подарочного сертификата появится в конце страницы

image-1712646205135.png

После активации подарочного сертификата внутренний счет пользователя
пополняется

 

image-1712646316614.png

Откройте файл order_ajax.js компонента bitrix:sale.order.ajax
Перед кодом:
propsItemsContainer.appendChild(propsItemNode);
Вставьте:

image-1712646394658.png

Это позволит передавать информацию о подарочном сертификате в заказе


Пример использования подарочного сертификата

После пополнения внутреннего счета у пользователя появляется
возможность оплатить им полную стоимость заказа или его часть.

 

image-1712646506397.png

В бекенде отображается информация о частичной оплате заказа внутренним
счетом

image-1712646576858.png

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

 

image-1712646742807.png

 

Регистрация пользователя через вебхук

 

image-1712646835466.png

 

В системе управления лояльностью создайте вебхук с событием
“После регистрации”.
Укажите адрес обработчика вебхука и параметры доступа к нему.
При добавлении пользователя в СУЛ сервис отправит запрос на адрес
обработчика для регистрации нового пользователя на вашем сайте.
Пользователь будет зарегистрирован с произвольным паролем и получит
уведомление на почту или телефон (При условии поддержки канала
отправки на стороне сайта).
Для этого необходимо настроить почтовые и SMS-шаблоны.

 

Создание почтового шаблона

На странице Настройки - Настройки продукта - Почтовые и СМС события -
Типы событий создайте новое событие
RARUS_BONUS_WEBHOOK_AFTER_REGISTER_EMAIL

image-1712646950152.png

 

На странице Настройки - Настройки продукта - Почтовые и СМС события -
Почтовые шаблоны создайте новый почтовый шаблон

 

image-1712647023029.png

Укажите тип события: RARUS_BONUS_WEBHOOK_AFTER_REGISTER_EMAIL
Выберите сайт
Заполните поля:
От кого: #DEFAULT_EMAIL_FROM#
Кому: #EMAIL#
Тема: Вы зарегистрировались на сайте #SITE_NAME#
Текст:
Здравствуйте, вы зарегистрировались на сайте #SERVER_NAME#.
Ваша регистрационная информация:
Логин: #EMAIL#
Пароль: #PASSWORD#
---------------------------------------------------------------------
Сообщение сгенерировано автоматически.

 

Создание sms шаблона


На странице Настройки - Настройки продукта - Почтовые и СМС события -
Типы событий создайте новое событие
RARUS_BONUS_WEBHOOK_AFTER_REGISTER_SMS

 

image-1712647173019.png

 

На странице Настройки - Настройки продукта - Почтовые и СМС события -
Шаблоны СМС создайте новый шаблон СМС-сообщений

image-1712647354178.png

 

Укажите тип события: RARUS_BONUS_WEBHOOK_AFTER_REGISTER_SMS
Выберите сайт
Заполните поля:
Телефон отправителя: #DEFAULT_SENDER#
Телефон получателя: #USER_PHONE#
Шаблон сообщения:
Вы зарегистрировались на сайте #SERVER_NAME#. Ваш пароль:
#PASSWORD#
 


Скидки в каталоге


Шаг 1: Добавление свойства DISCOUNT_ID

Для начала работы с скидками в каталоге, убедитесь, что у вас есть свойство
DISCOUNT_ID с типом "строка" в инфоблоках товаров и товарных
предложений. Если у вас его нет, выполните следующие действия:
1. Откройте административную панель 1С-Битрикс.
2. Перейдите в раздел "Настройки".
3. Выберите "Типы инфоблоков" и найдите нужный инфоблок товаров
и товарных предложений.
4. В разделе "Свойства элементов" создайте новое свойство с именем
DISCOUNT_ID и типом "строка". Сохраните изменения.

 

image-1712647521143.png

 

Шаг 2: Запуск скрипта

Скрипт, который будет работать с скидками, следует запустить на сервере
СУЛ. Данный скрипт выполняет следующие действия:
1. Запрашивает список скидок и условий скидок с сервера СУЛ.
2. Создает скидку в 1С-Битрикс.
3. Заполняет идентификатор скидки (DISCOUNT_ID) в номенклатуре
товаров и товарных предложений.

 

Шаг 3: Настройка запуска по расписанию с помощью Cron

Для того чтобы скрипт выполнялся регулярно, вы можете настроить его
запуск по расписанию с использованием Cron. Вот как это сделать:
1. Авторизуйтесь под SSH на сервере, на котором развернут ваш сайт
1С-Битрикс.
2. Введите команду crontab -e, чтобы отредактировать файл задач Cron.
3. Если у вас не установлен редактор по умолчанию, вы можете выбрать
текстовый редактор, например, Vim.
Для Vim:
○ Нажмите клавишу i, чтобы перейти в режим вставки.
○ Вставьте следующую команду запуска скрипта:
4. shell
*/30 * * * * php -q /home/bitrix/www/bitrix/modules/rarus.bonus/bin/console.php >
/dev/null 2>&1
1. Сохраните изменения и закройте редактор Vim. Для этого нажмите
клавишу Esc, затем введите :wq и нажмите клавишу Enter.
2. В приведенном выше примере указан период запуска каждые
30 минут (*/30). Вы можете изменить этот интервал, в зависимости
от ваших потребностей.
3. Путь к корневой директории вашего сайта 1С-Битрикс
(/home/bitrix/www/) также может потребоваться заменить
на фактический путь к вашему сайту
Теперь скрипт будет запускаться автоматически по расписанию, чтобы
обновлять скидки в вашем каталоге 1С-Битрикс на основе данных с сервера
СУЛ.


Порядок применения скидок и приоритет скидок


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

 

image-1712647800313.png

 

Особенности работы системы скидок


1. Обратный порядок приоритета в СУЛе: Важно учитывать,
что приоритет скидок в СУЛе работает в обратном порядке
по сравнению с 1С-Битрикс. Это означает, что скидки с более низким
числом приоритета в СУЛе имеют более высокий приоритет в системе
1С-Битрикс, и, следовательно, будут применены первыми. Приоритет
скидок и индекс сортировки, установленные в скидках каталога
не изменяются при обновлении текущих скидок. Это позволяет
администратору настроить скидки согласно своим потребностям
и контролировать порядок и приоритет их применения в системе.
2. Настройка "Процентная скидка/наценка рассчитывается для
полной цены товара" в интернет-магазине: Для корректного
сложения скидок убедитесь, что у вас установлена соответствующая
настройка. Она находится в меню "Настройки" -> "Настройки модулей"
-> "Интернет-магазин". В данной настройке, убедитесь, что опция
"Процентная скидка/наценка рассчитывается для полной цены товара"
включена. Это обеспечит правильное сочетание скидок, учитывая
полную цену товара при расчетах.
3. Настройка "Процентная скидка/наценка рассчитывается для
полной цены товара" при последовательном применении скидок:
Если вы хотите, чтобы скидки применялись последовательно
и не комбинировались, перейдите в настройки интернет-магазина,
которые находятся в "Настройки" -> "Настройки модулей" ->
"Интернет-магазин", и уберите галочку с опции "Процентная
скидка/наценка рассчитывается для полной цены товара". Это позволит
скидкам применяться поочередно без их комбинирования.
4. Кеширование скидок в каталоге: Важно знать, что система скидок
в каталоге может кэшировать результаты расчетов. Это означает,
что изменения в скидках могут потребовать сброса кеша для того,
чтобы они корректно применились. Если вы вносите изменения
в скидки каталога, убедитесь, что кеш был обновлен, чтобы новые
правила скидок были применены к товарам и ценам.
 

Диагностика ошибок и проблем
в работе модуля


По умолчанию уровень логирования настроен на показ критических ошибок.
При необходимости это значение можно повысить, изменив файл
bitrix/modules/rarus.bonus/modules/rarus.bonus/src/Rarus/BonusModule/Environ
mentManager.php

image-1712647946750.png

Логи работы модуля по умолчанию хранятся в файле
/bitrix/modules/rarus.bonus/src/Rarus/BonusModule/logs/rarus-bonusintegration.l
og