- Модуль: catalog
- Путь к файлу: ~/bitrix/modules/catalog/lib/product/propertycatalogfeature.php
- Класс: BitrixCatalogProductPropertyCatalogFeature
- Вызов: PropertyCatalogFeature::getBasketPropertyCodes
static function getBasketPropertyCodes($iblockId, array $parameters = []): ?array
{
$iblockId = (int)$iblockId;
if ($iblockId <= 0)
return null;
$catalog = CCatalogSku::GetInfoByIBlock($iblockId);
if (empty($catalog))
return null;
if (!self::isEnabledFeatures())
return self::getBasketPropertyByTypes($catalog, $parameters);
$filter = null;
switch ($catalog['CATALOG_TYPE'])
{
case CCatalogSku::TYPE_CATALOG:
case CCatalogSku::TYPE_PRODUCT:
case CCatalogSku::TYPE_FULL:
$filter = [
[
'LOGIC' => 'OR',
[
'=PROPERTY.MULTIPLE' => 'Y',
'@PROPERTY.PROPERTY_TYPE' => [
IblockPropertyTable::TYPE_ELEMENT,
IblockPropertyTable::TYPE_SECTION,
IblockPropertyTable::TYPE_LIST,
IblockPropertyTable::TYPE_NUMBER,
IblockPropertyTable::TYPE_STRING
]
],
[
'=PROPERTY.MULTIPLE' => 'N',
'@PROPERTY.PROPERTY_TYPE' => [
IblockPropertyTable::TYPE_ELEMENT,
IblockPropertyTable::TYPE_LIST
]
]
]
];
break;
case CCatalogSku::TYPE_OFFERS:
$filter = [
'!=PROPERTY.PROPERTY_TYPE' => IblockPropertyTable::TYPE_FILE,
'!=PROPERTY.ID' => $catalog['SKU_PROPERTY_ID']
];
break;
}
unset($catalog);
if ($filter === null)
return null;
$filter['=MODULE_ID'] = 'catalog';
$filter['=FEATURE_ID'] = self::FEATURE_ID_BASKET_PROPERTY;
return self::getFilteredPropertyCodes($iblockId, $filter, $parameters);
}