Данный код помогает собрать все свойства заказа и затем передать в виде строки только те свойства которые заполненны.
AddEventHandler("sale", "OnOrderNewSendEmail", "bxModifySaleMails"); function bxModifySaleMails($orderID, &$eventName, &$arFields) { $arOrder = CSaleOrder::GetByID($orderID); $order_props = CSaleOrderPropsValue::GetOrderProps($orderID); $orderPropsFormat = ''; while ($arProps = $order_props->Fetch()) { if ($arProps['VALUE']) { if ($arProps['ORDER_PROPS_ID'] != 12) { $orderPropsFormat .= $arProps['NAME'].":".$arProps['VALUE'].""; } else { $orderPropsFormat .= $arProps['NAME'].":да"; } } } if ($arOrder = CSaleOrder::GetByID($orderID)) { if ($arPaySys = CSalePaySystem::GetByID($arOrder['PAY_SYSTEM_ID'])) { $orderPropsFormat .= "Способ оплаты:".$arPaySys["PSA_NAME"].""; } } $arFields["ALL_PROPS"] = $orderPropsFormat; }
Кроме свойств, также передается способ оплаты. Для свойства с ID = 12 значение выставляется в виде строки “да”.