function ImportPrices($XML_PRICES_PARENT, $IBLOCK_ID, $IBLOCK_LID) { $price_sort = 0; $this->next_step["XML_PRICES_PARENT"] = $XML_PRICES_PARENT; $arLang = array(); foreach ($IBLOCK_LID as $site_id) { $rsSite = CSite::GetList($by = "sort", $order = "asc", array("ID" => $site_id)); while ($site = $rsSite->Fetch()) { $arLang[$site["LANGUAGE_ID"]] = $site["LANGUAGE_ID"]; } } $arPrices = array(); $rsPrice = CCatalogGroup::GetList(); while ($arPrice = $rsPrice->Fetch()) { $arPrices[$arPrice["ID"]] = $arPrice; } if (!CBXFeatures::IsFeatureEnabled('CatMultiPrice')) { $prices_limit = 1 - count($arPrices); } else { $prices_limit = null; } $arXMLPrices = $this->_xml_file->GetAllChildrenArray($XML_PRICES_PARENT); $uniqPriceById = array(); foreach ($arXMLPrices as $arXMLPrice) { $PRICE_ID = $arXMLPrice[$this->mess["IBLOCK_XML2_ID"]]; $PRICE_NAME = $arXMLPrice[$this->mess["IBLOCK_XML2_NAME"]]; if (array_key_exists($PRICE_ID, $uniqPriceById)) { return GetMessage("IBLOCK_XML2_PRICE_DUP_ERROR"); } else { $uniqPriceById[$PRICE_ID] = true; } $found_id = 0; //Check for price by XML_ID if (isset($PRICE_ID) && $PRICE_ID != "") { foreach ($arPrices as $i => $arPrice) { if ($PRICE_ID === $arPrice["XML_ID"]) { $found_id = $arPrice["ID"]; $arPrices[$i]["found"] = true; break; } } } //When lookup by it's name if (!$found_id) { foreach ($arPrices as $arPrice) { if ($PRICE_NAME === $arPrice["NAME"] && !isset($arPrice["found"])) { $found_id = $arPrice["ID"]; break; } } } //Add new price type if (!$found_id) { $price_sort += 100; $arPrice = array("NAME" => $PRICE_NAME, "XML_ID" => $PRICE_ID, "SORT" => $price_sort, "USER_LANG" => array(), "USER_GROUP" => array(2), "USER_GROUP_BUY" => array(2)); foreach ($arLang as $lang) { $arPrice["USER_LANG"][$lang] = $arXMLPrice[$this->mess["IBLOCK_XML2_NAME"]]; } if (!isset($prices_limit) || $prices_limit > 0) { CCatalogGroup::Add($arPrice); } elseif (isset($prices_limit)) { return GetMessage("IBLOCK_XML2_PRICE_SB_ADD_ERROR"); } } elseif (strlen($arPrices[$found_id]["XML_ID"]) <= 0 && strlen($PRICE_ID) >= 0) { CCatalogGroup::Update($found_id, array("XML_ID" => $PRICE_ID)); } elseif ($arPrices[$found_id]["NAME"] !== $PRICE_NAME) { CCatalogGroup::Update($found_id, array("NAME" => $PRICE_NAME)); } if (isset($prices_limit)) { $prices_limit--; } } return true; }
IncludeModuleLangFile(__FILE__); require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/catalog/prolog.php"; $sTableID = "tbl_catalog_group"; $oSort = new CAdminSorting($sTableID, "ID", "asc"); $lAdmin = new CAdminList($sTableID, $oSort); $arFilterFields = array(); $lAdmin->InitFilter($arFilterFields); $arFilter = array(); if ($lAdmin->EditAction() && !$bReadOnly) { foreach ($_POST['FIELDS'] as $ID => $arFields) { $DB->StartTransaction(); $ID = IntVal($ID); if (!$lAdmin->IsUpdated($ID)) { continue; } if (!CCatalogGroup::Update($ID, $arFields)) { if ($ex = $APPLICATION->GetException()) { $lAdmin->AddUpdateError($ex->GetString(), $ID); } else { $lAdmin->AddUpdateError(GetMessage("ERROR_UPDATING_REC") . " (" . $arFields["ID"] . ", " . $arFields["NAME"] . ", " . $arFields["SORT"] . ")", $ID); } $DB->Rollback(); } $DB->Commit(); } } if (($arID = $lAdmin->GroupAction()) && !$bReadOnly) { if ($_REQUEST['action_target'] == 'selected') { $arID = array(); $dbResultList = CCatalogGroup::GetList(array($by => $order)); while ($arResult = $dbResultList->Fetch()) {
{ WizardServices::IncludeServiceLang("step1.php", $langID); $arFields["USER_LANG"][$langID] = GetMessage("WIZ_PRICE_NAME"); } $arFields["BASE"] = "Y"; if($wizard->GetVar("installPriceBASE") == "Y"){ $db_res = CCatalogGroup::GetGroupsList(array("CATALOG_GROUP_ID"=>'1', "BUY"=>"Y")); if ($ar_res = $db_res->Fetch()) { $wizGroupId[] = $ar_res['GROUP_ID']; } $wizGroupId[] = 2; $arFields["USER_GROUP"] = $wizGroupId; $arFields["USER_GROUP_BUY"] = $wizGroupId; } CCatalogGroup::Update($arRes["ID"], $arFields); } //making orders function __MakeOrder($prdCnt=1, $arData = Array()) { global $APPLICATION, $USER, $DB; CModule::IncludeModule("iblock"); CModule::IncludeModule("sale"); CModule::IncludeModule("catalog"); $arPrd = Array(); $dbItem = CIBlockElement::GetList(Array("PROPERTY_MORE_PHOTO" => "DESC", "ID" => "ASC"), Array("IBLOCK_TYPE" => "offers", "IBLOCK_SITE_ID" => WIZARD_SITE_ID, "PROPERTY_NEWPRODUCT" => false), false, Array("nTopCount" => 10), Array("ID", "IBLOCK_ID", "XML_ID", "NAME", "DETAIL_PAGE_URL", "IBLOCK_XML_ID")); while($arItem = $dbItem->GetNext()) $arPrd[] = $arItem; if(!empty($arPrd))
} if (isset($intValue)) { unset($intValue); } } $arUserLang = array(); foreach ($arLangList as &$arOneLang) { $arUserLang[$arOneLang['LID']] = trim(isset($_POST['NAME_LANG'][$arOneLang['LID']]) ? $_POST['NAME_LANG'][$arOneLang['LID']] : ''); } if (isset($arOneLang)) { unset($arOneLang); } $arFields = array('NAME' => isset($_POST['NAME']) ? $_POST['NAME'] : '', 'BASE' => isset($_POST['BASE']) && 'Y' == $_POST['BASE'] ? 'Y' : 'N', 'SORT' => intval(isset($_POST['SORT']) ? $_POST['SORT'] : 100), 'XML_ID' => isset($_POST['XML_ID']) ? $_POST['XML_ID'] : '', 'USER_GROUP' => $arGroupID, 'USER_GROUP_BUY' => $arGroupBuyID, 'USER_LANG' => $arUserLang); $DB->StartTransaction(); if (0 < $ID) { $bVarsFromForm = !CCatalogGroup::Update($ID, $arFields); } else { $ID = CCatalogGroup::Add($arFields); $bVarsFromForm = !(0 < intval($ID)); } if (!$bVarsFromForm) { $DB->Commit(); if (strlen($save) > 0) { LocalRedirect("cat_group_admin.php?lang=" . LANGUAGE_ID); } elseif (strlen($apply) > 0) { LocalRedirect("cat_group_edit.php?lang=" . LANGUAGE_ID . '&ID=' . $ID); } } else { if ($ex = $APPLICATION->GetException()) { $strError = $ex->GetString() . "<br>"; } else {