Не так страшен битрикс, или выгрузка в bitrix24


В череде текущих, совершенно обычных заказов, появился очередной, но не совсем обычный. Необходимо в уже имеющееся решение по парсингу и обработке информации добавить выгрузку в систему bitrix24 по лидам – этой самой информации. Из-за небольшого опыта в битриксе, я настороженно отнёсся к данной задаче. Оказалось, зря: все очень просто и создать такой скрипт сможет любой программист PHP.

Итак, дали мне список полей и адрес с логином-паролем, на который надо слать POST-запрос. Создаем первоначальный массив:

$url = 'https://xxx.bitrix24.ru/crm/configs/import/lead.php';
$fields = array(
            'LOGIN' => "логин",
			'PASSWORD' => "пароль",
			'TITLE' => $n_dela
			'SOURCE_ID' => "Арбитр",
			'UF_CRM_1549296299' => $sud,
			'UF_CRM_1549296328' => $adres,
			'UF_CRM_1549296357' => $n_dela,
			'UF_CRM_1549296390' => $data_postupl,
			'UF_CRM_1549296464' => $name_istsi,
			'UF_CRM_1549296473' => $name_otvet		
        );
Здесь xxx.bitrix24.ru - ваш битрикс. Поле «Дата поступления» предварительно формируем так:

$mes_name  = array ("января","февраля","марта","апреля","мая","июня","июля","августа","сентября","октября","ноября","декабря");
$mes_number  = array ("01","02","03","04","05","06","07","08","09","10","11","12");
$dat = explode(" ", $data_postupl);
for ($j=0;$j<12;$j++) {
if ($mes_name[$j]==$pieces[1]) $pieces[1] = $mes_number[$j];
}
$data_postupl = $ dat[0].".".$ dat[1].".".$ dat[2];
Зачем? Просто тут у нас дата в формате 23 марта 2021, а нам надо 23.03.2021. Что-то похожее делали здесь.

Дальше делаем другой запрос к базе данных и достаем оттуда другие поля. Почему не сразу? В принципе можно написать и объединённый sql-запрос, используя LEFT, но я часто работаю с несколькими, мне так удобнее. Отличительная особенность (и очень удобная, надо заметить) языка PHP – это отсутствие необходимости задавать размер массива заранее. По сути в PHP массивы очень похожи на коллекции в других языках программирования. Пользуясь этим, добавляем динамически:

if ($rukovod!="") $fields['UF_CRM_1549370629'] = $rukovod;
if ($tel!="") $fields['PHONE_WORK'] = $tel;
if ($email!="") $fields['EMAIL_WORK'] = $email;
if ($sait!="") $fields['WEB_WORK'] = $sait;
if ($vozrast!="") $fields['UF_CRM_1549611779'] = $vozrast;
if ($region!="") $fields['UF_CRM_1549611835'] = $region;
if ($razmer!="") $fields['UF_CRM_1550594606'] = $razmer;
if ($chisl_rabov!="") $fields['UF_CRM_1549611877'] = $chisl_rabov;
if ($ustav_kapital!="") $fields['UF_CRM_1549611899'] = $ustav_kapital;
if ($vazn_info!="") $fields['UF_CRM_1549611913'] = $vazn_info;
Ну а теперь заканчиваем формирование запроса:

$fields_string = http_build_query($fields);
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_POST, 1);
curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string);
curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch,CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT, 5);
$result = curl_exec($ch);
echo $result;
curl_close($ch);
И, вуаля, у нас лиды все в базе буквально за несколько секунд:



Стоит отметить один момент: если у вас будет много лидов в выгрузке, то лучше разбить её на несколько частей – битрикс может ограничить доступ к вашему акку из-за множества запросов. Также обязательно надо записывать выгруженные в свою базу – чтобы избежать дублей.

Итак, если у вас есть вопросы, необходима помощь программиста для вашего сервиса, CMS или CRM, то пишите мне. Я работаю с распространенными и незнакомыми системами, а также создаю свои решения на чистом PHP. Могу помочь во многих вопросах по веб-приложениям (сайтам): от внутренней работы (запросы к базе, расширение функционала) и до внешних, "косметических" изменений.
Автор этого материала - я - Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.

тегизаметки, php, Битрикс24




Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.




Перенос кода с C# на Java
Поиск клик графа по алгоритму Брона-Кербоша на C#
Урок 5. Статика C#