• Модуль: catalog
  • Путь к файлу: ~/bitrix/modules/catalog/lib/component/skutree.php
  • Класс: BitrixCatalogComponentSkuTree
  • Вызов: SkuTree::getOffersForProductIds
private function getOffersForProductIds(array $productIds): array
{
	$productProperty = 'PROPERTY_'.$this->iblockInfo->getSkuPropertyId();
	$productPropertyValue = $productProperty.'_VALUE';

	$filter = [
		'IBLOCK_ID' => $this->iblockInfo->getSkuIblockId(),
		'ACTIVE' => 'Y',
		'ACTIVE_DATE' => 'Y',
		'CHECK_PERMISSIONS' => 'N',
		$productProperty => $productIds,
	];

	$offers = [];
	$iterator = CIBlockElement::GetList(
		[],
		$filter,
		false,
		false,
		[$productProperty, 'ID']
	);
	while ($row = $iterator->getNext())
	{
		$row['ID'] = (int)$row['ID'];
		$row['PARENT_PRODUCT_ID'] = (int)$row[$productPropertyValue];
		$row['PROPERTIES'] = [];

		$offers[$row['ID']] = $row;
	}

	if (!empty($offers))
	{
		CIBlockElement::GetPropertyValuesArray(
			$offers,
			$this->iblockInfo->getSkuIblockId(),
			$filter,
			[
				'ID' => PropertyCatalogFeature::getOfferTreePropertyCodes($this->iblockInfo->getSkuIblockId()),
			]
		);
	}

	return $offers;
}