• Модуль: catalog
  • Путь к файлу: ~/bitrix/modules/catalog/lib/product/catalogprovider.php
  • Класс: BitrixCatalogProductCatalogProvider
  • Вызов: CatalogProvider::createProductsListWithCatalogData
private function createProductsListWithCatalogData(array $products): array
	{
		$productDataList = array();
		$productIdList = array_fill_keys(array_keys($products), true);
		$r = $this->getData($products, [self::USE_GATALOG_DATA, 'FULL_QUANTITY']);
		if ($r->isSuccess())
		{
			$data = $r->getData();
			if (!empty($data[static::RESULT_CATALOG_LIST]))
			{
				$productDataList = $data[static::RESULT_CATALOG_LIST];
			}
		}

		$resultList = array();
		$availableListId = array_intersect_key($productIdList, $productDataList);
		if (!empty($availableListId))
		{
			foreach (array_keys($availableListId) as $productId)
			{
				if (empty($productDataList[$productId]) || !is_array($productDataList[$productId]))
				{
					continue;
				}
				$resultList[$productId] = $products[$productId];
				$resultList[$productId]['PRODUCT'] = $productDataList[$productId]['PRODUCT'];
				unset($productDataList[$productId]['PRODUCT']);
				$resultList[$productId]['CATALOG'] = $productDataList[$productId];
			}
		}

		return $resultList;
	}