• Модуль: catalog
  • Путь к файлу: ~/bitrix/modules/catalog/lib/product/sku.php
  • Класс: BitrixCatalogProductSku
  • Вызов: Sku::loadProductData
static function loadProductData(array $listIds)
{
	$iterator = CatalogModelProduct::getList(array(
		'select' => array('ID'),
		'filter' => array('@ID' => $listIds)
	));
	while ($row = $iterator->fetch())
	{
		$row['ID'] = (int)$row['ID'];
		self::$skuExist[$row['ID']] = true;
	}
	unset($row, $iterator);
	$offers = CCatalogSku::getOffersList(
		$listIds,
		0,
		array(),
		array('ID', 'ACTIVE', 'AVAILABLE')
	);
	foreach ($listIds as $id)
	{
		self::$skuAvailable[$id] = self::OFFERS_NOT_EXIST;
		if (empty($offers[$id]))
			continue;

		self::$skuAvailable[$id] = self::OFFERS_NOT_AVAILABLE;
		$allOffers = array();
		$availableOffers = array();
		foreach ($offers[$id] as $offerId => $row)
		{
			$allOffers[] = $offerId;
			if ($row['ACTIVE'] != 'Y' || $row['AVAILABLE'] != 'Y')
				continue;
			self::$skuAvailable[$id] = self::OFFERS_AVAILABLE;
			$availableOffers[] = $offerId;
		}
		self::$skuPrices[$id] = array();
		if (self::$skuAvailable[$id] == self::OFFERS_AVAILABLE)
		{
			foreach ($availableOffers as $offerId)
			{
				self::$offersMap[$offerId] = $id;
				self::$offersIds[] = $offerId;
			}
		}
		else
		{
			foreach ($allOffers as $offerId)
			{
				self::$offersMap[$offerId] = $id;
				self::$offersIds[] = $offerId;
			}
		}
	}
	unset($offerId, $availableOffers, $allOffers, $id);

	if (!self::isSeparateSkuMode())
		self::loadProductPrices();
}