Техподдержка сайтов
+7 (904) 589-06-04
+7 (904) 589-06-04
telegram @sng24
MAX
info@sng-it.ru
ПРОГРАММИСТ 1С-БИТРИКС
ПРОГРАММИСТ 1С-БИТРИКС
разработка · доработка · техподдержка
  • О себе
  • Услуги
    Обновление сайтов на 1С-БитриксPHP 8.2+, MySQL 8, ядро и модули›Поиск и удаление вирусовПроверка, очистка и защита сайта›Создание сайтовРазработка сайтов под задачи бизнеса›Интеграция сайта с 1СОбмен товарами, остатками и заказами›Композитный сайт›Внутренняя оптимизация сайтаТехническое SEO и оптимизация›Доработка сайтовНовые функции, интеграции, нестандартные решения›Импорт каталога из файла поставщикаИмпорт и обновление товарных данных›Перенос сайта на 1С БитриксМиграция сайта на 1С-Битрикс›Парсинг контентаСбор и импорт данных›Установка готового сайтаУстановка и настройка готового решения›Купить лицензию 1С Битрикс›Битрикс 24CRM и автоматизация бизнеса›Выгрузка товаров в Яндекс.Маркет›Настройка служб доставкиИнтеграция служб доставки›Интеграция с соцсетями›Заказ на Маркете›Перевод сайта на https›Сопровождение сайтов на 1С БитриксОбслуживание и развитие сайтов›Настройка платежных системПодключение и настройка оплаты›
    Все услуги →
  • Портфолио
  • Готовые сайты
    Недвижимость›Медицина›Ресторанный бизнес›Автомобили и автозапчасти›Бухгалтерские и юридические услуги›Государство›Детские товары›Красота и здоровье›Мебель, интерьер, декор›Образование›Одежда и обувь›Подарки и сувениры›Продукты питания›Спорт, туризм и отдых›Строительство, ремонт, инструменты›Товары для животных›ТСЖ, ЖСК›Украшения, аксессуары, подарки›Электроника и бытовая техника›Универсальные›
    Все готовые сайты →
  • 1С Битрикс
    Старт (7 100 ₽)›Стандарт (20 500 ₽)›Малый бизнес (47 000 ₽)›Бизнес (96 500 ₽)›Интернет-магазин + CRM (109 000 ₽)›Продление лицензии›Сравнить редакции›
  • CRM
  • Контакты
ПРОГРАММИСТ 1С-БИТРИКС
ПРОГРАММИСТ 1С-БИТРИКС
О себе
Услуги
Портфолио
Готовые сайты
1С Битрикс
CRM
Контакты
ПРОГРАММИСТ 1С-БИТРИКС
ПРОГРАММИСТ
1С-БИТРИКС
  • Главная
  • О себе
  • Услуги
    • Назад
    • Услуги
    • Обновление сайтов на 1С-Битрикс
    • Поиск и удаление вирусов
    • Создание сайтов
    • Интеграция сайта с 1С
    • Композитный сайт
    • Внутренняя оптимизация сайта
    • Доработка сайтов
    • Импорт каталога из файла поставщика
    • Перенос сайта на 1С Битрикс
    • Парсинг контента
    • Установка готового сайта
    • Купить лицензию 1С Битрикс
    • Битрикс 24
    • Выгрузка товаров в Яндекс.Маркет
    • Настройка служб доставки
    • Интеграция с соцсетями
    • Заказ на Маркете
    • Перевод сайта на https
    • Сопровождение сайтов на 1С Битрикс
    • Настройка платежных систем
  • Портфолио
  • Готовые сайты
    • Назад
    • Готовые сайты
    • Недвижимость
    • Медицина
    • Ресторанный бизнес
    • Автомобили и автозапчасти
    • Бухгалтерские и юридические услуги
    • Государство
    • Детские товары
    • Красота и здоровье
    • Мебель, интерьер, декор
    • Образование
    • Одежда и обувь
    • Подарки и сувениры
    • Продукты питания
    • Спорт, туризм и отдых
    • Строительство, ремонт, инструменты
    • Товары для животных
    • ТСЖ, ЖСК
    • Украшения, аксессуары, подарки
    • Электроника и бытовая техника
    • Универсальные
    • Разное
  • 1С Битрикс
    • Назад
    • 1С Битрикс
    • Старт (7 100 ₽)
    • Стандарт (20 500 ₽)
    • Малый бизнес (47 000 ₽)
    • Бизнес (96 500 ₽)
    • Интернет-магазин + CRM (109 000 ₽)
    • Продление лицензии
    • Сравнить редакции
  • CRM
  • Контакты
  • Личный кабинет
  • +7 (904) 589-06-04
