- Модуль: 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();
}