• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/providerbase.php
  • Класс: BitrixSaleProviderBase
  • Вызов: ProviderBase::deliverProductData
static function deliverProductData($provider, array $fields)
{
	global $APPLICATION;

	$result = new Result();
	$APPLICATION->ResetException();
	$resultProductData = false;

	if ($provider && array_key_exists("IBXSaleProductProvider", class_implements($provider)))
	{
		$resultProductData = $provider::DeliverProduct($fields);
	}
	else
	{
		$resultProductData = CSaleBasket::ExecuteCallbackFunction(
			$fields['CALLBACK_FUNC'],
			$fields['MODULE'],
			$fields['PRODUCT_ID'],
			$fields['USER_ID'],
			$fields["ALLOW_DELIVERY"],
			$fields['ORDER_ID'],
			$fields["QUANTITY"]
		);

		if (!empty($resultProductData) && is_array($resultProductData))
		{
			$resultProductData['ORDER_ID'] = $fields['ORDER_ID'];
		}

	}

	$ex = $APPLICATION->GetException();
	if (!empty($ex))
	{
		$result->addError( new ResultError($ex->GetString(), $ex->GetID()) );
	}
	else
	{
		$resultList[$fields['PRODUCT_ID']] = $resultProductData;
	}

	if (!empty($resultList) && is_array($resultList))
	{
		$result->setData($resultList);
	}

	return $result;
}