public function Add($arFields, $boolCheck = true) { global $DB; $existProduct = false; $boolCheck = $boolCheck !== false; if (empty($arFields['ID'])) { return false; } $arFields['ID'] = (int) $arFields['ID']; if ($arFields['ID'] <= 0) { return false; } if ($boolCheck) { $existProduct = Catalog\ProductTable::isExistProduct($arFields['ID']); } if ($existProduct) { return CCatalogProduct::Update($arFields['ID'], $arFields); } else { foreach (GetModuleEvents("catalog", "OnBeforeProductAdd", true) as $arEvent) { if (ExecuteModuleEventEx($arEvent, array(&$arFields)) === false) { return false; } } if (!CCatalogProduct::CheckFields("ADD", $arFields, 0)) { return false; } $arInsert = $DB->PrepareInsert("b_catalog_product", $arFields); $strSql = "INSERT INTO b_catalog_product(" . $arInsert[0] . ") VALUES(" . $arInsert[1] . ")"; $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__); Catalog\ProductTable::clearProductCache($arFields['ID']); foreach (GetModuleEvents("catalog", "OnProductAdd", true) as $arEvent) { ExecuteModuleEventEx($arEvent, array($arFields["ID"], $arFields)); } // strange copy-paste bug foreach (GetModuleEvents("sale", "OnProductAdd", true) as $arEvent) { ExecuteModuleEventEx($arEvent, array($arFields["ID"], $arFields)); } } return true; }
/** * <p>Метод проверяет наличие записи в таблице <i>b_catalog_product</i> с информацией (доступное количество, разрешена ли покупка при отсутствии товара и т.д.) для товара с кодом <i>intID</i>. Метод статический.</p> * * * @param int $intID Код товара. * * @return bool <p> В случае наличия информации о товаре возвращает true, иначе - * false.</p> <br><br> * * @static * @link http://dev.1c-bitrix.ru/api_help/catalog/classes/ccatalogproduct/isexistproduct.php * @author Bitrix * @deprecated deprecated since catalog 15.5.2 -> \Bitrix\Catalog\ProductTable::isExistProduct() */ public static function IsExistProduct($intID) { return Catalog\ProductTable::isExistProduct($intID); }