В некоторых случаях возникает необходимость записать какое-либо значение из заказа в свойство (заказа).
Для примера приведен код получения значения поля “Промокод” и запись его в отдельное свойство заказа “PROMOKOD” для дальнейшей выборки заказов и аналитики.
Код необходимо разместить в файле инициализации обработчиков событий init.php. Обработчик в примере “вешается” на событие сохранения заказа.
$eventManager->AddEventHandler('sale', 'OnSaleOrderBeforeSaved', 'saleOrderAddPromocode');
function saleOrderAddPromocode($event) {
$order = $event->getParameter("ENTITY");
$coupons = $order->getDiscount()->getApplyResult()["COUPON_LIST"];
$propertyCollection = $order->getPropertyCollection();
foreach ($propertyCollection as $propertyItem) {
switch ($propertyItem->getField("CODE")) {
case 'PROMOKOD':
foreach($coupons as $coupon_key=>$coupon_val) {
$propertyItem->setField("VALUE", $coupon_val['COUPON']);
}
break;
}
}
}