Skip to content

mindbox-cloud/bitrix

Repository files navigation

Модуль Mindbox для Bitrix Framework

Внимание! Полная работоспособность модуля гарантирована на штатном функционале 1С-Битрикс старше 18.5.100.

Для корректной работы модуля рекомендуем использовать ядро D7 при изменении объектов корзины и заказа.

Также при интеграции модуля Mindbox с сайтами, на которых используются кастомные системные компоненты вместо стандартных, могут потребоваться доработки. Список компонентов, с которыми проверена корректная работа модуля:

  • Системные компоненты авторизации bitrix:system.auth.form, bitrix:system.auth.authorize
  • Системный компонент регистрации bitrix.system.auth.registration
  • Системный компонент профиля пользователя bitrix:main.profile
  • Системный компонент корзины bitrix:sale.basket.basket
  • Системный компонент оформления заказа bitrix:sale.order.ajax

В процессе установки:

  • Операции реализованы через системные события 1С-Битрикс. На следующие события будут навешаны обработчики:
Операция Событие Обработчик
AuthorizeCustomer OnAfterUserAuthorize OnAfterUserAuthorizeHandler
RegisterCustomer OnBeforeUserRegister OnBeforeUserRegisterHandler
RegisterCustomer OnAfterUserRegister OnAfterUserRegisterHandler
EditCustomer OnBeforeUserUpdate OnBeforeUserUpdateHandler
BeginUnauthorizedOrderTransaction, BeginAuthorizedOrderTransaction, RollbackOrderTransaction OnSaleOrderBeforeSaved OnSaleOrderBeforeSavedHandler
CommitOrderTransaction, SaveOfflineOrder, CreateAuthorizedOrder, CreateUnauthorizedOrder OnSaleOrderSaved OnSaleOrderSavedHandler
SetCart OnSaleBasketSaved OnSaleBasketSavedHandler
CalculateAuthorizedCart, CalculateUnauthorizedCart OnBeforeSaleOrderFinalAction OnBeforeSaleOrderFinalActionHandler
SetWishList OnSaleBasketItemRefreshData OnSaleBasketItemRefreshDataHandler
RegisterCustomer OnBeforeUserAdd OnBeforeUserAddHandler
RegisterCustomer OnAfterUserAdd OnAfterUserAddHandler
Подключение кода трекера OnProlog OnPrologHandler
Подключение кода модуля глобально OnBeforeProlog OnBeforePrologHandler
UpdateOrderItems OnSalePropertyValueSetField OnSalePropertyValueSetFieldHandler
UpdateOrderItems OnSaleBasketItemEntitySaved OnSaleBasketItemEntitySavedHandler
UpdateOrderItems, UpdateOrderItemsStatus OnSaleBasketItemDeleted OnSaleBasketItemEntityDeletedHandler
UpdateOrderStatus OnBeforeSaleShipmentSetField OnBeforeSaleShipmentSetFieldHandler
UpdateOrderStatus OnSaleStatusOrder OnSaleStatusOrderHandler
UpdateOrderStatus OnSaleCancelOrder OnSaleCancelOrderHandler
Возможность списания бонусов в администранивной части OnAdminSaleOrderEdit OnAdminSaleOrderEditHandler

Исходный код всех обработчиков можно посмотреть в этом файле: /bitrix/modules/mindbox/lib/Event.php

  • Созданы агенты
Агент Описание
Агент выгрузки каталога Данный агент служит для выгрузки товаров и их торговых предложений в xml формате. Обращается к функции \Mindbox\YmlFeedMindbox::start();
Агент очереди Данный агент служит для отправки запросов к Mindbox, добавленных в очередь запросов. Обращается к функции \Mindbox\QueueTable::start();

Примечание:

  1. Для проектов с большим каталогом рекомендуется перевести выгрузку каталога на крон.
  2. Название сайта и компании в выгрузке берется из поля "Название веб-сайта" в настройках сайта.