Будьте на связи
info@sng-it.ru
  • Вконтакте
  • YouTube

События изменения заказа для вебхуков в Битрикс24

  • Главная
  • ❶ Сниппеты
  • ❷ События изменения заказа для вебхуков в Битрикс24

События при изменении статуса заказа, оплаты заказа, отмены заказа. Создают вебхук в Битрикс24 для установки соответствующих стадий сделок в CRM.


function fn_Post2crm($token, $metod, $queryData){
	$queryUrl = 'https://[ваше_название].bitrix24.ru/rest/[идентификатор_пользователя]/'.$token.'/'.$metod;
	
	// обращаемся к Битрикс24 при помощи функции curl_exec
	$curl = curl_init();
	curl_setopt_array($curl, array(
	    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);	
	return $result;		
}

// Изменение статуса заказа
AddEventHandler("sale", 'OnSaleStatusOrder', 'changeStatus');
function changeStatus($order_id, $status) {
    
	   $db_props = CSaleOrderPropsValue::GetList(array(), array("ORDER_ID" => $order_id, "ORDER_PROPS_ID"=>10) );
       if ($arProps = $db_props->Fetch()) 
	   {
			$STATUS_ID = false;	
			if($status == "R") $STATUS_ID = "DETAILS";		
			if($status == "N") $STATUS_ID = "NEW";
			if($status == "Z") $STATUS_ID = "3";
			if($status == "E") $STATUS_ID = "4";
			if($status == "G") $STATUS_ID = "1";
			if($status == "F"){
				$STATUS_ID = "WON";			
				// Проверим, если заказ оплачен и статус выполнен, в CRM устанавливаем этап сделки Заказ оплачен
				$db_sales = CSaleOrder::GetList(array("DATE_INSERT" => "ASC"), Array("ID" => $order_id));
				if ($ar_sales = $db_sales->Fetch())
				{
					if($ar_sales[PAYED] == "Y")
					{
						$STATUS_ID = "2";	
					}
				} 
			}
			
			if($STATUS_ID)
			{		
				$token = 'токен входящего вебхука';
				$metod = "crm.deal.update";				
				$queryData = http_build_query(array(	
					'id' =>  $arProps[VALUE],
					'fields' => array(
						"STAGE_ID" => $STATUS_ID, 
					),
					'params' => array("")
				));		
				$r = fn_Post2crm($token, $metod, $queryData);

				file_put_contents($_SERVER["DOCUMENT_ROOT"]."/log_changeStatus.txt", 
					date('d m o, H:i:s') ." DEAL_ID = ".$arProps[VALUE]. ' ORDER_ID =  '.$order_id. ' -  '.$status.' '." STAGE_ID =". $STATUS_ID ." ".serialize($r). PHP_EOL,
					FILE_APPEND
				);				
			}		
		}				
}


// Изменение статуса заказа
AddEventHandler("sale", 'OnSalePayOrder', 'changePayOrder');
function changePayOrder($order_id, $val) 
{
	   $db_props = CSaleOrderPropsValue::GetList(array(), array("ORDER_ID" => $order_id, "ORDER_PROPS_ID"=>10) );
       if ($arProps = $db_props->Fetch()) 
	   {	
			$STATUS_ID = false;	
			
			if($val == "Y")
			{		
				$STATUS_ID = "2"; // стадия сделки - Заказ оплачен
			}
			elseif($val == "N")
			{
				$STATUS_ID = "NEW";
			}	
			if($STATUS_ID != false)
			{
				$token = 'токен входящего вебхука';
				$metod = "crm.deal.update";				
				$queryData = http_build_query(array(	
					'id' =>  $arProps[VALUE],
					'fields' => array(
						"STAGE_ID" => $STATUS_ID, 
					),
					'params' => array("")
				));		
				$r = fn_Post2crm($token, $metod, $queryData);
	
				file_put_contents($_SERVER["DOCUMENT_ROOT"]."/log_changePayOrder.txt", 
					date('d m o, H:i:s') ." DEAL_ID = ".$arProps[VALUE]. ' ORDER_ID =  '.$order_id. ' -  '.$status.' '." STAGE_ID =". $STATUS_ID ." ".serialize($r). PHP_EOL,
					FILE_APPEND
				);				
			}		
		}
}

// Отмена заказа на сайте

AddEventHandler("sale", 'OnSaleCancelOrder', 'changeCancelOrder');
function changeCancelOrder($order_id, $value, $description) 
{

	   $db_props = CSaleOrderPropsValue::GetList(array(), array("ORDER_ID" => $order_id, "ORDER_PROPS_ID"=>10) );
       if ($arProps = $db_props->Fetch()) 
	   {	
			$STATUS_ID = false;	
			
			if($value == "Y")
			{		
				$STATUS_ID = "3"; // стадия сделки - Отказ от заказа
			}
			elseif($value == "N")
			{
				$STATUS_ID = "NEW";
			}	
			
			if($STATUS_ID != false)
			{
				$text = '';
				if(strlen($description)>0) $text = "Причина отмены заказа: ".$description;			
				
				$token = 'токен входящего вебхука';
				$metod = "crm.deal.update";				
				$queryData = http_build_query(array(	
					'id' =>  $arProps[VALUE],
					'fields' => array(
						"STAGE_ID" => $STATUS_ID, 
						"UF_CRM_10000000000" => $text." ".$STATUS_ID	
					),
					'params' => array("")
				));	
				
				$r = fn_Post2crm($token, $metod, $queryData);
			
			}		
		}
}

Теги: crm.deal.update, Битрикс24, вебхук, событие изменения статуса заказа, событие оплаты заказа, событие отмены заказа

13.03.2020

Поделиться:
Назад к списку
  • Услуги
  • Обновление сайтов на 1С-Битрикс
  • Поиск и удаление вирусов
  • Интеграция сайта с 1С
  • Создание сайтов
  • Композитный сайт
  • Внутренняя оптимизация сайта
    • Доработка сайтов
    • Импорт каталога из файла поставщика
    • Парсинг контента
    • Перенос сайта на 1С Битрикс
    • Установка готового сайта
    • Купить лицензию 1С Битрикс
      • Битрикс 24
        • Выгрузка товаров в Яндекс.Маркет
        • Заказ на Маркете
        • Интеграция с соцсетями
        • Настройка служб доставки
        • Перевод сайта на https
        • Сопровождение сайтов на 1С Битрикс
        • Настройка платежных систем
        Аудит сайта
        Записаться на техподдержку

        Программист 1С-Битрикс — Семён Голиков
        Программист 1С-Битрикс
        разработка · доработка · техподдержка
        Работаю с 1С-Битрикс с 2010 года
        Есть задача по 1С-Битрикс?
        Выберите удобное время в календаре техподдержки.
        Выбрать времяНаписать в Telegram
        Услуги
        Доработка сайтовСопровождение сайтовОбновление 1С-БитриксПоиск и удаление вирусовИнтеграция с 1СХостинг для битрикса
        Проекты и продукты
        ПортфолиоГотовые сайтыЛицензии 1С-БитриксБитрикс24Отзывы
        Материалы
        БлогСниппетыВидеоурокиОптимизация сайтаАкции
        Связаться со мной
        +7 (904) 589-06-04Позвонитьinfo@sng-it.ruНаписать на e-mail
        Telegram M MAX
        Обычно отвечаю в течение дня
        © 2010-2026 Семён Голиков · программист 1С-Битрикс
        Политика конфиденциальностиОбработка персональных данныхКарта сайта
        VK
        Спасибо за заявку!
        Мы свяжемся с Вами в ближайшее
        время и ответим на все вопросы.
        Заполните форму и отправьте
        заявку на консультацию!