• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/controller/basket.php
  • Класс: BitrixSaleControllerBasket
  • Вызов: Basket::prepareFields
public function prepareFields($fields)
{
	$data = null;
	Loader::includeModule('catalog');

	if(isset($fields['BASKET']['ITEMS']))
	{
		$i=0;
		foreach ($fields['BASKET']['ITEMS'] as $item)
		{
			$item['OFFER_ID'] = $item['PRODUCT_ID'];
			unset($item['PRODUCT_ID']);

			$item['CUSTOM_PRICE'] = isset($item['PRICE'])? 'Y':'N';

			$item['MODULE'] = isset($item['MODULE'])? $item['MODULE']:null;
			$item['PRODUCT_PROVIDER_CLASS'] = isset($item['PRODUCT_PROVIDER_CLASS'])? $item['PRODUCT_PROVIDER_CLASS']:null;

			if($item['MODULE'] == 'catalog' && $item['PRODUCT_PROVIDER_CLASS'] === null)
			{
				$item['PRODUCT_PROVIDER_CLASS'] = BitrixCatalogProductBasket::getDefaultProviderName();
			}

			$properties = isset($item['PROPERTIES'])? $item['PROPERTIES']:[];
			foreach ($properties as &$property)
			{
				if(isset($property['BASKET_ID']))
					unset($property['BASKET_ID']);
			}

			$item['PROPS'] = $properties;
			unset($item['PROPERTIES']);

			$basketCode = isset($item['ID'])? $item['ID']:'n'.++$i;
			if(isset($item['ID']))
				unset($item['ID']);

			$data[$basketCode] = $item;
		}
		unset($fields['BASKET']);
	}

	return ['PRODUCT'=>is_array($data)?$data:[]];
}