Не так страшен битрикс, или выгрузка в 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 - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.
Читайте также:
Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.