• Модуль: catalog
  • Путь к файлу: ~/bitrix/modules/catalog/lib/product/catalogprovider.php
  • Класс: BitrixCatalogProductCatalogProvider
  • Вызов: CatalogProvider::loadCurrentStoreReserve
static function loadCurrentStoreReserve(int $productId, array $reserve): array
	{
		$result = [];
		foreach ($reserve as $storeId => $quantity)
		{
			$result[$storeId] = [
				'ID' => null,
				'PRODUCT_ID' => $productId,
				'STORE_ID' => $storeId,
				'ADD_QUANTITY_RESERVED' => $quantity,
				'QUANTITY_RESERVED' => 0.0,
			];
		}

		$iterator = CatalogStoreProductTable::getList([
			'select' => [
				'ID',
				'STORE_ID',
				'QUANTITY_RESERVED',
			],
			'filter' => [
				'=PRODUCT_ID' => $productId,
				'@STORE_ID' => array_keys($reserve),
			],
		]);
		while ($row = $iterator->fetch())
		{
			$storeId = (int)$row['STORE_ID'];
			$result[$storeId]['ID'] = (int)$row['ID'];
			$result[$storeId]['QUANTITY_RESERVED'] = (float)$row['QUANTITY_RESERVED'];
		}
		unset($row, $iterator);

		return $result;
	}