Анонс modBitrixCRM - интеграция с Битрикс24

Повышение продаж является основной целью внедрения любой CRM системы. Битрикс24 не исключение.

Что такое Битрикс24?
Битрикс24 — это корпоративный портал, который имеет абсолютно все инструменты для автоматизации работы всей компании.
С помощью него Вы можете планировать рабочее время, назначать и исполнять задачи, создавать и контролировать сделки, вести учет клиентов и продаж.

На текущем этапе у компонента modBitrixCRM имеется следующий функционал:
  • Плагин срабатывающий на событие msOnCreateOrder, автоматически создает новую сделку в CRM. Добавляет товары в справочник товаров, создает контакт. Если стоимость доставки не нулевая, то в сделке создает товар с названием «Доставка»
  • Плагин срабатывающий на событие msOnUpdateOrder, изменяет заказ в CRM при изменении заказа
  • Плагин срабатывающий на событие msOnBeforeRemoveOrder, удаляет заказ из CRM
  • Прием данных при изменении сделки в Битрикс24 (с использованием настраиваемого вебхука).
Компонент может работать со следующими сущностями Битрикс24
  • Сделки — Deal
  • Валюты — Currency
  • Дела — Activity
  • Единицы измерения — Measure
  • Каталог — Catalog
  • Предложения — Quote
  • Компании — Company
  • Контакты — Contact
  • Лиды — Lead
  • Направления сделок — DealCategory
  • Разделы товаров — ProductSection
  • Счета — Invoice
  • Товарные позиции — ProductRow
  • Товары — Product
  • Справочники — Status
Вы можете использовать существующий функционал и отправлять в CRM абсолютно любые данные с сайта, либо получать информацию из CRM. Дополнение не связано с miniShop2. Используя modBitrixCRM, можно сделать свои собственные плагины и сниппеты, работающие, например, с Shopkeeper.

Компонент добавлен в магазин, доступен здесь.
Артем
19 сентября 2017, 02:59
1
3 718
+4
Поблагодарить автора Отправить деньги

Комментарии: 47

Василий Столейков
19 сентября 2017, 06:09
1
0
Дополнение не связано с miniShop2.
В каком смысле не связано, если использует плагины на его события?
    Артем
    19 сентября 2017, 06:33
    +3
    Да, текущие плагины сделаны для minishop. Но для установки modBitrixCRM не обязательно наличие minishop. Используя дополнение, можно сделать свои собственные плагины и сниппеты, работающие например с Shopkeeper. Либо вообще не привязываться к магазинам, а сделать хуки для FormIt.
    Возможно неправильно выразился.
Дмитрий
19 сентября 2017, 09:03
+1
Ох, красота-то какая!
Александр
19 сентября 2017, 16:59
+1
Опередили меня, мой модуль на подходе был, эх =)
Поставил на modx.pro хостинг протестировать, в логах такая беда:
[2017-09-19 16:56:47] (ERROR @ /home/*****/www/core/components/modbitrixcrm/model/modbitrixcrm/mbcsimpleresponse.class.php : 424) PHP warning: Declaration of mbcShortResponse::add($fields = Array) should be compatible with mbcResponse::add($fields = Array, $params = Array)
[2017-09-19 16:56:47] (ERROR @ /home/*****/www/core/components/modbitrixcrm/model/modbitrixcrm/mbcsimpleresponse.class.php : 424) PHP warning: Declaration of mbcShortResponse::update($id, $fields = Array) should be compatible with mbcResponse::update($id, $fields = Array, $params = Array)
[2017-09-19 16:56:47] (ERROR @ /home/*****/www/core/components/modbitrixcrm/model/modbitrixcrm/mbcsimpleresponse.class.php : 424) PHP warning: Declaration of mbcShortResponse::getlist($order = Array, $filter = Array) should be compatible with mbcSimpleResponse::getlist($order = Array, $filter = Array, $select = Array)
[2017-09-19 16:56:47] (ERROR @ /home/*****/www/core/components/modbitrixcrm/model/modbitrixcrm/modbitrixcrm.class.php : 104) PHP warning: Illegal string offset 'total'
[2017-09-19 16:56:47] (ERROR @ /home/*****/www/core/components/modbitrixcrm/model/modbitrixcrm/modbitrixcrm.class.php : 110) PHP warning: Illegal string offset 'total'
Вы бы хоть протестировали где еще, кроме как на своем хостинге

