пример получения списка товаров вместе с получением свойств
| Код |
|---|
$rsItems = \CIBlockElement::GetList($arSort, $arFilter, $groupParams, $pageParams, $arSelect);
$arElementLink = array();
$elementsID = array();
while ($arElement = $rsItems->GetNext())
{
$result[] = $arElement;
}
if (!empty($result))
{
foreach ($result as $key=>$item){
$result[$key]["PROPERTIES"] = array();
$arElementLink[$item["ID"]] = &$result[$key];
$elementsID[$key] = $item["ID"];
}
$arPropFilter = array(
'ID' => $elementsID,
'IBLOCK_ID' => $arFilter['IBLOCK_ID'],
);
\CIBlockElement::GetPropertyValuesArray($arElementLink, $arFilter['IBLOCK_ID'], $arPropFilter, []);
foreach ($result as $key => $arItem)
{
if (!empty($arItem['PROPERTIES']))
{
$arProperties = [];
foreach ($arItem['PROPERTIES'] as $pCode => $arProperty)
{
if (
(is_array($arProperty['VALUE']) && !empty($arProperty['VALUE']))
|| (!is_array($arProperty['VALUE']) && strlen($arProperty['VALUE']) > 0))
{
$arProperties[$pCode] = \CIBlockFormatProperties::GetDisplayValue(
array('ID' => $arItem['ID'], 'NAME' => $arItem['NAME']), $arProperty, '');
}
}
if (!empty($arProperties))
{
$result[$key]['PROPERTIES'] = $arProperties;
}
}
}
} |