• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/rest/entity/basketitem.php
  • Класс: BitrixSaleRestEntityBasketItem
  • Вызов: BasketItem::internalizeFieldsModify
public function internalizeFieldsModify($fields, $fieldsInfo=[])
{
	$result = [];
	$basketProperties = new BasketProperties();

	$fieldsInfo = empty($fieldsInfo)? $this->getFields():$fieldsInfo;
	$listFieldsInfoAdd = $this->getListFieldInfo($fieldsInfo, ['filter'=>['ignoredAttributes'=>[Attributes::Hidden, Attributes::ReadOnly], 'ignoredFields'=>['ORDER_ID']]]);
	$listFieldsInfoUpdate = $this->getListFieldInfo($fieldsInfo, ['filter'=>['ignoredAttributes'=>[Attributes::Hidden, Attributes::ReadOnly, Attributes::Immutable], 'skipFields'=>['ID']]]);

	if(isset($fields['ORDER']['ID']))
		$result['ORDER']['ID'] = (int)$fields['ORDER']['ID'];

	if(isset($fields['ORDER']['BASKET_ITEMS']))
	{
		foreach ($fields['ORDER']['BASKET_ITEMS'] as $k=>$item)
		{
			$result['ORDER']['BASKET_ITEMS'][$k] = $this->internalizeFields($item,
				$this->isNewItem($item)? $listFieldsInfoAdd:$listFieldsInfoUpdate
			);

			// n1 - ref shipmentItem.basketId
			if($this->isNewItem($item) && isset($item['ID']))
				$result['ORDER']['BASKET_ITEMS'][$k]['ID'] = $item['ID'];

			if(isset($item['PROPERTIES']))
			{
				$result['ORDER']['BASKET_ITEMS'][$k]['PROPERTIES'] = $basketProperties->internalizeFieldsModify(['BASKET_ITEM'=>['PROPERTIES'=>$item['PROPERTIES']]])['BASKET_ITEM']['PROPERTIES'];
			}
		}
	}

	return $result;
}