При этом сделка не создается
    Артем
    19 сентября 2017, 17:04
    +2
    тестировал у себя, плюс при размещении тестировался, буду править)
    Артем
    19 сентября 2017, 17:18
    +2
    поправил
      Александр
      20 сентября 2017, 16:46
      0
      Еще подправить бы:
      'https://'.$this->config['account'].'.bitrix24.ru/rest/1/'.$this->config['webhook'].'/'
      в makeRequest.
      Если хук создавал не юзер под id 1, то запрос не выполнится.
      Думаю, лучше сделать админскую настройку с ID админа (автора хука).
      В целом, функционально, но для простолюдина будет много проблем. В моем модуле функционала меньше, но само подключение проще, равно как и синхронизация, кстати без исходящего вебхука.
      Я пихал в новые сделки свой ID заказа minishop2, при первичном подключении к bx24 вешал событие onCrmDealUpdate, и там уже манипулировал состоянием заказа.
        Артем
        20 сентября 2017, 17:41
        0
        Да, это поправлю. Пропустил)
        Дадите затестить ваш модуль?)
          Александр
          21 сентября 2017, 10:16
          0
          да, но он в сыром виде. На рабочем проекте работает, но я его рихтую под нужды, смотрю баги, потребности, косяки, скорость. Позже выложу как сильно упрощенную версию Вашего модуля
    Денис
    27 февраля 2019, 17:23
    0
    Держите в курсе. Очень нужен компонент с подобным функционалом.
Alexander V
26 сентября 2017, 13:09
+1
Выглядит красиво. Осталось переубедить клиента отказаться от Битрикс в пользу Minishop.
    Артем
    26 сентября 2017, 13:23
    0
    было бы неплохо
      Alexander V
      26 сентября 2017, 13:27
      0
      Не выгодно. Пока из минишопа сделаешь, что-то порхожее он станет дороже и нормально так дороже.
        Александр
        26 сентября 2017, 23:06
        +1
        Не путайте битрикс и бирикс24.
        битрикс — php фреймворк, значительно сложнее modx, по личному мнению во многом уступает modx. В целом самый популярный фрейм в СНГ благодаря маркетингу. 90% из 100% отзывы от разработчиков отрицательные. Держится благодаря нехилым % по партнерке.

        битрикс24 — CRM на базе фреймворка битрикс. Сравнивать битрикс24 с минишоп, равносильно как стул и шкаф. Оба из дерева, но функции выполняют разные.
          Павел Карелин
          27 сентября 2017, 01:58
          0
          Так он вроде и не путает, битрикс и минишоп два движка магазина.
            Александр
            27 сентября 2017, 09:18
            0
            от Вас то такое слышать…
            битрикс — фреймворк, минишоп — дополнение. Разницу чувствуете?
              Павел Карелин
              27 сентября 2017, 10:21
              +1
              И это ни чего не меняет, оба движка магазина))) И дополнение, дополнению рознь) Ну и битрикс я бы не стал так огульно называть фреймворком. Они и сами позиционируют себя как CMS. В общем это по сути просто софистика, я к этому все веду.

              от Вас то такое слышать…
              В смысле от меня такое слышать, я как думаю так и говорю?
                Александр
                27 сентября 2017, 10:44
                0
                это равносильно, если сравнивать minishop и modx.
                Интернет-магазин на битриксе — одно из решений их продуктов.
                Есть «Управление сайтом», там несколько редакций, функции ИМ появляются только от «Малый бизнес».
                есть «Корпоративный портал», там вообще социальная сеть.
                Opencart, Magento, insales, osCommerce — движки магазинов. У них цель на старте одна, продавать товары. Из коробки.
                Umi, Bitrix, Netcat, Drupal, modx — CMS/CMF
                Minishop2, woocommerce, Drupal Commerce — дополнения. Если cms перестанут поддерживать, дополнение умрет.
                Неужели разница так не очевидна?
                  Павел Карелин
                  27 сентября 2017, 11:22
                  +1
                  Такое чувство что тебе поговорить не с кем, все вроде очевидно. Я просто хотел пошутить, за сим откланяюсь.
