• Модуль: catalog
  • Путь к файлу: ~/bitrix/modules/catalog/lib/restview/product.php
  • Класс: BitrixCatalogRestViewProduct
  • Вызов: Product::getFieldsCatalogProduct
private function getFieldsCatalogProduct(): array
{
	$fieldList = [
		'TYPE' => [
			'TYPE' => DataType::TYPE_INT,
			'ATTRIBUTES' => [
				Attributes::READONLY,
			],
		],
		'AVAILABLE' => [
			'TYPE' => DataType::TYPE_CHAR,
			'ATTRIBUTES' => [
				Attributes::READONLY,
			],
		],
		'BUNDLE' => [
			'TYPE' => DataType::TYPE_CHAR,
			'ATTRIBUTES' => [
				Attributes::READONLY,
			],
		],
		'QUANTITY' => [
			'TYPE' => DataType::TYPE_FLOAT,
		],
		'QUANTITY_RESERVED' => [
			'TYPE' => DataType::TYPE_FLOAT,
		],
		'QUANTITY_TRACE' => [
			'TYPE' => DataType::TYPE_CHAR,
		],
		'CAN_BUY_ZERO' => [
			'TYPE' => DataType::TYPE_CHAR,
		],
		'SUBSCRIBE' => [
			'TYPE' => DataType::TYPE_CHAR,
		],
		'VAT_ID' => [
			'TYPE' => DataType::TYPE_INT,
		],
		'VAT_INCLUDED' => [
			'TYPE' => DataType::TYPE_CHAR,
		],
		'PURCHASING_PRICE' => [
			'TYPE' => DataType::TYPE_FLOAT,
		],
		'PURCHASING_CURRENCY' => [
			'TYPE' => DataType::TYPE_STRING,
		],
		'BARCODE_MULTI' => [
			'TYPE' => DataType::TYPE_CHAR,
		],
		'WEIGHT' => [
			'TYPE' => DataType::TYPE_FLOAT,
		],
		'LENGTH' => [
			'TYPE' => DataType::TYPE_FLOAT,
		],
		'WIDTH' => [
			'TYPE' => DataType::TYPE_FLOAT,
		],
		'HEIGHT' => [
			'TYPE' => DataType::TYPE_FLOAT,
		],
		'MEASURE' => [
			'TYPE' => DataType::TYPE_INT,
		],
		'RECUR_SCHEME_LENGTH' => [
			'TYPE' => DataType::TYPE_INT,
		],
		'RECUR_SCHEME_TYPE' => [
			'TYPE' => DataType::TYPE_CHAR,
		],
		'TRIAL_PRICE_ID' => [
			'TYPE' => DataType::TYPE_INT,
		],
		'WITHOUT_ORDER' => [
			'TYPE' => DataType::TYPE_CHAR,
		],
	];

	if (CatalogConfigState::isUsedInventoryManagement())
	{
		$lockFields = [
			'QUANTITY',
			'QUANTITY_RESERVED',
			'PURCHASING_PRICE',
			'PURCHASING_CURRENCY',
		];

		foreach ($lockFields as $fieldName)
		{
			if (!isset($fieldList[$fieldName]['ATTRIBUTES']))
			{
				$fieldList[$fieldName]['ATTRIBUTES'] = [
					Attributes::READONLY,
				];
			}
			else
			{
				$fieldList[$fieldName]['ATTRIBUTES'][] = Attributes::READONLY;
				$fieldList[$fieldName]['ATTRIBUTES'] = array_unique($fieldList[$fieldName]['ATTRIBUTES']);
			}
		}
	}

	return $this->fillFieldNames($fieldList);
}