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