• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/controller/barcode.php
  • Класс: BitrixSaleControllerBarcode
  • Вызов: Barcode::isBarcodeExistAction
public function isBarcodeExistAction(string $barcode, int $basketId, int $orderId, int $storeId)
{
	if(!BitrixMainLoader::includeModule("sale"))
	{
		throw new BitrixMainSystemException('Module Sale has not installed');
	}

	if(!$this->checkPermission(self::PERMISSION_READ))
	{
		$this->addError(new Error(Loc::getMessage('SALE_CONTROLLER_BARCODE_ACCESS_DENIED')));
		return false;
	}

	if($barcode == '')
	{
		return false;
	}

	if((int)$basketId <= 0)
	{
		$this->addError(new Error(Loc::getMessage('SALE_CONTROLLER_BARCODE_ERROR_BASKET_ID')));
		return false;
	}

	if((int)$orderId <= 0)
	{
		$this->addError(new Error(Loc::getMessage('SALE_CONTROLLER_BARCODE_ERROR_ORDER_ID')));
		return false;
	}

	$basketItem = null;
	$result = false;

	$registry = SaleRegistry::getInstance(SaleRegistry::REGISTRY_TYPE_ORDER);
	/** @var SaleOrder $orderClass */
	$orderClass = $registry->getOrderClassName();

	$order = $orderClass::load($orderId);

	if ($order)
	{
		$basket = $order->getBasket();

		if ($basket)
		{
			$basketItem = $basket->getItemById($basketId);
		}
	}

	if ($basketItem)
	{
		$result = BitrixSaleProvider::checkProductBarcode(
			$basketItem,
			[
				'BARCODE' => $barcode,
				'STORE_ID' => $storeId
		]);
	}

	return ['RESULT' => $result];
}