• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/order/builder/orderbuildercrm.php
  • Класс: Bitrix\Crm\Order\Builder\OrderBuilderCrm
  • Вызов: OrderBuilderCrm::buildBasket
public function buildBasket()
{
	if(isset($this->formData['PRODUCT']) && is_array($this->formData['PRODUCT']) && !empty($this->formData['PRODUCT']))
	{
		foreach($this->formData['PRODUCT'] as $k => $p)
		{
			if(isset($p['FIELDS_VALUES']))
			{
				$fieldsValues = $p['FIELDS_VALUES'];

				try
				{
					$fieldsValues = Json::decode($fieldsValues);

					if(is_array($fieldsValues))
					{
						$fields = array_intersect_key($p, array_flip(BasketItem::getAllFields()));
						$fields = array_merge($fieldsValues, $fields);
						$fields['OFFER_ID'] = $fields['PRODUCT_ID'];
						$this->formData['PRODUCT'][$k] = $fields;
					}
				}
				catch(ArgumentException $e)
				{
					$this->getErrorsContainer()->addError(
						new Error(
							Loc::getMessage(
								'CRM_ORDERBUILDER_PRODUCT_ERROR',
								['#BASKET_CODE#' => $k]
							)
						)
					);
				}
			}
		}

		sortByColumn($this->formData["PRODUCT"], array("SORT" => SORT_ASC), '', null, true);
	}

	return parent::buildBasket();
}