Интеграция 1С-Битрикс

Взаимодействие с системой управляения сайтами 1С-Битрикс реализовано используя обработчики 1С-Битрикс. После отправки заявки из формы она может быть отправлена в CRM систему, будет создан контакт и заказ, если контакт уже есть в базе, то заказ будет привязан к уже существующему контакту по номеру телефона.

Для интеграции необходимо добавить в файл nano /www/site.ru/bitrix/php_interface/init.php следующий код. Если файла init.php нет, то его необходимо создать. В коде необходимо заменить API ключ на ваш, идентификатор формы $WEB_FORM_ID и поля вида $arrVALUES['form_text_23'] на ваши.

//Отправка данных в WireCRM
function my_onBeforeResultAdd($WEB_FORM_ID, &$arFields, &$arrVALUES)
{
global $APPLICATION;

if ($WEB_FORM_ID == 7)
{
$apikey = "7ac003d41d2e8f918e39c8**********";

//Поиск контакта по телефону, если не найден - добавляем
$url = "https://wirecrm.com/api/v1/contacts?phone=".urlencode($arrVALUES['form_text_24']);
$headers = array("X-API-KEY:".$apikey);
$handle = curl_init();
curl_setopt($handle, CURLOPT_URL, $url);
curl_setopt($handle, CURLOPT_USERAGENT, "WireCRM Rest API");
curl_setopt($handle, CURLOPT_HTTPHEADER, $headers);
curl_setopt($handle, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
$data_get = curl_exec($handle);
$json_get = json_decode($data_get);
if($json_get->success == 'true'){
$contactid = $json_get->data->rows[0]->id;
}else{
//Добавление контакта
$url = "https://wirecrm.com/api/v1/contacts";
$headers = array("X-API-KEY:".$apikey);
$data_post = array(
'name' => $arrVALUES['form_text_23'],
'phone' => $arrVALUES['form_text_24']
);
$json_post = json_encode($data_post);
$handle = curl_init();
curl_setopt($handle, CURLOPT_URL, $url);
curl_setopt($handle, CURLOPT_USERAGENT, "WireCRM Rest API");
curl_setopt($handle, CURLOPT_HTTPHEADER, $headers);
curl_setopt($handle, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($handle, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($handle, CURLOPT_POSTFIELDS, $json_post);
curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
$answer = curl_exec($handle);
$json = json_decode($answer);
$contactid = $json->data;
curl_close($handle);
}

//Добавление заказа
if($contactid > 0){
$url = "https://wirecrm.com/api/v1/orders";
$headers = array("X-API-KEY:".$apikey);
$data_post = array(
'name' => 'Заказ с сайта site.ru',
'description' => $arrVALUES['form_textarea_22'],
'status' => 202573,
'd_request' => date('Y-m-d'),
'contact' => $contactid
);
$json_post = json_encode($data_post);
$handle = curl_init();
curl_setopt($handle, CURLOPT_URL, $url);
curl_setopt($handle, CURLOPT_USERAGENT, "WireCRM Rest API");
curl_setopt($handle, CURLOPT_HTTPHEADER, $headers);
curl_setopt($handle, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($handle, CURLOPT_POSTFIELDS, $json_post);
curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
$answer = curl_exec($handle);
$json = json_decode($answer);
$orderid = $json->data;
curl_close($handle);
}
}
}

AddEventHandler('form', 'onBeforeResultAdd', 'my_onBeforeResultAdd');

?>
В WireCRM легко вести учет клиентов и продаж, работать с финансами и складом, создавать документы по шаблону. Первые 14 дней бесплатны для всех новых пользователей. Изучите возможности сервиса, ведите учет клиентов и пользуйтесь поддержкой наших специалистов!

Создать аккаунт