- Модуль: sale
- Путь к файлу: ~/bitrix/modules/sale/lib/compatible/basketcompatibility.php
- Класс: BitrixSaleCompatibleBasketCompatibility
- Вызов: BasketCompatibility::loadEntityFromBasket
static function loadEntityFromBasket($id)
{
$result = new SaleResult();
$order = null;
$basket = null;
$item = null;
$registry = SaleRegistry::getInstance(static::getRegistryType());
$basketClassName = $registry->getBasketClassName();
$res = $basketClassName::getList(array(
'filter' => array(
'ID' => $id
),
'select' => array(
'ID', 'ORDER_ID', 'SET_PARENT_ID', 'TYPE', 'FUSER_ID', 'LID'
),
));
if (!$itemDat = $res->fetch())
{
$result->addError(new SaleResultError(MainLocalizationLoc::getMessage('SALE_BASKET_COMPATIBLE_BASKET_ITEM_NOT_FOUND'), 'BASKET_ITEM_NOT_FOUND'));
return $result;
}
if (intval($itemDat['ORDER_ID']) > 0)
{
$orderClassName = $registry->getOrderClassName();
/** @var SaleOrder $order */
if ($order = $orderClassName::load(intval($itemDat['ORDER_ID'])))
{
if ($basket = $order->getBasket())
{
/** @var SaleBasketItem $item */
$item = $basket->getItemById($id);
}
}
}
else
{
$basketClassName = $registry->getBasketClassName();
/** @var SaleBasket $basket */
$basket = $basketClassName::loadItemsForFUser($itemDat["FUSER_ID"], $itemDat['LID']);
if ($basket)
{
/** @var SaleBasketItem $item */
$item = $basket->getItemById($id);
}
}
$data = array(
'BASKET_ITEM' => $item
);
if ($order !== null)
{
$data['ORDER'] = $order;
}
$result->setData($data);
return $result;
}