<? use Bitrix\Main; Main\EventManager::getInstance()->addEventHandler( 'sale', 'OnSaleOrderBeforeSaved', 'orderAddRegion' ); function orderAddRegion(Main\Event $event) { //получаем заказ $order = $event->getParameter("ENTITY"); //получаем данные города по имени $res = \Bitrix\Sale\Location\LocationTable::getList(array( 'filter' => array( '=NAME.NAME_UPPER' => ToUpper($region_name), '=NAME.LANGUAGE_ID' => "ru" ), 'select' => array('ID', 'CODE') )); if($loc = $res->fetch()) $resultCity = $loc; //если заказ новый, находим свойство местоположения по коду и передаем ему значение if($event->getParameter("IS_NEW")){ \Bitrix\Main\Loader::includeModule('sale'); $propertyCollection = $order->getPropertyCollection(); foreach ($propertyCollection as $obProp) { $arProp = $obProp->getProperty(); if(in_array($arProp["CODE"], ["LOCATION"])) { $obProp->setValue($resultCity[CODE]); } } } }
Меняем местоположение в заказе по имени города
< 1 мин. чтения