Модуль Mindbox для Bitrix Framework
Инструкция по установке и интеграции модуля на сайт
Начало работы
Установка модуля
- Устанавливаем файлы модуля через Bitrix Marketplace. Либо с помощью composer.
cd [document_root]/bitrix/modules
composer create-project qsoft/mindbox qsoftm.mindbox 1.4.1
- Устанавливаем модуль в административном разделе в меню Marketplace->Установленные решения
- Заполняем поля настроек модуля в административном разделе.
В процессе установки:
- Будут навешаны обработчики на следующие события
Событие | Обработчик |
---|---|
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();
|
Примечание:
- Для проектов с большим каталогом рекомендуется перевести выгрузку каталога на крон.
- Назавание сайта и компании в выгрузке берется из поля "Название веб-сайта" в настройках сайта.
Пример скрипта
<?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 в Вашем компоненте персональных данных. |
Описание полей настроек модуля
- Endpoint (Точка интеграции) - Уникальный идентификатор сайта/мобильного приложения/и т.п. Значение нужно уточнить у менеджера.
- Домен API в Mindbox - Доменное имя точки входа API Mindbox. Значение нужно уточнить у менеджера.
- Точка контакта - Идентификатор точки контакта, используемой при оформлении заказов, Значение нужно уточнить у менеджера.
- Ключ авторизации в API Mindbox - Каждому EndpointId соответствует свой secretKey, значение нужно уточнить у менеджера. Значение нужно уточнить у менеджера.
- Префикс операций - Префикс для стандартных операций API Mindbox. Значение нужно уточнить у менеджера.
- Идентификатор заказа сайта - Идентификатор заказов сайта в системе Mindbox, используется при оформлении заказов. Значение нужно уточнить у менеджера.
- Идентификатор сайта - Идентификатор сайта в системе Mindbox. Значение нужно уточнить у менеджера.
- Директория лог файла - Абсолютный путь до директории, куда модуль будет писать логи. Логи имееют следующую структуру хранения:
your_log_directory/
-- mindbox/
---- 2019/
------ 04/
-------- 29/
---------- mindbox.log
-------- 30/
---------- mindbox.log
- Тип HTTP клиента - Тип HTTP клиента, используемого для запросов к API. Для использования curl убедитесь, что у вас установленно расширение php curl.
php -i | grep curl
- Таймаут в секундах - Время ожидания ответа для запросов к API.
- Таймаут очереди в секундах - Время ожидания ответа для запросов к API из очереди запросов.
- Имя файла выгрузки в формате xml - Имя файла выгрузки относительно DOCUMENT_ROOT вашего проекта.
То есть, если вы например хотите генерировать выгрузку в папку
upload
- укажите в этом полеupload/feed.xml
- SKU в каталоге - Наличие инфоблока торговых предложений.
- ID инфоблока каталога - Идентификаторы инфоблоков каталога, используемые при выгрузке.
- Название идентификатора товара - идентификатор товара, используемый при оформлении заказов. Значение нужно уточнить у менеджера.
Интеграция модуля
- Подключаем трекер mindbox в хедеры всех страниц сайта. Инструкция по его подключению находится здесь.
- Интегрируем компоненты модуля mindbox. Компоненты и их шаблоны находятся в директории -
/bitrix/components/mindbox
- При необходимости проводим кастомизацию шаблонов и стилей компонентов для сохранения корпоративного стиля Вашего сайта. Файлы стилей -
/bitrix/css/mindbox
, js скрипты -/bitrix/js/mindbox
, Изображения -/bitrix/images/mindbox
- В стандартных шаблонах компонентов модуля подключается 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 рассылку, как для зарегистрированных, так и для анонимных пользователей.