• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/helpers/order/builder/orderbuildernew.php
  • Класс: BitrixSaleHelpersOrderBuilderOrderBuilderNew
  • Вызов: OrderBuilderNew::createOrder
public function createOrder(array $data)
{
	$siteId = '';

	if(isset($data['SITE_ID']))
	{
		$siteId = $data['SITE_ID'];
	}
	elseif($data['LID'])
	{
		$siteId = $data['LID'];
	}

	if($siteId == '')
	{
		$this->builder->getErrorsContainer()->addError(new Error(Loc::getMessage("SALE_HLP_OBN_SITEID_ABSENT")));
		throw new BuildingException();
	}

	$currentUserId = 0;
	$oldUserId = null;

	if (isset($data['USER_ID']))
	{
		$currentUserId = (int)$data['USER_ID'];
	}

	if (isset($data['OLD_USER_ID']))
	{
		$oldUserId = (int)$data['OLD_USER_ID'];
	}

	$currency = null;
	if (isset($data['CURRENCY']))
	{
		$currency = $data['CURRENCY'];
	}

	//If buyer changed - discount also can be changed
	OrderEdit::initCouponsData($currentUserId, $data['ID'], $oldUserId);
	$orderClassName = $this->builder->getRegistry()->getOrderClassName();
	$order = $orderClassName::create($siteId, $currentUserId, $currency);

	if(!$order)
	{
		$this->builder->getErrorsContainer()->addError(new Error(Loc::getMessage("SALE_HLP_OBE_ORDER_NOT_CREATED")));
		throw new BuildingException();
	}

	return $order;
}