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);
}