- Модуль: 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();
}