Интеграция битрикс24 с сайтом через АРІ
500 UAHВ административной панеле сайта имеем 2 формы обратной связи, в настройках которых необходимо написать код, поторый будет запрашивать и передавать данные в CRM Битрикс24
необходимая логика работы:
код запускается в момент оправки формы, необходимо:
1) запросить данные из Битрикс24, таблицы "Контактов", есть ли запись в таблице с таким номером телефона. Если запись есть - получить ID записи (ID контакта), если записи нет - создать новую запись в таблице (записать номер телефона PHONE, имя (если есть) NAME и получить ее ID
2) создать новую запись в таблице сделок, в сделке указать ID контакта (CONTACT_ID), в поле комментария указать всю возможную дополнительную информацию о заявке COMMENTS (дата, время, название формы обратной связи, адрес сайта, урл страницы)
Пример:
<?php
class Sync
{
private $link = 'https://crm.zvilnymo.com/rest/15/pf8v49ci8lrnc9lm/';
private $assigned = 11;
private $source = 2;
public function checkContact($data)
{
$contactID = $this->findContact($data);
if ($contactID == 0) {
$contactID = $this->createContact($data);
}
return $contactID;
}
public function createDeal($data)
{
$DealFieldsToSend['FIELDS'] = [
"TITLE" => $data['dealTitle'],
"STAGE_ID" => 'zvilnymo.amocrm.com_28435531',
"CONTACT_ID" => $data['contactID'],
"CATEGORY_ID" => 0,
"OPENED" => "Y",
"ASSIGNED_BY_ID" => $this->assigned,
"SOURCE_ID" => $this->source,
"COMMENTS" => $data['comment'],
];
$dealID = $this->requestToCRM($DealFieldsToSend, 'crm.deal.add');
return $dealID['result'];
}
private function findContact ($data)
{
if (!empty($data['client-telephone'])) {
$dataToSearch = [
'FILTER' => ['PHONE' => $data['client-telephone']],
'SELECT' => ['ID', 'ORIGIN_ID', 'PHONE', 'EMAIL']];
$searchResult = $this->requestToCRM($dataToSearch, 'crm.contact.list');
if ( count( $searchResult['result'] ) > 0 ) {
return $searchResult['result'][0]['ID'];
}
}
if (!empty($data['client-email'])) {
$dataToSearch = [
'FILTER' => ['EMAIL' => $data['client-email']],
'SELECT' => ['ID', 'ORIGIN_ID', 'PHONE', 'EMAIL']];
$searchResult = $this->requestToCRM($dataToSearch, 'crm.contact.list');
if ( count( $searchResult['result'] ) > 0 ) {
return $searchResult['result'][0]['ID'];
}
}
return 0;
}
private function createContact ($data)
{
$fieldsToSend['FIELDS'] = [
'SOURCE_ID' => $this->source,
'NAME' => $data['client-name'],
'LAST_NAME' => '',
"ASSIGNED_BY_ID" => $this->assigned,
];
if (isset($data['client-telephone'])) {
$fieldsToSend['FIELDS']['PHONE'] = [
["VALUE" => $data['client-telephone'], "VALUE_TYPE" => 'WORK' ],
];
}
if (isset($data['client-email'])) {
$fieldsToSend['FIELDS']['EMAIL'] = [
["VALUE" => $data['client-email'], "VALUE_TYPE" => 'WORK' ],
];
}
$CRMContactID = $this->requestToCRM($fieldsToSend, 'crm.contact.add');
return $CRMContactID['result'];
}
function requestToCRM ($data, $method)
{
$queryUrl = $this->link.$method.'.json';
$queryData = http_build_query($data);
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_SSL_VERIFYPEER => 0,
CURLOPT_POST => 1,
CURLOPT_HEADER => 0,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_URL => $queryUrl,
CURLOPT_POSTFIELDS => $queryData,
]);
$result = curl_exec($curl);
curl_close($curl);
$result = json_decode($result, 1);
return $result;
}
}
Додатки 3
-
5769 264 0 Добрый день, готов взяться за интеграцию, логика понятна, делал уже такое
Добрый день, готов взяться за интеграцию, логика понятна, делал уже такое
-
4182 198 2 5 Доброго дня. Неодноразово реалізовував таку штуку. Якщо швидко виберете мене виконаю сьогодні, або завтра після 20:00
Актуальні фриланс-проєкти в категорії Веб-програмування
Розробка WebGL/Three.js сцени з генерацією та експортом 3D (снапшот) з анімованого шейдераОпис об'єкта:Проект являє собою дизайнерський стіл, виконаний у формі реалістичного, глибокого водовороту (центральна воронка, яка плавно переходить з широкої горизонтальної стільниці в тонку витончену ніжку). Суть задачі:Потрібен WebGL / Creative Coding розробник для створення… Javascript та Typescript, Веб-програмування ∙ 6 годин 38 хвилин тому ∙ 15 ставок |
Зробити сайт на WP , без конструктора
16 000 UAH
Треба зробити каталог ( скоріше за все без корзини ) тільки форма заявки на товару без використання елементора та інших має бути головна сторінка , сторінка товару , каталог , каталого постачальників , та можливо ще декілька інші дизайн і стилістика типу такого… Веб-програмування ∙ 6 годин 45 хвилин тому ∙ 68 ставок |
Shopify-розробник для сайту доставки суші (Польща)Шукаємо досвідченого Shopify-розробника для реалізації сайту доставки їжі (суші) для клієнта з м. Катовіце, Польща. Що потрібно зробити: Налаштувати сайт на готовому шаблоні Shopify (шаблон узгоджується) Меню з фотографіями страв і описами Онлайн-оформлення замовлень Підключення… Веб-програмування ∙ 8 годин 9 хвилин тому ∙ 31 ставка |
Webflow розробник для заповнення сторінок портфоліо на сайтіЄ сайт розроблений кастомно на вебфлоу для будівельної компанії, потрібно швидко заповнити сторінки проектів за одним шаблоном (замінити картинки і тексти) Для 2 мов Кількість - 6 штук Готові починати asap, дякую! HTML та CSS верстання, Веб-програмування ∙ 1 день тому ∙ 37 ставок |
Адміністратор-налаштувальник LearnWorldsЗадача Настроїти готову платформу LearnWorlds під елітний онлайн-курс. Не розробляти архітектуру — реалізувати вже готову структуру руками в адмін-панелі. ———————— Що потрібно зробити: Брендинг ⦁ Підключити свій домен ⦁ Завантажити логотип, налаштувати фірмові кольори ⦁… CMS, Веб-програмування ∙ 1 день 3 години тому ∙ 9 ставок |