Техподдержка сайтов
+7 (904) 589-06-04
+7 (904) 589-06-04
s.golikov1
info@sng-it.ru
Сайт программиста 1С Битрикс
Сайт программиста
1C Битрикс
(создание и поддержка сайтов)
О себе
Услуги
  • Перевод сайта на https
  • Создание сайтов
  • Интеграция сайта с 1С
  • Выгрузка товаров в Яндекс.Маркет
  • Композитный сайт
  • Внутренняя оптимизация сайта
  • Доработка сайтов
  • Импорт каталога из файла поставщика
  • Перенос сайта на 1С Битрикс
  • Парсинг контента
  • Установка готового сайта
  • Купить лицензию 1С Битрикс
  • Битрикс 24
  • Настройка служб доставки
  • Интеграция с соцсетями
  • Заказ на Маркете
  • Сопровождение сайтов на 1С Битрикс
  • Поиск и удаление вирусов
  • Настройка платежных систем
  • Выгрузка товаров на Hotline
Портфолио
Готовые сайты
  • Недвижимость
  • Медицина
  • Ресторанный бизнес
  • Автомобили и автозапчасти
  • Бухгалтерские и юридические услуги
  • Государство
  • Детские товары
  • Красота и здоровье
  • Мебель, интерьер, декор
  • Образование
  • Одежда и обувь
  • Подарки и сувениры
  • Продукты питания
  • Спорт, туризм и отдых
  • Строительство, ремонт, инструменты
  • Товары для животных
  • ТСЖ, ЖСК
  • Украшения, аксессуары, подарки
  • Электроника и бытовая техника
  • Универсальные
  • Разное
1С Битрикс
  • Старт (6 200 ₽)
  • Стандарт (17 900 ₽)
  • Малый бизнес (40 900 ₽)
  • Бизнес (83 900 ₽)
  • Интернет-магазин + CRM (99 000 ₽)
  • Продление лицензии
  • Сравнить редакции
CRM
  • Битрикс24
Контакты
Ещё
    Сайт программиста 1С Битрикс
    Сайт программиста
    1C Битрикс
    О себе
    Услуги
    Портфолио
    Готовые сайты
    1С Битрикс
    CRM
    Контакты
    Сайт программиста 1С Битрикс
    Сайт программиста
    1C Битрикс
    • Главная
    • О себе
    • Услуги
      • Назад
      • Услуги
      • Перевод сайта на https
      • Создание сайтов
      • Интеграция сайта с 1С
      • Выгрузка товаров в Яндекс.Маркет
      • Композитный сайт
      • Внутренняя оптимизация сайта
      • Доработка сайтов
      • Импорт каталога из файла поставщика
      • Перенос сайта на 1С Битрикс
      • Парсинг контента
      • Установка готового сайта
      • Купить лицензию 1С Битрикс
      • Битрикс 24
      • Настройка служб доставки
      • Интеграция с соцсетями
      • Заказ на Маркете
      • Сопровождение сайтов на 1С Битрикс
      • Поиск и удаление вирусов
      • Настройка платежных систем
      • Выгрузка товаров на Hotline
    • Портфолио
    • Готовые сайты
      • Назад
      • Готовые сайты
      • Недвижимость
      • Медицина
      • Ресторанный бизнес
      • Автомобили и автозапчасти
      • Бухгалтерские и юридические услуги
      • Государство
      • Детские товары
      • Красота и здоровье
      • Мебель, интерьер, декор
      • Образование
      • Одежда и обувь
      • Подарки и сувениры
      • Продукты питания
      • Спорт, туризм и отдых
      • Строительство, ремонт, инструменты
      • Товары для животных
      • ТСЖ, ЖСК
      • Украшения, аксессуары, подарки
      • Электроника и бытовая техника
      • Универсальные
      • Разное
    • 1С Битрикс
      • Назад
      • 1С Битрикс
      • Старт (6 200 ₽)
      • Стандарт (17 900 ₽)
      • Малый бизнес (40 900 ₽)
      • Бизнес (83 900 ₽)
      • Интернет-магазин + CRM (99 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, вебхук, событие изменения статуса заказа, событие оплаты заказа, событие отмены заказа

    Поделиться:
    Назад к списку
    • Услуги
    • Услуги
    • Блог
    • Видеоуроки
    • Скидки на 1C Битрикс
    • Новости интернета
    • Сниппеты

    Аудит сайта

    © 2010-2023 Сайт битрикс программиста Семена Голикова.

    Отправляя любую форму на сайте, вы соглашаетесь с политикой конфиденциальности данного сайта.
    - карта сайта
    Главное
    Информация
    Помощь
    • О себе
    • Услуги
    • Готовые сайты
    • Портфолио
    • Купить лицензию 1С Битрикс
    • Битрикс24
    • Контакты
    • Акции
    • Видеоуроки
    • Блог
    • Новости интернета
    • Про интеграцию с 1С
    • Внутренняя оптимизация сайта
    • Сниппеты
    • Хостинг для битрикс
    • Партнерам
    • Отзывы
    • Техподдержка
    +7 (904) 589-06-04
    - позвонить в WhatsApp
    Социальные сети:
    - карта сайта © 2010-2023 Сайт битрикс программиста Семена Голикова.
    Отправляя любую форму на сайте, вы соглашаетесь с политикой конфиденциальности данного сайта.