- Модуль: catalog
- Путь к файлу: ~/bitrix/modules/catalog/lib/product/catalogprovider.php
- Класс: BitrixCatalogProductCatalogProvider
- Вызов: CatalogProvider::createProductResult
static function createProductResult(array $products, array $items, array $priceList, array $productQuantityList): array
{
$resultList = array();
foreach ($products as $productId => $productData)
{
$itemCode = $productData['ITEM_CODE'];
$basketCode = $productData['BASKET_CODE'];
$resultList[$productId] = $items[$productId];
if (isset($productData['PRODUCT_DATA']['ACTIVE']))
{
$resultList[$productId]['ACTIVE'] = $productData['PRODUCT_DATA']['ACTIVE'];
}
$resultList[$productId]['ITEM_CODE'] = $itemCode;
QuantityControl::resetAllQuantity($productId);
QuantityControl::setReservedQuantity($productId, $productQuantityList[$basketCode]['QUANTITY_RESERVED']);
if (!isset($priceList[$basketCode]))
{
$priceList[$basketCode] = array();
}
if (!empty($productData[Base::FLAT_QUANTITY_LIST]))
{
foreach($productData[Base::FLAT_QUANTITY_LIST] as $basketCode => $quantity)
{
QuantityControl::addQuantity($productId, $productQuantityList[$basketCode]['QUANTITY']);
QuantityControl::addAvailableQuantity($productId, $productQuantityList[$basketCode]['AVAILABLE_QUANTITY']);
if (empty($priceList[$basketCode]))
{
continue;
}
$resultList[$productId]['PRICE_LIST'][$basketCode] = array_merge(
array(
'QUANTITY' => $productQuantityList[$basketCode]['QUANTITY'],
'AVAILABLE_QUANTITY' => $productQuantityList[$basketCode]['AVAILABLE_QUANTITY'],
"ITEM_CODE" => $itemCode,
"BASKET_CODE" => $basketCode,
),
$priceList[$basketCode]
);
}
}
else
{
$resultList[$productId]['QUANTITY'] = $productQuantityList[$basketCode]['QUANTITY'];
QuantityControl::addQuantity($productId, $productQuantityList[$basketCode]['QUANTITY']);
QuantityControl::addAvailableQuantity($productId, $productQuantityList[$basketCode]['AVAILABLE_QUANTITY']);
if (!empty($resultList[$productId]))
{
if (empty($priceList[$basketCode]))
{
continue;
}
$resultList[$productId] = $priceList[$basketCode] + $resultList[$productId];
}
}
}
return $resultList;
}