• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/controller/basketitem.php
  • Класс: BitrixSaleControllerBasketItem
  • Вызов: BasketItem::getPrimaryAutoWiredParameter
public function getPrimaryAutoWiredParameter()
{
	return new ExactParameter(
		SaleBasketItem::class,
		'basketItem',
		function($className, $id) {
			$registry = SaleRegistry::getInstance(SaleRegistry::REGISTRY_TYPE_ORDER);

			/** @var SaleBasket $basketClass */
			$basketClass = $registry->getBasketClassName();

			$r = $basketClass::getList([
				'select'=>['ORDER_ID'],
				'filter'=>['ID'=>$id]
			]);

			if($row = $r->fetch())
			{
				/** @var SaleOrder $orderClass */
				$orderClass = $registry->getOrderClassName();

				$order = $orderClass::load($row['ORDER_ID']);
				$basket = $order->getBasket()->getItemByBasketCode($id);
				if ($basket instanceof BitrixSaleBasketItem)
				{
					return $basket;
				}
			}
			else
			{
				$this->addError(new Error('basket item is not exists', 200140400001));
			}
			return null;

		}
	);
}