Задать вопрос

Сохранение значения в свойство заказа через API?

Добрый день, подскажите почему может не работать сохранение пробовал так:

use Bitrix\Main; 
Main\EventManager::getInstance()->addEventHandler(
    'sale',
   'OnSaleOrderSaved',
   'myFunction'
);

function myFunction(Main\Event $event) {
   $order = $event->getParameter("ENTITY");
   $res = CSaleBasket::GetList(array(), array("ORDER_ID" => $order->getField("ID")));
   
   $items = array();
   
   while ($arItem = $res->Fetch()) { 
      $items .= $arItem['PRODUCT_XML_ID'].':'.$arItem['PRICE_TYPE_ID'].';';
   }
   
   $order->setField("PRICE_TYPE", $items);

   AddMessage2Log($items);

}


и так

use Bitrix\Main; 
Main\EventManager::getInstance()->addEventHandler(
    'sale',
   'OnSaleOrderSaved',
   'myFunction'
);

function myFunction(Main\Event $event) {
   $order = $event->getParameter("ENTITY");
   $res = CSaleBasket::GetList(array(), array("ORDER_ID" => $order->getField("ID")));
   
   $items = array();
   
   while ($arItem = $res->Fetch()) { 
      $items .= $arItem['PRICE_TYPE_ID'].';';
   }
   
    $propertyCollection = $order->getPropertyCollection();
        
    $propsData = [];

    foreach ($propertyCollection as $propertyItem) {
        if (!empty($propertyItem->getField("CODE"))) {
            $propsData[$propertyItem->getField("CODE")] = trim($propertyItem->getValue());
        }
    }

    foreach ($propertyCollection as $propertyItem) {

        switch ($propertyItem->getField("CODE")) {
            case 'PRICE_TYPE':
               AddMessage2Log('Условие сработало');
                $propertyItem->setField("VALUE", $items);
                break;
        }
    }
   
   AddMessage2Log($items);

}


Само событие выполняется, заказ создается но значения в нужное мне поле не заполняется.
  • Вопрос задан
  • 1270 просмотров
Подписаться 2 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
sabramovskikh
@sabramovskikh
OnSaleOrderSaved - когда заказ и все связанные сущности уже сохранены.
Вам нужно использоваться OnSaleOrderBeforeSaved
https://dev.1c-bitrix.ru/api_d7/bitrix/sale/events...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы