Добрый день, помогите разобраться в проблеме.
Задача - заполнить доп.поля в заказе, которые не являются дефолтными, данными из свойств товара. Создал 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);
}
|
Проблема в том, что при изменении и сохранении уже созданного заказа в админке поля заполняются, а если заказ создается новый покупателем на сайте, то не срабатывает. Что я делаю не так?