Автор дополнения
Артем Низовских
Пакетов
10
Закачек
836
Обычно отвечает в течение суток
Автор дополнения
Пакетов
10
Закачек
836
Обычно отвечает в течение суток
Версия 1.0.11-beta1
Дата выпуска 20.11.2018
Загрузки 77
Просмотры 3 959
Внимание, этот компонент требует версию PHP 5.4 или выше! Если ваш сайт использует PHP ниже требуемого, установка этого дополнения может его сломать.
Внимание, этот компонент требует версию MODX не ниже 2.3 !
Модуль интеграции сайта на MODX Revolution и Bitrix24

Возможности:
  1. Плагин срабатывающий на событие msOnCreateOrder, автоматически создает новую сделку в CRM. Добавляет товары в справочник товаров, создает контакт. Если стоимость доставки не нулевая, то в сделке создает товар с название «Доставка»
  2. Плагин срабатывающий на событие msOnUpdateOrder, изменяет заказ в CRM при изменении заказа
  3. Плагин срабатывающий на событие msOnBeforeRemoveOrder, удаляет заказ из CRM
  4. Плагин срабатывающий на событие OnUserSave, создает контакт или обновляет существующий
  5. Плагин срабатывающий на событие OnDocFormSave, создает товары/разделы товаров или обновляет существующие
  6. Возможно подключение обратной синхронизации

Может работать со следующими сущностями CRM
  • Сделки — Deal
  • Валюты — Currency
  • Дела — Activity
  • Единицы измерения — Measure
  • Каталог — Catalog
  • Предложения — Quote
  • Компании — Company
  • Контакты — Contact
  • Лиды — Lead
  • Направления сделок — DealCategory
  • Разделы товаров — ProductSection
  • Счета — Invoice
  • Товарные позиции — ProductRow
  • Товары — Product
  • Справочники — Status
  • Живая лента — Blogpost

Гибкость


Вы можете использовать существующий функционал, отправлять в CRM любые данные с сайта, либо получать информацию из CRM. Дополнение не связано с MiniShop2. Существующий плагин можно использовать в качестве примера для написания собственного кода для работы с другими дополнениями.
Для использования функционала нужно открыть сущность и вызвать нужный метод.
if (!$mbc = $modx->getService('modbitrixcrm', 'modBitrixCRM', $modx->getOption('modbitrixcrm_core_path', null,
        $modx->getOption('core_path') . 'components/modbitrixcrm/') . 'model/modbitrixcrm/', $scriptProperties)
) {
    return false;
}

if ($contact= $mbc->loadService('Contact')){
    $contact->add(array(
	'NAME' => 'Иван', 
	'OPENED' =>'Y', 
	'ASSIGNED_BY_ID' => $mbc->config['assigned_by_id'],
	'TYPE_ID' => 'CLIENT',
	'SOURCE_ID' => 'WEB',
	'EMAIL' => array(array(
		'VALUE' => 'ivanov@mail.ru',
		'VALUE_TYPE' => 'HOME',
	))
    ), array(
	'REGISTER_SONET_EVENT' => 'N'
    ));
}


Настройка


В системных настройках (раздел modbitrixcrm) Вам нужно указать аккаунт и webhook. Получить его нужно в Битрикс24 — Приложения — Вебхуки — Входящие вебхуки. В правах доступа выбрать CRM.

В настройках статусов miniShop2 заполнить новое поле — ID cтатуса в Bitrix24



Настройка статусов в Битрикс24 — CRM — Настройки — Справочники — Стадии сделки.
ID статусов можно получить выполнив команду

if ($status= $mbc->loadService('Status')){
    $response = $status->entity->items('DEAL_STAGE');
    echo '<pre>'.print_r($response,1).'</pre>';
}


Для обратной синхронизации в системных настройках нужно указать код исходящего вебхука в соответствующем параметре. Добавлены следующие параметры:
  • modbitrixcrm_oncrmdealupdate — обновление сделки
  • modbitrixcrm_oncrmdealadd — создание сделки
  • modbitrixcrm_oncrmproductupdate — обновление товара
В настройках Исходящего вебхука в CRM указать адрес обработчика
http://sitename.ru/assets/components/modbitrixcrm/trigger.php
Тип события — Обновление сделки (ONCRMDEALUPDATE)

Для остальных событий необходимо написание собственных обработчиков — создавать класс 'modBitrixCRM[название_события_в_нижнем_регистре]'. Располагать в директории /core/components/modbitrixcrm/custom/triggers/
За пример можно взять файл
/core/components/modbitrixcrm/model/modbitrixcrm/triggers/modbitrixcrmoncrmdealupdate.class.php


Для отправки лидов в Битрикс24 сделан hook modBitrixLead для FormIt.
Нужно добавить в FormIt параметр btxFieldnames, в котором указать в формате JSON соответствие полей. По-умолчанию:
{"name":"NAME","message":"COMMENTS","email":"EMAIL","phone":"PHONE"}


Добавлены два события
  • OnBeforeMakeRequestBitrix — срабатывает перед отправкой данных в Битрикс24
  • OnMakeRequestBitrix — срабатывает после отправки данных

1.0.11-beta

  • Изменены плагины на события: msOnCreateOrder, msOnUpdateOrder
  • Изменен метод getContactId
  • Добавлены события: OnBtxBeforeSendLead, OnBtxBeforeSendDeal, OnBtxBeforeAddProductToDeal, OnBtxBeforeSendUser

1.0.10-beta

  • Изменены плагины на события: OnDocFormSave, msOnCreateOrder
  • Добавлены системная настройка: modbitrixcrm_sync_resources
  • Исправлен класс modBitrixCRM

1.0.9-beta

  • Изменен триггер onCRMDealAdd
  • Изменен сниппет modBitrixLead (добавлена возможность отправлять файлы)

1.0.8-beta

  • Добавлен Blogpost
  • Добавлен плагин на событие: OnResourceDuplicate

1.0.7-beta

  • Изменен сниппет modBitrixLead

1.0.6-beta

  • Исправлен класс modBitrixCRM

1.0.5-beta

  • Добавлены события: OnBeforeMakeRequestToBitrix, OnMakeRequestToBitrix
  • Добавлены системные настройки: modbitrixcrm_currency_id, modbitrixcrm_order_uf, modbitrixcrm_contact_uf, modbitrixcrm_oncrmdealupdate, modbitrixcrm_oncrmdealadd, modbitrixcrm_oncrmproductupdate
  • Добавлены триггеры: oncrmdealadd, oncrmproductupdate
  • Добавлены плагины на события: OnDocFormSave, OnUserSave
  • Изменены плагины на события: msOnCreateOrder, msOnUpdateOrder, msOnManagerCustomCssJs
  • Добавлено пользовательское поле "MSORDER ID" in Bitrix24 для Контактов
  • Добавлен сниппет modBitrixLead - хук для FormIt

1.0.4-beta

  • Добавлена настройка "hook_admin_id"
  • Добавлено пользовательское поле "MSORDER" в Битрикс24 для Сделок

Последние обсуждения в сообществе MODX.pro