Добавление заказа со свойствами используя API Битркса

UPD: в скрипте используются старые методы работы с заказами, для тех у кого Битрикс новых редакций рекомендую в работе с заказами использовать D7!

Всем привет!

На одном из проектов необходимо было реализовать добавление заказов в БД используя API Битрикса.

Для этого решил использовались метод CSaleOrder::DoSaveOrder , не описанный пока в официальной документации битрикса, в связи с чем возникли некоторые сложности.

А именно, не было понятно, как без дополнительных методов CSaleOrderPropsValue::Add сразу же добавлять в заказ все дополнительные свойства.

Путем проб и ошибок, а также изучив исходники метода понял, что при формировании массива для DoSaveOrder , все доп.свойства нужно помещать массив формата "ID свойства заказа" => "значение" и передавать в переменную ORDER_PROP.

Пример кода:

	$arFields = array(
		"LID" => SITE_ID,
		"PERSON_TYPE_ID" => $PERSON_TYPE_ID,
		"PAYED" => "N",
		"CANCELED" => "N",
		"STATUS_ID" => "N",
		"PRICE" => $summ,
		"CURRENCY" => "RUB",
		"USER_ID" => (int)$USER->GetID(),
		"PAY_SYSTEM_ID" => $PAY_SYSTEM_ID,
		"DELIVERY_ID" => $DELIVERY_ID,
		"USER_DESCRIPTION" => $post["SITE"],
		"ORDER_PROP" => array(
			85 => $post["PHONE"],
			87 => $post["FIO"],
			91 => $post["ADDRESS"],
			109 => $post_data["CITY"],
		),
	);
	
	$orderID = (int)CSaleOrder::DoSaveOrder($arOrderDat, $arFields, 0, $arErrors);

Надеюсь, что кому то облегчил поиски решения:)


Возврат к списку


Текст сообщения*
Защита от автоматических сообщений