• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/providerbase.php
  • Класс: BitrixSaleProviderBase
  • Вызов: ProviderBase::getAvailableQuantity
static function getAvailableQuantity($providerClass, array $products, array $context)
{
	$result = new Result();
	$resultList = array();

	foreach ($products as $productId => $productData)
	{
		$r = static::getAvailableQuantityByProductData($providerClass, $productData, $context);
		if (!$r->isSuccess())
		{
			$result->addErrors($r->getErrors());
		}
		elseif ($r->hasWarnings())
		{
			$result->addWarnings($r->getWarnings());
		}

		$availableQuantityData = $r->getData();
		if (array_key_exists('AVAILABLE_QUANTITY', $availableQuantityData))
		{
			$resultList[$productId] ??= 0;

			$resultList[$productId] += floatval($availableQuantityData['AVAILABLE_QUANTITY']);
		}
		else
		{
			$result->addWarning(new ResultWarning(Loc::getMessage('SALE_PROVIDER_BASKET_ITEM_WRONG_AVAILABLE_QUANTITY', array(
				'#PRODUCT_ID#' => $productId
			)), 'PROVIDER_BASKET_ITEM_WRONG_AVAILABLE_QUANTITY'));

		}
	}

	if (!empty($resultList))
	{
		$result->setData(
			array(
				'AVAILABLE_QUANTITY_LIST' => $resultList,
			)
		);
	}

	return $result;
}