Перейти к основному контенту

Компоненты

Модуль поставляется в комплекте с компонентами:

Название Описание
rarus.lms:balance Вывод бонусного счета пользователя
rarus.lms:basket Отображение начисляемых бонусных баллов
rarus.lms:order Форма для ввода оплаты бонусами и промокодом
rarus.lms:certificate.buy Форма покупки произвольного сертификата

rarus.lms:balance

  1. Создайте страницу, например /personal/bonus/index.php

  2. Подключите компонент

    <?php
    require($_SERVER["DOCUMENT_ROOT"] . "/bitrix/header.php");
    global $APPLICATION;
    $APPLICATION->setTitle('Мои бонусы');
    $APPLICATION->IncludeComponent(
    'rarus.lms:balance',
    ''
    );
    require($_SERVER["DOCUMENT_ROOT"] . "/bitrix/footer.php");
    

rarus.lms:basket

  1. Откройте файл template.php компонента bitrix:sale.basket.basket

  2. Найдите строку <div id="basket-root" class="bx-basket bx-<?= $arParams['TEMPLATE_THEME'] ?> bx-step-opacity" style="opacity: 0;">

  3. После нее вставьте код компонента

    <?php
            $APPLICATION->IncludeComponent(
                    'rarus.lms:basket',
                    ''
            );
    ?>
    

rarus.lms:order

  1. Откройте файл template.php компонента bitrix:sale.order.ajax

  2. Найдите строку ORDER SAVE BLOCK

  3. Перед ней вставьте код компонента

    <?php
    $APPLICATION->IncludeComponent(
                            'rarus.lms:order',
                            '',
                            [
                                    'PERSON_TYPE_ID' => $arResult['USER_VALS']['PERSON_TYPE_ID']
                            ]
                    );
    ?>
    

rarus.lms:certificate.buy

  1. Создайте раздел, например, gift-card

  2. Разместите в index.php код компонента

    <?php
    
    require($_SERVER["DOCUMENT_ROOT"] . "/bitrix/header.php");
    global $APPLICATION;
    
    $APPLICATION->IncludeComponent(
    "rarus.lms:certificate.buy",
    "",
    [
    'PAYMENT_SYSTEM' => 1,
    'PAYMENT_URL' => '/gift-card/payment.php'
    ]
    
    );
    
    require($_SERVER["DOCUMENT_ROOT"] . "/bitrix/footer.php");
    
  3. Настройте параметры PAYMENT_SYSTEM — идентификатор платежной системы, PAYMENT_URL — страница оплаты

  4. Создайте страницу оплаты, например, /gift-card/payment.php

    <?php
    require_once($_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/prolog_before.php');
    
    use Bitrix\Main\Application;
    use Bitrix\Main\Loader;
    use Bitrix\Sale\Order;
    
    $request = Application::getInstance()->getContext()->getRequest();
    
    global $APPLICATION;
    
    ?>
    <?php
    try {
        Loader::includeModule('sale');
        $order = Order::load($request->getQuery('ORDER_ID'));
        if (!$order) {
            throw new \InvalidArgumentException('Заказ не найден');
        }
        ob_start();
        $APPLICATION->IncludeComponent(
            'bitrix:sale.order.payment',
            '',
            [
                'PAY_SYSTEM_ID' => 1,
                'PERSON_TYPE_ID' => '1'
            ]
        );
        $formPay = ob_get_contents();
        ob_end_clean();
        require_once($_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/prolog_after.php');
        ?>
        <div class="p1">
            <?= $formPay ?>
        </div>
        <?php
    } catch (Throwable $e) {
    require_once($_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/prolog_after.php');
    ?>
    <p>
    К сожалению, на данный момент оплата по этому счету через сервис невозможна!
    </p>
    <?php
    }
    ?>
    
    <?php
    require $_SERVER['DOCUMENT_ROOT'] . '/bitrix/footer.php';
    
  5. Настройте параметры PAY_SYSTEM_ID — идентификатор платежной системы, PERSON_TYPE_ID — Тип плательщика

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

  7. Перейдите в настройки модуля 1С Рарус: Система управления лояльностью ПРО в административной части сайта и установите параметры создания подарочных сертификатов.

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

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

    • От кого: #DEFAULT_EMAIL_FROM#
    • Кому: #TO#
    • Тема: Подарочный сертификат
    • Тип: HTML

    Макет 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;
    }
    .sm-px-24 {
    padding-left: 24px !important;
    padding-right: 24px !important;
    }
    .sm-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;">
    <div style="display: none;">Вы стали счастливым обладателем подарочного
    сертификата#847; &#847; &#847; &#847; &#847; &#847; &#847; &#847; &#847; &#847;
    &#847; &#847; &#847; &#847; &#847; &#847; &#847; &#847; &#847; &#847; &#847;
    &#847; &#847; &#847; &#847; &#847; &#847; &#847; &#847; &#847; &#847; &#847;
    &#847; &#847; &#847; &#847; &#847; &#847; &#847; &#847; &#847; &#847; &#847;
    &#847; &#847; &#847; &#847; &#847; &#847; &#847; &#847; &#847; &#847; &#847;
    &#847; &#847; &zwnj;
    &#160;&#847; &#847; &#847; &#847; &#847; &#847; &#847; &#847; &#847; &#847;
    &#847; &#847; &#847; &#847; &#847; &#847; &#847; &#847; &#847; &#847; &#847;
    &#847; &#847; &#847; &#847; &#847; &#847; &#847; &#847; &#847; &#847; &#847;
    &#847; &#847; &#847; &#847; &#847; &#847; &#847; &#847; &#847; &#847; &#847;
    &#847; &#847; &#847; &#847; &#847; &#847; &#847; &#847; &#847; &#847; &#847;
    &#847; &#847; &#847; &zwnj;
    &#160;&#847; &#847; &#847; &#847; &#847; </div>
    <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.png"
    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;">&zwnj;</div>
    </td>
    </tr>
    </table>
    </td>
    </tr>
    <tr>
    <td style="height: 48px;"></td>
    </tr>
    </table>
    </td>
    </tr>
    </table>
    </td>
    </tr>
    </table>
    </div>
    </body>
    </html>
    
  10. В разделе Настройки → Настройки продукта → Почтовые и СМС события → Типы событий создайте почтовое событие RARUS_LMS_CERTIFICATE_CREATE_ERROR, необходимое для отправки письма уведомления об ошибке при создании подарочного сертификата.

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

    • От кого: #DEFAULT_EMAIL_FROM#
    • Кому: <admin_email>
    • Тема: Ошибка при создании сертификата
    • Тип: Текст

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

    Ошибка при создании сертификата.
    
    Заказ: #ORDER_ID#
    Ошибка: #ERROR#
    
    Проверьте заказ в админке.