static function getFieldsMap(): array
{
static $fieldsMap = null;
if (is_array($fieldsMap))
{
return $fieldsMap;
}
if (!Loader::includeModule('catalog'))
{
return [];
}
$fieldsMap = [
'ID' => [
'Name' => Loc::getMessage('CRM_AUTOMATION_CONNECTORS_PRODUCT_FIELD_ID'),
'Type' => FieldType::INT,
],
'OWNER_ID' => [
'Name' => \CCrmProductRow::GetFieldCaption('OWNER_ID'),
'Type' => FieldType::INT,
'Required' => true,
],
'OWNER_TYPE' => [
'Name' => \CCrmProductRow::GetFieldCaption('OWNER_TYPE'),
'Type' => FieldType::STRING,
'Required' => true,
],
'PRODUCT_ID' => [
'Name' => Loc::getMessage('CRM_AUTOMATION_CONNECTORS_PRODUCT_FIELD_PRODUCT_ID'),
'Type' => FieldType::INT,
'Default' => 0,
],
'PRODUCT_NAME' => [
'Name' => \CCrmProductRow::GetFieldCaption('PRODUCT_NAME'),
'Type' => FieldType::STRING,
'Default' => '',
],
'PRICE_ACCOUNT' => [
'Name' => \CCrmProductRow::GetFieldCaption('PRICE'),
'Type' => FieldType::DOUBLE,
'Required' => true,
'Default' => 0.0,
],
'PRICE_EXCLUSIVE' => [
'Name' => \CCrmProductRow::GetFieldCaption('PRICE_EXCLUSIVE'),
'Type' => FieldType::DOUBLE,
'Default' => 0.0,
],
'PRICE_NETTO' => [
'Name' => Loc::getMessage('CRM_AUTOMATION_CONNECTORS_PRODUCT_FIELD_PRICE_NETTO'),
'Type' => FieldType::DOUBLE,
'Default' => 0.0,
],
'PRICE_BRUTTO' => [
'Name' => Loc::getMessage('CRM_AUTOMATION_CONNECTORS_PRODUCT_FIELD_PRICE_BRUTTO'),
'Type' => FieldType::DOUBLE,
'Default' => 0.0,
],
'QUANTITY' => [
'Name' => \CCrmProductRow::GetFieldCaption('QUANTITY'),
'Type' => FieldType::DOUBLE,
'Required' => true,
'Default' => 1.0,
],
'SUM_ACCOUNT' => [
'Name' => Loc::getMessage('CRM_AUTOMATION_CONNECTORS_PRODUCT_FIELD_SUM_ACCOUNT'),
'Type' => FieldType::DOUBLE,
],
'DISCOUNT_TYPE_ID' => [
'Name' => \CCrmProductRow::GetFieldCaption('DISCOUNT_TYPE_ID'),
'Type' => FieldType::SELECT,
'Options' => [
Discount::UNDEFINED => '',
Discount::MONETARY => '',
Discount::PERCENTAGE => '',
],
'Default' => Discount::UNDEFINED,
],
'DISCOUNT_RATE' => [
'Name' => \CCrmProductRow::GetFieldCaption('DISCOUNT_RATE'),
'Type' => FieldType::DOUBLE,
'Default' => 0.0,
],
'DISCOUNT_SUM' => [
'Name' => \CCrmProductRow::GetFieldCaption('DISCOUNT_SUM'),
'Type' => FieldType::DOUBLE,
'Default' => 0.0,
],
'TAX_RATE' => [
'Name' => \CCrmProductRow::GetFieldCaption('TAX_RATE'),
'Type' => FieldType::DOUBLE,
],
'TAX_INCLUDED' => [
'Name' => \CCrmProductRow::GetFieldCaption('TAX_INCLUDED'),
'Type' => FieldType::BOOL,
'Default' => false,
],
'MEASURE_CODE' => [
'Name' => \CCrmProductRow::GetFieldCaption('MEASURE_CODE'),
'Type' => FieldType::INT,
'Default' => 0,
],
'MEASURE_NAME' => [
'Name' => \CCrmProductRow::GetFieldCaption('MEASURE_NAME'),
'Type' => FieldType::STRING,
'Default' => '',
],
'SORT' => [
'Name' => \CCrmProductRow::GetFieldCaption('SORT'),
'Type' => FieldType::INT,
'Default' => 0,
],
'XML_ID' => [
'Name' => 'XML ID',
'Type' => FieldType::STRING,
'Default' => '',
],
];
$productTypeField = static::getProductTypeField();
if (isset($productTypeField))
{
$fieldsMap['TYPE'] = $productTypeField;
}
return $fieldsMap;
}