Документация для разработчиков
Темная тема

Add

Описание и параметры

int
CSaleOrderPropsValue::Add(
  array arFields
);

Метод добавляет новое значение свойства к заказу на основании параметров arFields. Нестатический метод.

Внимание! для добавления свойств к заказу лучше использовать методы нового ядра D7.

Параметры вызова

ПараметрОписание
arFields Ассоциативный массив параметров значения свойства, ключами в котором являются названия параметров значения свойства, а значениями - соответствующие значения.

Допустимые ключи:
  • ORDER_ID - идентификатор заказа (обязательное);
  • ORDER_PROPS_ID - идентификатор свойства (обязательное);
  • NAME - название свойства (обязательное);
  • VALUE - значение свойства;
  • CODE - символьный код свойства.

Возвращаемые значения

Метод возвращает код добавленного значения свойства или false в случае ошибки.

Примеры использования

<?
$arFields = array(
   "ORDER_ID" => 124859,
   "ORDER_PROPS_ID" => 15,
   "NAME" => "Адрес доставки",
   "CODE" => "ADDRESS",
   "VALUE" => "ул. Строителей, дом 88, кв. 15"
);

CSaleOrderPropsValue::Add($arFields);
?>
//метод класса, который добавляет свойство (код/значение) к заказу, динамически узнавая идентификатор свойства: 
 public static function AddOrderProperty($code, $value, $order) {
      if (!strlen($code)) {
         return false;
      }
      if (CModule::IncludeModule('sale')) {
         if ($arProp = CSaleOrderProps::GetList(array(), array('CODE' => $code))->Fetch()) {
            return CSaleOrderPropsValue::Add(array(
               'NAME' => $arProp['NAME'],
               'CODE' => $arProp['CODE'],
               'ORDER_PROPS_ID' => $arProp['ID'],
               'ORDER_ID' => $order,
               'VALUE' => $value,
            ));
         }
      }
   }


Пользовательские комментарии

Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.

Для этого нужно всего лишь авторизоваться на сайте

Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
0
Сергей Петров
Код
 function AddOrderProperty($code, $value, $order, $person = 1)
    {
        if (!strlen($code))
        {
            return false;
        }
  
        if (CModule::IncludeModule("sale"))
        {
       
            if ($arProp = CSaleOrderProps::GetList(array(), array("CODE" => $code, "PERSON_TYPE_ID" => $person))->Fetch())
            {

                if ($arOrderProps = CSaleOrderProps::GetByID($arProp["ID"])) {
            $db_vals = CSaleOrderPropsValue::GetList(array(), array('ORDER_ID' => $order, 'ORDER_PROPS_ID' => $arOrderProps['ID']));
            if ($arVals = $db_vals->Fetch()) {
                return CSaleOrderPropsValue::Update($arVals['ID'], array(
                    'NAME' => $arVals['NAME'],
                    'CODE' => $arVals['CODE'],
                    'ORDER_PROPS_ID' => $arVals['ORDER_PROPS_ID'],
                    'ORDER_ID' => $arVals['ORDER_ID'],
                    'VALUE' => $value,
                ));
            } else {
                return CSaleOrderPropsValue::Add(array(
                    'NAME' => $arOrderProps['NAME'],
                    'CODE' => $arOrderProps['CODE'],
                    'ORDER_PROPS_ID' => $arOrderProps['ID'],
                    'ORDER_ID' => $order,
                    'VALUE' => $value,
                ));
            }
        }

            }
        }
    }
© «Битрикс», 2001-2023, «1С-Битрикс», 2023
Наверх