qsoft/mindbox

Module for 1c-bitrix


License
MIT

Documentation

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

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

Начало работы

Установка модуля

  1. Устанавливаем файлы модуля через Bitrix Marketplace. Либо с помощью composer.
    cd [document_root]/bitrix/modules
    composer create-project qsoft/mindbox qsoftm.mindbox 1.4.1
  1. Устанавливаем модуль в административном разделе в меню Marketplace->Установленные решения
  2. Заполняем поля настроек модуля в административном разделе.

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

  • Будут навешаны обработчики на следующие события
Событие Обработчик
OnAfterUserAuthorize OnAfterUserAuthorizeHandler
OnBeforeUserRegister OnBeforeUserRegisterHandler
OnAfterUserRegister OnAfterUserRegisterHandler
OnBeforeUserUpdate OnBeforeUserUpdateHandler
OnAfterUserUpdate OnAfterUserUpdateHandler
OnSaleBasketBeforeSaved OnSaleBasketBeforeSavedHadler
OnSaleOrderBeforeSaved OnSaleOrderBeforeSavedHandler
OnSaleOrderSaved OnSaleOrderSavedHandler

Исходный код всех обработчиков можно посмотреть в этом файле: /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('qsoftm.mindbox')) {
            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 в Вашем компоненте персональных данных.

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

  1. Endpoint (Точка интеграции) - Уникальный идентификатор сайта/мобильного приложения/и т.п. Значение нужно уточнить у менеджера.
  2. Домен API в Mindbox - Доменное имя точки входа API Mindbox. Значение нужно уточнить у менеджера.
  3. Точка контакта - Идентификатор точки контакта, используемой при оформлении заказов, Значение нужно уточнить у менеджера.
  4. Ключ авторизации в API Mindbox - Каждому EndpointId соответствует свой secretKey, значение нужно уточнить у менеджера. Значение нужно уточнить у менеджера.
  5. Префикс операций - Префикс для стандартных операций API Mindbox. Значение нужно уточнить у менеджера.
  6. Идентификатор заказа сайта - Идентификатор заказов сайта в системе Mindbox, используется при оформлении заказов. Значение нужно уточнить у менеджера.
  7. Идентификатор сайта - Идентификатор сайта в системе Mindbox. Значение нужно уточнить у менеджера.
  8. Директория лог файла - Абсолютный путь до директории, куда модуль будет писать логи. Логи имееют следующую структуру хранения:
    your_log_directory/
    -- mindbox/
    ---- 2019/
    ------ 04/
    -------- 29/
    ---------- mindbox.log
    -------- 30/
    ---------- mindbox.log
  1. Тип HTTP клиента - Тип HTTP клиента, используемого для запросов к API. Для использования curl убедитесь, что у вас установленно расширение php curl.
    php -i | grep curl
  1. Таймаут в секундах - Время ожидания ответа для запросов к API.
  2. Таймаут очереди в секундах - Время ожидания ответа для запросов к API из очереди запросов.
  3. Имя файла выгрузки в формате xml - Имя файла выгрузки относительно DOCUMENT_ROOT вашего проекта. То есть, если вы например хотите генерировать выгрузку в папку upload - укажите в этом поле upload/feed.xml
  4. SKU в каталоге - Наличие инфоблока торговых предложений.
  5. ID инфоблока каталога - Идентификаторы инфоблоков каталога, используемые при выгрузке.
  6. Название идентификатора товара - идентификатор товара, используемый при оформлении заказов. Значение нужно уточнить у менеджера.

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

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

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

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

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

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('<?=$arCurSection['ID']?>');
</script>

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

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

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 рассылку, как для зарегистрированных, так и для анонимных пользователей.