- Модуль: sale
- Путь к файлу: ~/bitrix/modules/sale/lib/helpers/admin/product.php
- Класс: BitrixSaleHelpersAdminProduct
- Вызов: Product::getProviderData
static function getProviderData(array $productsData, $siteId, $userId = null, array &$errors = array())
{
if(empty($productsData))
return array();
if($siteId == '')
return array();
$context = array(
'SITE_ID' => $siteId
);
$registry = SaleRegistry::getInstance(SaleRegistry::REGISTRY_TYPE_ORDER);
/** @var SaleOrder $orderClass */
$orderClass = $registry->getOrderClassName();
$order = $orderClass::create($siteId);
if(intval($userId) > 0)
{
$order->setFieldNoDemand("USER_ID", intval($userId));
$context['USER_ID'] = $userId;
}
/** @var SaleBasket $orderClass */
$basketClass = $registry->getBasketClassName();
$basket = $basketClass::create($siteId);
$order->setBasket($basket);
if(intval($userId) > 0)
{
$fUserId = Fuser::getIdByUserId(intval($userId));
$basket->setFUserId($fUserId);
}
foreach($productsData as $productFields)
{
if (isset($productFields['OFFER_ID']))
{
$productFields['PRODUCT_ID'] = $productFields['OFFER_ID'];
}
$r = CatalogProductBasket::addProductToBasket($basket, $productFields, $context);
if (!$r->isSuccess())
{
$errors = $r->getErrorMessages();
return null;
}
}
return Provider::getProductData($basket, array("PRICE", "AVAILABLE_QUANTITY"));
}