Документация для разработчиков
Темная тема

getAvailableQuantityByStore

\Bitrix\Sale\Result public
\Bitrix\Catalog\Product\CatalogProvider::getAvailableQuantityByStore(
	array $products
);

Метод рассчитывает доступное количество товаров с разбивкой по складам. Он ограничивает результат общим доступным остатком товара, если включен контроль количества. Нестатический метод.

Параметры

ПараметрОписание
$products Массив товаров с идентификаторами товаров в ключах. Складские количества передают в QUANTITY_LIST_BY_STORE в формате код позиции корзины => [идентификатор склада => количество]. Для внутреннего расчета данных каталога дополнительно передают QUANTITY_LIST с теми же кодами позиций и суммарным количеством каждой позиции по складам

Возвращаемое значение

Метод возвращает объект \Bitrix\Sale\Result. Ключ AVAILABLE_QUANTITY_LIST_BY_STORE содержит массив вида идентификатор товара => [идентификатор склада => доступное количество].

Метод распределяет запрошенные количества с учетом общего количества товара и переданного резерва. Он не проверяет фактический остаток на каждом указанном складе. Если количество определить не удалось, складской массив товара может быть пустым; товары без данных каталога могут отсутствовать в результате.

Пример

<?php
use Bitrix\Catalog\Product\CatalogProvider;
use Bitrix\Main\Loader;

if (!Loader::includeModule('catalog') || !Loader::includeModule('sale'))
{
	throw new RuntimeException('Не удалось подключить модули catalog и sale');
}

// Идентификаторы существующих товара и склада
$productId = 123;
$storeId = 1;
$provider = new CatalogProvider(['SITE_ID' => SITE_ID]);
$result = $provider->getAvailableQuantityByStore([
	$productId => [
		'PRODUCT_ID' => $productId,
		'BASKET_CODE' => 'basket-item-1',
		'QUANTITY_LIST' => ['basket-item-1' => 1],
		'QUANTITY_LIST_BY_STORE' => [
			'basket-item-1' => [$storeId => 1],
		],
	],
]);

if (!$result->isSuccess())
{
	echo implode(PHP_EOL, $result->getErrorMessages());
	return;
}

print_r($result->getData()['AVAILABLE_QUANTITY_LIST_BY_STORE'][$productId] ?? []);


© «Битрикс», 2001-2026, «1С-Битрикс», 2026