В работе с Битрикс иногда возникает необходимость получить название свойства заказа, когда приходит только его код (например, в почтовых событиях). Это особенно актуально для свойств типа "Список" ("Перечисление").
Для решения этой задачи используется метод CSaleOrderPropsVariant::GetByValue(), который принимает два параметра:
-
ID свойства
-
Код значения из списка
Практический пример
Рассмотрим пример использования в обработчике почтового события:
AddEventHandler("sale", "OnOrderNewSendEmail", "PropsToMailAdder");
function PropsToMailAdder($ID, &$eventName, &$arFields)
{
if($eventName === "SALE_NEW_ORDER")
{
// Добавляем телефон
$arFields["PHONE"] = strip_tags($_REQUEST["ORDER_PROP_9"]);
$OTHER = '';
if ($_REQUEST["ORDER_PROP_12"] == 'SM') {
$var1 = CSaleOrderPropsVariant::GetByValue(11, $_REQUEST["ORDER_PROP_11"]);
$OTHER .= "Склад - ".$var1['NAME']."\n";
}
// Дополнительная обработка...
}
}Ключевые моменты:
-
Метод
CSaleOrderPropsVariant::GetByValue(11, $_REQUEST["ORDER_PROP_11"]где:-
11- ID свойства заказа -
$_REQUEST["ORDER_PROP_11"]- код значения из списка перечислений
-
-
В результате получаем массив, где элемент
'NAME'содержит название значения свойства
Этот метод можно использовать в любом месте, где вам доступен код значения свойства типа "Список". Он особенно полезен при обработке заказов и работе с почтовыми событиями в Битрикс.