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