Добрый день, помогите разобраться в проблеме.
Задача - заполнить доп.поля в заказе, которые не являются дефолтными, данными из свойств товара. Создал 2 поля, пометил как "Служебные".
В init.php следующий код
Получаю заказ, список товаров из него, вытаскиваю необходимые свойства, и заполняю значения доп.полей.
Проблема в том, что при изменении и сохранении уже созданного заказа в админке поля заполняются, а если заказ создается новый покупателем на сайте, то не срабатывает. Что я делаю не так?
Задача - заполнить доп.поля в заказе, которые не являются дефолтными, данными из свойств товара. Создал 2 поля, пометил как "Служебные".
В init.php следующий код
Код |
---|
use Bitrix\Main; $manager = Main\EventManager::getInstance(); $manager->addEventHandler('sale','OnSaleOrderBeforeSaved','OnSaleOrderBeforeSavedHandler'); function OnSaleOrderBeforeSavedHandler(Main\Event $event) { $order = $event->getParameter("ENTITY"); $properties = $order->getPropertyCollection(); $order_id = $order->getId(); $curOrderItems = CSaleBasket::GetList(array(), array("ORDER_ID" => $order_id), false, false, array()); while ($arItems = $curOrderItems->Fetch()) { $orderItems[] = $arItems[PRODUCT_ID]; } foreach ($orderItems as $item) { $item_props = CIBlockElement::GetProperty(11, $item, array("sort" => "asc"), Array("CODE"=>"SKU_proizvoditel")); while($ar_props = $item_props ->Fetch()) { $proizvoditel[] = $ar_props['VALUE']; } } $proizvoditel = implode("; ", $proizvoditel); $PropValue = $properties->getItemByOrderPropertyId(37); $PropValue->setValue($proizvoditel); } |
Проблема в том, что при изменении и сохранении уже созданного заказа в админке поля заполняются, а если заказ создается новый покупателем на сайте, то не срабатывает. Что я делаю не так?