Интеграция битрикс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
-
5799 264 0 Добрый день, готов взяться за интеграцию, логика понятна, делал уже такое
Добрый день, готов взяться за интеграцию, логика понятна, делал уже такое
-
4182 198 2 5 Доброго дня. Неодноразово реалізовував таку штуку. Якщо швидко виберете мене виконаю сьогодні, або завтра після 20:00
Актуальные фриланс-проекты в категории Веб-программирование
Настроить отправку данных из popup-форм WordPress-сайта на Make webhookНужно настроить отправку данных из форм сайта на WordPress на готовый Make webhook. Формы на сайте открываются в popup/modal окне. После успешной отправки формы данные должны уходить POST-запросом на webhook Make в JSON-формате. Webhook и полное ТЗ передадим выбранному… CMS, Веб-программирование ∙ 49 минут назад ∙ 33 ставки |
Проблема с онлайн оплатой liqpay
1000 UAH
Всем привет, у меня проблема с оплатой liqpay, клиент платит, а заказ не появляется, использовал стандартный модуль, потом купил модуль на opencartforum Liqpay API Opencart - онлайн оплата для Opencart 3, и пробовал настроить с разработчиком модуля, оказалось, проблема не на… Веб-программирование ∙ 1 час 3 минуты назад ∙ 21 ставка |
Техническая поддержка веб-платформы (Python/Django)Есть работающий веб-проект, нужно поддерживать и постепенно приводить в порядок, без переписывания с нуля. Стек проекта: Backend: Python, Django, Django Rest Framework Frontend: Next.js База данных: PostgreSQL Инфраструктура: AWS (EC2), Nginx Есть интеграции с внешними API… Python, Веб-программирование ∙ 12 часов 58 минут назад ∙ 48 ставок |
Посадка HTML в WordPressТЗ: перенос HTML в WordPress https://bikeinbali.com/new Сделать кастомную WordPress classic theme на базе готовых HTML-макетов.Не использовать: Elementor WPBakery тяжёлые page builder themes Единые элементыСделать глобальные: header.php ( Header/footer должны быть… Веб-программирование, Создание сайта под ключ ∙ 17 часов 38 минут назад ∙ 72 ставки |
Доработка сайта на Ocstore 3
700 UAH
Ocstore 3 Шаблон Upstore Поправить некоторые моменты https://docs.google.com/document/d/1-TmTo3lh_ElFjPMQCGs2sVCsVSzq-V-Z/edit?usp=sharing&ouid=105344407605205919725&rtpof=true&sd=true Ожидаю ваши предложения PHP, Веб-программирование ∙ 18 часов 35 минут назад ∙ 59 ставок |