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