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