Обучаю битриксу программистов, интеграторов. Подробнee ⇒

Обработчик, которые подтягивает поля из заказа в сделку



Режим работы с заказами больше не поддерживается в Битрикс24. https://helpdesk.bitrix24.ru/open/13632830/
Одни сделки. Но в сделке нет данных из свойств заказа.
Обработчик, который подтягивает некоторые данные в сделку из заказа
use Bitrix\Main; 
use \Bitrix\Main\Loader;
use Bitrix\Sale,
    Bitrix\Sale\Order;

define("LOG_FILENAME", $_SERVER["DOCUMENT_ROOT"]."/bitrix/php_interface/log.txt");
AddEventHandler("crm", "OnAfterCrmDealAdd", "MyOnAfterCrmDealAdd1");
function MyOnAfterCrmDealAdd1(&$arFields){
    
       if(!empty($arFields["ORDER_ID"]) && Bitrix\Main\Loader::includeModule("sale")){
            $order = \Bitrix\Sale\Order::load($arFields["ORDER_ID"]);

            if(!empty($order)){
                $arFieldsNew = [];
                if(!empty($order->getField('USER_DESCRIPTION'))){
                    $arFieldsNew["UF_CRM_1670177757319"] = $order->getField('USER_DESCRIPTION'); //комментарии пользователя 
                }
                $propertyCollection = $order->getPropertyCollection();
                $property = $propertyCollection->getItemByOrderPropertyId(1);//ФИО
                if(!empty($property)){
                    $arFieldsNew["UF_CRM_1670177559737"] = $property->getValue();
                }
                $property = $propertyCollection->getItemByOrderPropertyId(3);//телефон
                if(!empty($property)){
                    $arFieldsNew["UF_CRM_1670177697535"] = $property->getValue();
                }
                $property = $propertyCollection->getItemByOrderPropertyId(28);//адрес
                if(!empty($property)){
                    $arFieldsNew["UF_CRM_1670177713040"] = $property->getValue();
                }
                $property = $propertyCollection->getItemByOrderPropertyId(67);//дом кв
                if(!empty($property)){
                    $arFieldsNew["UF_CRM_1670177729839"] = $property->getValue();
                }                
                if(!empty($arFieldsNew)){
                    $deal  =  new  \CCrmDeal( false );
                    $arOptions = array("CURRENT_USER"=> 1); //из под кого обновляем                     
                    //сначала заполняем поля
                    $upRes = $deal->Update($arFields["ID"], $arFieldsNew, true, true, $arOptions);                   
                }              

                
            }
           
       }
       
    
}
Если блог был полезным, можете угостить меня "чашечкой кофе" :)

Сбер по номеру телефона +7 (953) 585-13-09 Вероника.
Спасибо!