Олег Захаров
02 апреля 2018, 12:42
0
Прошу подсказать а где запускать код для определения статуса сделки? В консоли браузера?
    Артем
    02 апреля 2018, 13:14
    0
    Установите дополнение Console
Олег Захаров
02 апреля 2018, 12:52
0
И еще — в статусах заказа в Minishop2 стоят подставленные фразы Won, Lose, New — их меняем на цифровое значение ID в Битрикс24?
    Артем
    02 апреля 2018, 13:14
    0
    Это стандартные ID статусов из Битрикс24
Олег Захаров
02 апреля 2018, 16:22
0
Подскажите как грамотно увязать привязку с AjaxForm? Примером, а то не совсем понятно.
В описании написано:
Для отправки лидов в Битрикс24 сделан hook modBitrixLead для FormIt.
Нужно добавить в FormIt параметр btxFieldnames, в котором указать в формате JSON соответствие полей. По-умолчанию:
{«name»:«NAME»,«message»:«COMMENTS»,«email»:«EMAIL»,«phone»:«PHONE»}
Как при вызове через AjaxForm прописать параметр? Если как параметр пропишу боюсь из AjaxForm он сам не передастся — надо будет сниппет править?
    Артем
    02 апреля 2018, 16:37
    0
    напишите в техподдержку
Олег Захаров
27 апреля 2018, 01:15
0
Подскажите, а как в форме файлы передавать в лиды? Как прописать JSON соответствие если грузим 1 файл, несколько файлов?
Олег Захаров
25 августа 2018, 10:59
1
0
Не хватает хорошей техдокументации что и как настраивать. Уважаемый Артем, можно ли сделать демосайт?
С описанием примеров:
  1. создаем, лид/сделку/контакт/компанию,
  2. интегрируем с FormIt/AjaxForm, с описанием оформления параметров; С добавлением файлов! — у меня из-за этого не работает форма и теряются лиды (а очень очень надо);
  3. получаем лид/сделку/контакт/компанию, меняем значение этих сущностей и сохраняем изменения в CRM;
  4. работа с разными аккаунтами CRM (в одной компании два разных отдела работают в разных аккаунтах), при едином движке двух сайтов (работа через контексты);
  5. создание записи в карточке Лида/Сделки/Контакта/Компании.
  6. Например, хотелось бы при возвращении клиента на сайт сделать запись в карточку клиента/сделки?
  7. И как задачи создавать? с привязкой к сущностям CRM (лид/сделка/контакт/компания)?
