Интеграция Битрикс24 с сайтом через PHP
13 сентября 2019 1С-Битрикс Битрикс24
Возникла задача интеграции лендинга с CRM Битрикс24. Лендинг самый обычный на HTML. Необходимо было создавать лиды из отправляемых с сайта форм обратной связи.
В формах была отправка не только данных о пользователе — имя, телефон и e-mail, но и передача нескольких нестандартных значений — название выбранного товара и пользовательский текст.
Нужно учитывать, что для создания лида в Битрикс24 поле Заголовок и Имя обязательно. Остальные поля заполняются по необходимости. Поле телефон и e-mail стандартные, а название товара и текст было решено передавать в пользовательский комментарий к лиду.
Содержание
PHP скрипт для создания лида в CRM Битрикс24
В CRM 1C-Битрикс формы, созданные через модуль форм подключаются проще простого, достаточно включить это в настройках. Но и тут на деле все оказалось довольно просто. У Битрикс существует REST API, с помощью которого можно передавать лиды через PHP скрипт. И использовать популярную CRM для любого сайта.
<?php define('CRM_HOST', 'login.bitrix24.ru'); // Указываем Ваш домен в CRM define('CRM_PORT', '443'); // Порт сервера CRM. Установлен по умолчанию, не меняем define('CRM_PATH', '/crm/configs/import/lead.php'); define('CRM_LOGIN', 'login@it-blog.ru'); // Логин пользователя Вашей CRM define('CRM_PASSWORD', 'pass'); // Пароль пользователя Вашей CRM if ($_SERVER['REQUEST_METHOD'] == 'POST') { $name = $_POST['name'];// Получаем данные из поля Имя $phone = $_POST['phone']; // Получаем данные из поля Телефон $usermail = $_POST['email']; // Получаем данные из поля E-mail $product = $_POST['product']; // Получаем данные из скрытого поля названия товара if(!empty($_POST['comment'])) { $comment = $_POST['comment']; // Если есть комментарий, то получаем поле Комментарий } $postData = array( 'TITLE' => 'Заявка с сайта', // Заголовок для лида 'NAME' => $name, // Имя 'PHONE_WORK' => $phone, // Телефон 'EMAIL_WORK' => $usermail, // E-mail 'COMMENTS' => $product.' '.$comment // Пользовательский комментарий ); if (defined('CRM_AUTH')) { $postData['AUTH'] = CRM_AUTH; } else { $postData['LOGIN'] = CRM_LOGIN; $postData['PASSWORD'] = CRM_PASSWORD; } $fp = fsockopen("ssl://".CRM_HOST, CRM_PORT, $errno, $errstr, 30); if ($fp) { $strPostData = ''; foreach ($postData as $key => $value) $strPostData .= ($strPostData == '' ? '' : '&').$key.'='.urlencode($value); $str = "POST ".CRM_PATH." HTTP/1.0\r\n"; $str .= "Host: ".CRM_HOST."\r\n"; $str .= "Content-Type: application/x-www-form-urlencoded\r\n"; $str .= "Content-Length: ".strlen($strPostData)."\r\n"; $str .= "Connection: close\r\n\r\n"; $str .= $strPostData; fwrite($fp, $str); $result = ''; while (!feof($fp)) { $result .= fgets($fp, 128); } fclose($fp); $response = explode("\r\n\r\n", $result); $output = '<pre>'.print_r($response[1], 1).'</pre>'; } else { echo 'Connection Failed! '.$errstr.' ('.$errno.')'; } } ?>
Поле название товара передается через скрытый input в форме
<input type="hidden" value="Название товара" />
И при отправке в CRM к нему добавляется комментарий, если он заполнен.
Нужен ремонт форсунок краснодар? Качественный и надежный сервис окажет услуги по диагностике и ремонту дизельных форсунок.
С помощью этого нехитрого скрипта вы можете передавать любые значения из форм в поля лида.
Стандартные имена ключей для полей Битрикс24
Здесь приведены только основные поля, которые могут понадобиться для большинства сайтов. Полный список полей можно узнать из документации к Битрикс24.
TITLE — название лида
NAME — имя
LAST_NAME — фамилия
SECOND_NAME — отчество
PHONE_WORK — рабочий телефон
PHONE_MOBILE — мобильный телефон
PHONE_HOME — домашний телефон
EMAIL_WORK — рабочий e-mail
EMAIL_HOME — личный e-mail
ADDRESS — адрес
COMMENTS — комментарий
COMPANY_TITLE — название компании
WEB_HOME — личная страница
WEB_WORK — корпоративный сайт
IM_OTHER — другой контакт
Передача значения в пользовательское поле Битрикс24 из PHP скрипта
Для начала необходимо создать пользовательское поле в самой CRM:
- Зайти в раздел CRM → Настройки → Настройки форм и отчетов → Пользовательские поля → Лид и Добавить поле
- Указать название поля
- Установить галочку «Показывать в списке»
- Выбрать тип поля, например «Строка»
- Сохранить
Далее в массиве $postData добавить новое значение 'UF_CRM_XXXXXXXXXX' => $customField
,
где XXXXXXXXXX — это ID пользовательского поля
$postData = array( 'TITLE' => 'Заявка с сайта', // Заголовок для лида 'NAME' => $name, // Имя 'PHONE_WORK' => $phone, // Телефон 'EMAIL_WORK' => $usermail, // E-mail 'COMMENTS' => $product.' '.$comment, // Пользовательский комментарий 'UF_CRM_XXXXXXXXXX' => $customField, // Пользовательское поле );
Как узнать ID пользовательского поля?
Чтобы узнать ID пользовательского поля, нужно:
- Зайти в раздел CRM → Настройки → Настройки форм и отчетов → Пользовательские поля → Лид и Список поле
- В списке найти нужное поле и перейти в него
В адресной строке, вы увидите значение UF_CRM_XXXXXXXXXX https://login.bitrix24.ru/crm/configs/fields/CRM_LEAD/edit/UF_CRM_XXXXXXXXXX/ , где UF_CRM_XXXXXXXXXX
— это и есть ID
Узнать как открыть фирму в Германии на https://offshorensk.ru/
Наконец-то нашел рабочий вариант и подробное объяснение!!! Спасибо большое!
Здравствуйте! Спасибо вам большое!
Действительно все просто. Спасибо автору!
А где взять /crm/configs/import/lead.php?
Он лежит на стороне Битрикс24
Работает, спасибо!