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