Артем, уверен что если добавите больше описания, популярность и продажи вашего компонента вырастут раз 10.
Я например настроил интеграцию, указал в настройках компонента ID пользователя (1), но почему-то упорно лид создается на другого пользователя (4). Лид создается с названием WEB 2018-08-25 10:17:12 — как настроить свое название? Понятно что можно обратиться в техподдержку, но хотелось бы самому научиться и разбираться во всем, не отвлекая каждый раз Автора компонента (к тому же нет желания ждать ответа, а хочется сразу самому все сделать пока код в голове «держишь»).
    Дмитрий
    25 августа 2018, 11:15
    +1
    Артем, уверен что если добавите больше описания, популярность и продажи вашего компонента вырастут раз 10.
    Вы соц.опрос проводили по интернетам, чтобы знать, во сколько вырастут продажи? Очень смелое заявление, учитывая, что это единственный публичный компонент для интеграции Bitrix24 и MODX Revo. Те, кому это надо — купят в любом случае.
    Да, документации маловато, я сам с ним просидел часок, пытаясь настроить форму, но если вы его действительно купили, то есть поддержка, где вам помогут. Я, честно, сам выступаю за увеличение информативной базы, но когда ты и компонент написал, еще и подробно по шагам документацию расписал, в MarkDown оформил, на гитхаб выложил — ты великий человек, у тебя очень много времени.
      Олег Захаров
      25 августа 2018, 12:14
      +1
      Прошу прощения, я что-то лишнего попросил? Я автору по проблеме работы формы с файлами (не работает интеграция с FormIT с формой где есть files) написал еще 05 мая, но он ответил что не работал с файлами, но обещал доработать компонент. Времени прошло много, реакции нет. Решил написать сюда публично, чтобы подтолкнуть автора что-то сделать (в техподдержку тоже написал). Надеялся что я не один такой, кому нужно больше информации. И при наличии большого отклика надеялся что дело сдвинется с мертвой точки.
      Но чего Вы, Дмитрий, хотели добиться своим комментарием? Защитить Артема? От меня? Я что на него нападаю? Я всего лишь прошу. Это же можно? Я написал пост искренне желая развития столь замечательного компонента и я искренне благодарен Артему за его труд и не имею к нему претензий. Давайте по делу и без холивара.
      Позиция что это «единственный» компонент не означает что надо к пользователям относится с позиции «те кому это надо». Мы таким отношением нисколько не популяризируем MODx сообщество. Это печалька. Вы Дмитрий видимо программист в первую очередь и продавец в последнюю очередь (извините хотя я Вас не знаю, не хочу оскорбить как-то). Почему так думаю — потому что часто программисты плохие продавцы ( и рассуждают с позиции «ох как рано встает охрана»). А хороший продавец думает о том как решить проблему покупателя.
        Дмитрий
        25 августа 2018, 12:42
        0
        Я абсолютно согласен, что документация нужна, но если она не появилась с самого начала, то появится, скорее всего, тогда, когда у человека будет время. Я придираюсь именно к вашим словам
        продажи вашего компонента вырастут раз 10
        ибо это абсурдные, взятые с потолка цифры, и таких заявлений в этом сообществе можно найти десятки, где каждый «продавец» убеждает автора в том, что если он сделает так, как хочет этот самый «продавец», то всем будет счастье и миллионы долларов.
          Олег Захаров
          25 августа 2018, 14:02
          0
          Ну тут есть некая попытка замотивировать Артема. Именно из-за того что это пока единственное решение — оно имеет все шансы вырасти в количестве инсталляций в 10 раз. Т.к. пользователей Битрикс24 — несколько миллионов. Я по себе сужу: Я не могу нормально продавать решения с использованием этого компонента — только потому что я сам внедрил это решение буквально на пару сайтов, и уже спотыкаюсь, из-за множества непоняток что как делать. А так бы уже давно поставил этот компонент еще на 10-20 сайтов (всем своим клиентам которые сидят на Битрикс24). Вот мне сейчас надо будет предлагать решение для автоворонок, туннелирования. С этим компонентом это можно хорошо сделать. Но не хватает гайда. Это крайне крутой инструмент. Но как с ним работать пока не понятно. Придется вкуривать и сидеть изучать документацию. А хотелось инструкции.