Пример скрипта

    <?php
    $_SERVER["DOCUMENT_ROOT"] = realpath(dirname(__FILE__) . "/../../"); // путь к вашему DOCUMENT_ROOT
    $_SERVER["SERVER_NAME"] = "mysite.com"; // url вашего сайта без указания протокола
    
    require($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_before.php");
    
    use Bitrix\Main\Loader;
    use Bitrix\Main\LoaderException;
    use Mindbox\YmlFeedMindbox;
    
    try {
        if (!Loader::includeModule('mindbox.marketing')) {
            die();
        }
    } catch (LoaderException $e) {
        die();
    }
    YmlFeedMindbox::start();

Исходный код классов, с которыми работают агенты, можно посмотреть в следующих файлах: /bitrix/modules/mindbox/lib/YmlFeedMindbox.php, /bitrix/modules/mindbox/lib/QueueTable.php

  • Созданы пользовательские поля:
Поле Описание
UF_MINDBOX_ID Строковое поле предназначено для хранения id пользователя в mindbox.
UF_PHONE_CONFIRMED Поле чекбокс предназначено для хранения информации о подтверждение пользователем телефона в mindbox. Данным полем можно воспользоваться для вывода подтверждения телефона в Вашем компоненте персональных данных.
UF_EMAIL_CONFIRMED Поле чекбокс предназначено для хранения информации о подтверждение пользователем email в mindbox. Данным полем можно воспользоваться для вывода подтверждения email в Вашем компоненте персональных данных.
  • Созданы свойства заказа:
Поле Описание
MINDBOX_BONUS Строковое поле предназначено для хранения количества бонусов.
MINDBOX_PROMO_CODE Строковое поле предназначено для хранения промокода.
  • Создан Highload-блок "Mindbox" с полями:
Поле Описание
UF_BASKET_ID Числовое поле (целое число) предназначено для хранения идентификатора товара в корзине.
UF_DISCOUNTED_PRICE Числовое поле предназначено для хранения финальной цены на товар.

Интеграция модуля в стандартном режиме

  1. Интегрируем компоненты catalog.tracking модуля mindbox. Компоненты и их шаблоны находятся в директории - /bitrix/components/mindbox

Интеграция модуля в режиме лояльности

  1. Интегрируем компоненты catalog.tracking модуля mindbox. При необходимости интегрируем остальные компоненты модуля. Компоненты и их шаблоны находятся в директории - /bitrix/components/mindbox
  2. При необходимости проводим кастомизацию шаблонов и стилей компонентов для сохранения корпоративного стиля Вашего сайта. Файлы стилей - /bitrix/css/mindbox, js скрипты - /bitrix/js/mindbox, Изображения - /bitrix/images/mindbox
  3. В стандартных шаблонах компонентов модуля подключается jQuery 1.8.3. Если на сайте используется более новая версия jQuery, рекомендуется копировать стандартные шаблоны компонентов и убрать из них подключение jQuery. CJSCore::Init(array('jquery'));

Описание компонентов модуля

1. auth.sms - Компонент авторизации пользователя по телефону

Параметр компонента Описание Значение по умолчанию
PERSONAL_PAGE_URL URL личного кабинета, на которую будет совершен редирект после успешной авторизации. /
FILLUP_FORM_FIELDS Поля в форме дозаполнения данных. Возможные поля NAME, LAST_NAME, EMAIL, MOBILE_PHONE, PASSWORD, BIRTH_DATE, GENDER Поля отсутствуют

2. bonus.history - Компонент выводит историю бонусных баллов mindbox.

Параметр компонента Описание Значение по умолчанию
PAGE_SIZE Количество элементов на странице. 5

3. cart - Компонент корзины(промокоды и бонусы). Позволяет применять бонусы и промокоды к товарам в корзине.

Параметр компонента Описание Значение по умолчанию
USE_BONUSES Использование бонусов. Если этот параметр равен N, то покупатель сможет использовать только промокоды. Y

4. catalog.tracking - Данный компонент реализует обертку над Mindbox JavaScript SDK.
После подключения данного компонента можно отправлять данные о просмотре товаров и категорий каталога в mindbox.

Для этого используются 2 функции:

mindboxViewCategory
Пример вызова в шаблоне компонента bitrix:catalog

<?php $APPLICATION->IncludeComponent('mindbox:catalog.tracking', '', []);?>
<script>
    mindboxViewCategory('<?=!empty($arCurSection['XML_ID']) ? $arCurSection['XML_ID'] : $arCurSection['ID']?>');
</script>

mindboxViewProduct
Пример вызова в шаблоне компонента bitrix:catalog.element

<?php
   $APPLICATION->IncludeComponent('mindbox:catalog.tracking', '', []);
?>
<script>
    mindboxViewProduct('<?=!empty($arResult['OFFERS'][0]['XML_ID']) ? $arResult['OFFERS'][0]['XML_ID'] : $arResult['OFFERS'][0]['ID']?>');
</script>

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

5. discount.card - Компонент привязки дисконтной карты.

Параметр компонента Описание Значение по умолчанию
PERSONAL_PAGE_URL URL личного кабинета, на которую будет совершен редирект после успешного привязывания карты. /

6. email.confirm - Компонент подтверждения email в mindbox.
ВАЖНО: Компонент необходимо расположить на странице редактирования персональных данных пользователя.

7. order.history - Компонент выводит историю заказов mindbox.

Параметр компонента Описание Значение по умолчанию
PAGE_SIZE Количество элементов на странице. 5

8. phone.confirm - Компонент подтверждения телефона в mindbox.

9. sub.edit - Компонент управления подписками зарегистрированных и авторизованных пользователей.

10. subscription - Компонент подписки на email рассылку, как для зарегистрированных, так и для анонимных пользователей.