• Модуль: catalog
  • Путь к файлу: ~/bitrix/modules/catalog/lib/v2/Sku/SkuRepository.php
  • Класс: BitrixCatalogv2SkuSkuRepository
  • Вызов: SkuRepository::getSkuByProductMap
private function getSkuByProductMap(array $skuItems): array
{
	$skuByProductMap = [];

	$skuMap = [];
	/** @var BitrixCatalogv2SkuBaseSku $sku */
	foreach ($skuItems as $sku)
	{
		if ($sku->getParent() === null)
		{
			$skuMap[$sku->getId()] = $sku;
		}
	}

	if (!empty($skuMap))
	{
		$skuPropertyId = $this->iblockInfo->getSkuPropertyId();
		$propertyValuesIterator = CIBlockElement::GetPropertyValues(
			$this->iblockInfo->getSkuIblockId(),
			['ID' => array_keys($skuMap)],
			false,
			['ID' => $skuPropertyId]
		);

		while ($propertyValues = $propertyValuesIterator->fetch())
		{
			$productId = $propertyValues[$skuPropertyId];
			$sku = $skuMap[$propertyValues['IBLOCK_ELEMENT_ID']];

			$skuByProductMap[$productId][] = $sku;
		}
	}

	return $skuByProductMap;
}