Дима Зеленцов
12 октября 2018, 18:37
0
Хочу купить модуль, но не могу понять как привязать к Formit, вроде логично что хук просто должен ловить значения с определенным именем полей и отправлять, но не понятно что за btxFieldnames.
То есть в параметрах вызова обработчика нужно ставить этот параметр со значением json?
Можно хотя бы просто пример вызова сделать, что бы наглядно было понятно?
    Артем
    12 октября 2018, 19:43
    +1
    [[!AjaxForm? 
      &form=`tpl.AjaxForm.nku.biz_form2_zayvka_na_raschet_stoim` 
      &snippet=`FormIt` 
      &hooks=`FormItSaveForm,modBitrixLead,email`
     &btxFieldnames=`{"name":"NAME","message":"COMMENTS","email":"EMAIL","phone":"PHONE","files":"UF_CRM_1535460191386","file":"UF_CRM_1535484302510"}`
      &emailTpl=`tpl.email`
      &validate=`name:minLength=^2^,email:email:required,message:minLength=^10^,phone:phone:required`
      &validationErrorMessage=`В форме содержатся ошибки!`
      &successMessage=`Сообщение успешно отправлено`
    ]]
      Олег Захаров
      19 ноября 2018, 14:16
      0
      Артем, а как быть с вопросом привязки заявки к конкретному пользователю?
      Как изменить название заявки по умолчанию?
      Выше я вопрос задавал.
        Артем
        19 ноября 2018, 14:44
        0
        заявка не привязывается
        &btxTITLE=`'@INLINE заявка`
        можете написать чего не хватает — поправлю
        также в ТП я вам задавал вопрос по поводу нужных примеров, но вы так и не ответили
          Олег Захаров
          19 ноября 2018, 16:35
          0
          Супер, название лидов теперь могу задавать как надо.
          &btxTITLE=`Заявка c сайта [[*pagetitle]]`
          Олег Захаров
          19 ноября 2018, 16:35
          0
          А как заявку можно к конкретному пользователю привязать? Страниц может быть много, за разные страницы будут отвечать разные пользователи. Как вариант вижу создать пользовательское поле, в него забивать id пользователя, затем с помощью роботов исправлять пользователя по заявке. Но это можно делать только на платной версии Битрикс24. Как быть тем кто будет сидеть на бесплатной. Лучше бы добавить возможность указывать id пользователя. Может есть такая настройка? аля &btxASSIGNED_BY_ID?
            Артем
            19 ноября 2018, 16:43
            0
            добавил событие «OnBtxBeforeSendLead»
            можете на него сделать плагин добавлять в передаваемые параметры id контакта
              Олег Захаров
              19 ноября 2018, 16:44
              0
              Спасибо! А можно пример для особо (ленивых разбираться и не понимающих) как я :))
              Я пытался разобраться с API Битркис24, чувствую что без сто грамм не разберуся
                Артем
                20 ноября 2018, 09:45
                0
                примерно так, сам не тестил
                <?php
                
                switch ($modx->event->name){
                	case 'OnBtxBeforeSendLead':
                		if (isset($params['CONTACT_ID']) && !empty($params['CONTACT_ID'])) return;
                
                		$contact = $mbc->loadService('Contact');
                		//поиск существующего контакта по email
                		$response = $contact->getlist(['DATE_CREATE'=>'DESC'], ['TYPE_ID'=> 'CLIENT', 'EMAIL' => $params['EMAIL'][0]['VALUE']], ['ID', 'EMAIL']);
                		if (!isset($response['error']) && !empty($response['result'])){
                			$params['CONTACT_ID'] = $response['result'][0]['ID'];
                		}
                		else{
                			//создание нового
                			$response = $contact->add([
                				'NAME' => $params['NAME'],
                				'OPENED' =>'Y', 
                				'ASSIGNED_BY_ID' => $mbc->config['assigned_by_id'],
                				'TYPE_ID' => 'CLIENT',
                				'SOURCE_ID' => 'WEB',
                				'EMAIL' => [[
                					'VALUE' => $params['EMAIL'][0]['VALUE'],
                					'VALUE_TYPE' => 'HOME',
                				]]
                			], [
                				'REGISTER_SONET_EVENT' => 'N'
                			]);
                			if (!isset($response['error']) && !empty($response['result'])){
                				$params['CONTACT_ID'] = $response['result'];
                			}
                		}
                		$values = & $modx->event->returnedValues;
                		$values['params'] = $params;
                		break;
                }
Роман
10 декабря 2018, 12:01
0
Добрый день. Возможна установка и настройками вашими силами и сколько это будет стоить? Спасибо.
    Артем
    10 декабря 2018, 12:48
    0
    напишите список задач на почту nizart91@mail.ru
Денис
27 февраля 2019, 15:58
+1
Удалил все товары и категории, которые созданы компонентом в б24. Зашёл в эти товары в админке сайта, сохранил и они больше не появляются в б24. Видимо, пытается крепить на айдишники, которые уже удалены. Как с этим быть?
После переключения настроек на другой портал б24, товары не создаются. Возможно так же виноваты айдишники.
Разберитесь, пожалуйста.
Денис
20 июня 2019, 11:17
0
Господа, уберегите себя от покупки. Компонент НЕ РАБОТАЕТ! Цитата из переписки с технической поддержкой данного компонента: «… плагин, который можно использовать в качестве примера для написания собственного кода...».
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.