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

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