mindbox/marketing 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

mindbox/marketing

Composer 安装命令:

composer require mindbox/marketing

包简介

README 文档

README

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

mindbox/marketing 适用场景与选型建议

mindbox/marketing 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 31 次下载、GitHub Stars 达 10, 最近一次更新时间为 2020 年 11 月 02 日, 在 PHP 生态内属于活跃度较高的组件。

我们在过去多个企业项目中使用过 mindbox/marketing 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 mindbox/marketing 我们能提供哪些服务?
定制开发 / 二次开发

基于 mindbox/marketing 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 31
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 10
  • 点击次数: 8
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 10
  • Watchers: 8
  • Forks: 4
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2020-11-02