Техподдержка сайтов
+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.deal.get, далее устанавливаем на сайте соответствующий статус заказа.

    
    
    require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
    CModule::IncludeModule("sale");
    
    function crmPostDeal($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; 
    }
    
    if($_REQUEST['auth']['application_token'] == '0o3i00000cb000q600000z0')    //проверка токена(у каждого свой)
    {	
    	$token = 'токен входящего вебхука';
    	$metod = "crm.deal.get";			
    	
    	$queryData = http_build_query(array(	
    		'id' =>  $_REQUEST["data"]["FIELDS"]["ID"]
    	));		
    	
    	$result = crmPostDeal($token, $metod, $queryData);	
    	$obj = json_decode($result);
    	
    	$STATUS_ID = "";
    	if($obj->result->STAGE_ID == "NEW")  //В обработке (принят)   
    	{
    		$STATUS_ID = "N";  //Принят
    	}
    	if($obj->result->STAGE_ID == "DETAILS") //Уточнение информации 
    	{		
    		$STATUS_ID = "R";		// В обработке
    	}	
    	if($obj->result->STAGE_ID == "3")  //Отказ от заказа
    	{		
    		$STATUS_ID = "Z";	//Отказ от заказа
    	}	
    	if($obj->result->STAGE_ID == "4")  //Самовывоз  
    	{		
    		$STATUS_ID = "E";	//Самовывоз  
    	}	
    	if($obj->result->STAGE_ID == "1")  // Отгружен     
    	{		
    		$STATUS_ID = "G";	// Отгружен     
    	}
    	if($obj->result->STAGE_ID == "WON")  // Завершение сделки
    	{		
    		$STATUS_ID = "F";	// Выполнен    
    	}	
    
    	//получаем по ID сделки			
    	$arFilter = array('PROPERTY_VAL_BY_CODE_DEALCRM' => $_REQUEST["data"]["FIELDS"]["ID"]);
    	$rsOrders = CSaleOrder::GetList(array('ID' => 'DESC'), $arFilter, array('ID',"STATUS_ID"));
    	if ($arSales = $rsOrders->GetNext())
    	{	
    		if($STATUS_ID && ($STATUS_ID != $arSales[STATUS_ID]))
    		{
    			CSaleOrder::StatusOrder($arSales['ID'], $STATUS_ID);
    			file_put_contents($_SERVER["DOCUMENT_ROOT"]."/log_dealUpdateFromCrm.txt", 
    				date('d m o, H:i:s') ." ".serialize($arSales). ' STATUS_ID = ' .$STATUS_ID. PHP_EOL,
    				FILE_APPEND
    			);			
    		}		
    		if($STATUS_ID == "Z") // Отказ от заказа
    		{			
                $orderToChange = \Bitrix\Sale\Order::load($arSales["ID"]);
                $orderToChange->setField("CANCELED","Y");
                $orderToChange->save();		
    		}
    		elseif($arSales[STATUS_ID] == "Z")
    		{
                $orderToChange = \Bitrix\Sale\Order::load($arSales["ID"]);
                $orderToChange->setField("CANCELED","N");
                $orderToChange->save();			
    		}	
    	}	
    }
    
    

    Теги: crm.deal.get, Битрикс24, вебхук

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

    Аудит сайта

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

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