• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/saleproviderbase.php
  • Класс: BitrixSaleSaleProviderBase
  • Вызов: SaleProviderBase::getAvailableQuantityAndPriceByStore
public function getAvailableQuantityAndPriceByStore(array $products): Result
{
	$result = $this->getAvailableQuantityAndPrice($products);

	if (!$result->isSuccess())
	{
		return $result;
	}

	$data = $result->getData();
	if (empty($data) || empty($data[self::SUMMMARY_PRODUCT_LIST]))
	{
		return $result;
	}
	if (!is_array($data[self::SUMMMARY_PRODUCT_LIST]))
	{
		$result->setData([]);

		return $result;
	}

	$summary = $data[self::SUMMMARY_PRODUCT_LIST];

	$priceList = (
			!empty($summary[self::FLAT_PRICE_LIST])
			&& is_array($summary[self::FLAT_PRICE_LIST])
		)
		? $summary[self::FLAT_PRICE_LIST]
		: []
	;
	$quantityList = (
			!empty($summary[self::FLAT_AVAILABLE_QUANTITY_LIST])
			&& is_array($summary[self::FLAT_AVAILABLE_QUANTITY_LIST])
		)
		? $this->getFilledDefaultStore($summary[self::FLAT_AVAILABLE_QUANTITY_LIST])
		: []
	;

	$result->setData([
		self::SUMMMARY_PRODUCT_LIST => [
			self::FLAT_PRICE_LIST => $priceList,
			self::STORE_AVAILABLE_QUANTITY_LIST => $quantityList,
		],
	]);
	unset($quantityList, $priceList, $summary, $data);

	return $result;
}