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

Add

Метод устарел. Используйте методы класса OrderBase.

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

int
CSaleOrderProps::Add(
	array arFields
);

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

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

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

Допустимые ключи:
  • PERSON_TYPE_ID - тип плательщика;
  • NAME - название свойства (тип плательщика зависит от сайта, а сайт - от языка; название должно быть на соответствующем языке);
  • TYPE - тип свойства. Допустимые значения:
    • CHECKBOX - флаг (Y\N);
    • TEXT - строка текста;
    • SELECT - выпадающий список значений;
    • MULTISELECT - список со множественным выбором;
    • TEXTAREA - многострочный текст;
    • LOCATION - местоположение;
    • RADIO - переключатель.
  • REQUIED - флаг (Y/N) обязательное ли поле;
  • DEFAULT_VALUE - значение по умолчанию;
  • SORT - индекс сортировки;
  • USER_PROPS - флаг (Y/N) входит ли это свойство в профиль покупателя;
  • IS_LOCATION - флаг (Y/N) использовать ли значение свойства как местоположение покупателя для расчёта стоимости доставки (только для свойств типа LOCATION);
  • PROPS_GROUP_ID - код группы свойств;
  • SIZE1 - ширина поля (размер по горизонтали);
  • SIZE2 - высота поля (размер по вертикали);
  • DESCRIPTION - описание свойства;
  • IS_EMAIL - флаг (Y/N) использовать ли значение свойства как E-Mail покупателя;
  • IS_PROFILE_NAME - флаг (Y/N) использовать ли значение свойства как название профиля покупателя;
  • IS_PAYER - флаг (Y/N) использовать ли значение свойства как имя плательщика;
  • IS_LOCATION4TAX - флаг (Y/N) использовать ли значение свойства как местоположение покупателя для расчёта налогов (только для свойств типа LOCATION);
  • CODE - символьный код свойства.
  • IS_FILTERED - свойство доступно в фильтре по заказам. С версии 10.0.
  • IS_ZIP - использовать как почтовый индекс. С версии 10.0.
  • UTIL - позволяет использовать свойство только в административной части. С версии 11.0.

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

Возвращается код добавленного свойства заказа.

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

<?
$arFields = array(
	"PERSON_TYPE_ID" => 2,
	"NAME" => "Комплектация",
	"TYPE" => "RADIO",
	"REQUIED" => "Y",
	"DEFAULT_VALUE" => "F",
	"SORT" => 100,
	"CODE" => "COMPLECT",
	"USER_PROPS" => "N",
	"IS_LOCATION" => "N",
	"IS_LOCATION4TAX" => "N",
	"PROPS_GROUP_ID" => 1,
	"SIZE1" => 0,
	"SIZE2" => 0,
	"DESCRIPTION" => "",
	"IS_EMAIL" => "N",
	"IS_PROFILE_NAME" => "N",
	"IS_PAYER" => "N"
);

// Если установлен код свойства, то изменяем свойство с этим кодом,
// иначе добавляем новой свойство
if ($ID>0)
{
	if (!CSaleOrderProps::Update($ID, $arFields))
	{
		echo "Ошибка изменения параметров свойства";
	}
	else
	{
		// Обновим символьный код у значений свойства
		// (хранение избыточных данных для оптимизации работы)
		$db_order_props_tmp =
			CSaleOrderPropsValue::GetList(($b="NAME"),
				($o="ASC"),
				Array("ORDER_PROPS_ID"=>$ID));
		while ($ar_order_props_tmp = $db_order_props_tmp->Fetch())
		{
			CSaleOrderPropsValue::Update($ar_order_props_tmp["ID"],
				array("CODE" => "COMPLECT"));
		}
	}
}
else
{
	$ID = CSaleOrderProps::Add($arFields);
	if ($ID<=0)
		echo "Ошибка добавления свойства";
}
?>

Добавить свойство типа Дата/время (а не просто Дата):

$obBitrixOrderProps = new \CSaleOrderProps();
$id = $obBitrixOrderProps->Add(
	[
		'CODE'            => 'RESERVE_EXPIRED_DATE',
		'NAME'            => 'Дата окончания резерва',
		'TYPE'            => 'DATE',
		'SETTINGS' => [
			'TIME' => 'Y', // Галочка "Время"
		],
		'PERSON_TYPE_ID'  => 1,
		'PROPS_GROUP_ID'  => 2,
		'REQUIED'         => 'N', // Да, тут опечатка в ядре битрикса
		'SORT'            => 600,
		'USER_PROPS'      => 'N',
		'IS_LOCATION'     => 'N',
		'DESCRIPTION'     => 'После этой даты при прочих условиях заказ будет автоматически отменён',
		'IS_EMAIL'        => 'N',
		'IS_PROFILE_NAME' => 'N',
		'IS_PAYER'        => 'N',
		'IS_LOCATION4TAX' => 'N',
		'IS_FILTERED'     => 'Y',
		'IS_ZIP'          => 'N',
		'UTIL'            => 'Y',
	]
);


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

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

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

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

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
© «Битрикс», 2001-2024, «1С-Битрикс», 2024
Наверх