Добрый день.
Добавляю в свойство товара при заказе свои свойства.
Свойства беру из другого инфоблока.
Свойства добавляю по событию OnBeforeBasketAdd
Что я хочу сделать.
Получить все элементы инфоблока со свойствами и проверять, заполнены они при отправке или нет.
Почему не работает такой код?
<?
use Bitrix\Main\Context;
if (!CModule::IncludeModule('iblock')) return;
AddEventHandler(
"sale",
"OnBeforeBasketAdd",
'addProperty'
);
function addProperty(&$arFields) {
$request = Context::getCurrent()->getRequest();
// Выбираем опции
$arOrder = Array(
"SORT"=>"ASC"
);
$arSelect = Array(
"ID",
"IBLOCK_ID",
"CODE",
"NAME",
"PROPERTY_OPTION_TYPE",
);
$arFilter = Array(
"IBLOCK_ID" => '2',
);
$res = CIBlockElement::GetList(
$arOrder,
$arFilter,
false,
false,
$arSelect
);
while( $ob = $res->GetNextElement() ) {
$arFields[] = $ob->GetFields();
}
$arOptionsAddToBasket['OPTIONS'] = $arFields;
// Заполняем опции
foreach ( $arOptionsAddToBasket['OPTIONS'] as $value ) {
$arFields['PROPS'][$value['CODE']] = [
'CODE' => $value['CODE'],
'ID' => '',
'VALUE' => '1',
'SORT' => '',
'NAME' => $value['NAME'],
];
}
}
?>