• Модуль: catalog
  • Путь к файлу: ~/bitrix/modules/catalog/lib/product/catalogprovider.php
  • Класс: BitrixCatalogProductCatalogProvider
  • Вызов: CatalogProvider::deleteBarcode
static function deleteBarcode(array $storeData): SaleResult
	{
		$result = new SaleResult();

		$storeId = $storeData["STORE_ID"];
		$productId = $storeData["PRODUCT_ID"];
		$barcodeMulti = $storeData['IS_BARCODE_MULTI'];

		$barcodeList = $storeData['BARCODE'];

		foreach ($barcodeList as $barcodeValue)
		{
			if (trim($barcodeValue) == "" || !$barcodeMulti)
			{
				continue;
			}

			$result = new SaleResult();
			$barcodeFields = array(
				"STORE_ID" => $storeId,
				"BARCODE" => $barcodeValue,
				"PRODUCT_ID" => $productId
			);

			$dbres = CCatalogStoreBarcode::GetList(
				array(),
				$barcodeFields,
				false,
				false,
				array("ID", "STORE_ID", "BARCODE", "PRODUCT_ID")
			);

			$catalogStoreBarcodeRes = $dbres->Fetch();
			if ($catalogStoreBarcodeRes)
			{
				CCatalogStoreBarcode::Delete($catalogStoreBarcodeRes["ID"]);
			}
			else
			{
				$result->addError(
					new SaleResultError(
						MainLocalizationLoc::getMessage(
							"DDCT_DEDUCTION_BARCODE_ERROR",
							array_merge(
								self::getProductCatalogInfo($productId),
								array("#BARCODE#" => $barcodeValue)
							)
						), "DDCT_DEDUCTION_BARCODE_ERROR"
					)
				);
			}
		}

		return $result;
	}