%PDF- %PDF-
Direktori : /home/bitrix/www/bitrix/components/bitrix/sale.basket.order.ajax/ |
Current File : //home/bitrix/www/bitrix/components/bitrix/sale.basket.order.ajax/component.php |
<? /** * Component deprecated */ /** * @global CMain $APPLICATION * @global array $arParams * */ if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die(); use Bitrix\Main\Config\Option; use Bitrix\Main\Loader; use Bitrix\Sale\DiscountCouponsManager; if (!Loader::includeModule('sale')) { ShowError(GetMessage("SALE_MODULE_NOT_INSTALL")); return; } $requestAjax = isset($_REQUEST['AJAX_CALL']) && $_REQUEST['AJAX_CALL'] == 'Y'; if ($requestAjax) $APPLICATION->RestartBuffer(); if (isset($arParams["SET_TITLE"]) && $arParams["SET_TITLE"] == "Y") $APPLICATION->SetTitle(GetMessage("SBB_TITLE")); if (empty($arParams["COLUMNS_LIST"]) || !is_array($arParams["COLUMNS_LIST"])) $arParams["COLUMNS_LIST"] = array("NAME", "PRICE", "TYPE", "QUANTITY", "DELETE", "DELAY", "WEIGHT"); $arParams["HIDE_COUPON"] = (isset($arParams["HIDE_COUPON"]) && $arParams["HIDE_COUPON"] == "Y" ? "Y" : "N"); $arParams['QUANTITY_FLOAT'] = (isset($arParams['QUANTITY_FLOAT']) && $arParams['QUANTITY_FLOAT'] == 'Y' ? 'Y' : 'N'); $arParams['PRICE_VAT_SHOW_VALUE'] = (isset($arParams['PRICE_VAT_SHOW_VALUE']) && $arParams['PRICE_VAT_SHOW_VALUE'] == 'N' ? 'N' : 'Y'); $arParams["SEND_NEW_USER_NOTIFY"] = (($arParams["SEND_NEW_USER_NOTIFY"] == "N") ? "N" : "Y"); $arParams["WEIGHT_UNIT"] = htmlspecialcharsbx(Option::get('sale', 'weight_unit', '', SITE_ID)); $arParams["WEIGHT_KOEF"] = htmlspecialcharsbx(Option::get('sale', 'weight_koef', 1, SITE_ID)); if (empty($arParams["TEMPLATE_LOCATION"])) $arParams["TEMPLATE_LOCATION"] = ".default"; $errorMessage = ""; $arResultProps = array(); $PERSON_TYPE = (isset($_POST["PERSON_TYPE"]) ? (int)$_POST["PERSON_TYPE"] : 0); $PROFILE_ID = (isset($_POST["PROFILE_ID"]) ? (int)$_POST["PROFILE_ID"] : ''); $PROFILE_ID_OLD = (isset($_POST["PROFILE_ID_OLD"]) ? (int)$_POST["PROFILE_ID_OLD"] : ''); $PAYSYSTEM_ID = (isset($_POST["PAYSYSTEM_ID"])) ? htmlspecialcharsbx($_POST["PAYSYSTEM_ID"]) : ''; $DELIVERY_ID = (isset($_POST["DELIVERY_ID"])) ? htmlspecialcharsbx($_POST["DELIVERY_ID"]) : ''; $ORDER_DESCRIPTION = htmlspecialcharsbx(trim($_POST["ORDER_DESCRIPTION"])); $ORDER_ID = (isset($_REQUEST["ORDER_ID"]) ? (int)$_REQUEST["ORDER_ID"] : ''); $currentUserId = (int)$USER->GetID(); if ((int)$ORDER_ID <= 0) { DiscountCouponsManager::init(); /* * person type */ $arPersonTypeList = array(); $dbPersonType = CSalePersonType::GetList(array("ID" => "ASC", "NAME" => "ASC"), array("ACTIVE" => "Y", 'LID' => SITE_ID)); while ($arPersonType = $dbPersonType->GetNext()) { $arPersonType["CHECKED"] = 'N'; if ($PERSON_TYPE <= 0) { $PERSON_TYPE = $arPersonType["ID"]; $arPersonType["CHECKED"] = "Y"; } else { if (isset($_POST["PERSON_TYPE"]) && $_POST["PERSON_TYPE"] == $arPersonType["ID"]) $arPersonType["CHECKED"] = "Y"; } $arPersonTypeList[$arPersonType["ID"]] = $arPersonType; } $arResultProps["PERSON_TYPE"] = $arPersonTypeList; /* * user profile */ $arResultProps["USER_PROFILES"] = CSaleOrderUserProps::DoLoadProfiles($currentUserId, $PERSON_TYPE); $arProfileTmp = array(); if (!empty($arResultProps["USER_PROFILES"]) && is_array($arResultProps["USER_PROFILES"])) { foreach($arResultProps["USER_PROFILES"] as $key => $val) { if ($PROFILE_ID === "") { $arResultProps["USER_PROFILES"][$key]["CHECKED"] = "Y"; $PROFILE_ID = $key; } elseif ($PROFILE_ID == $key) { $arResultProps["USER_PROFILES"][$key]["CHECKED"] = "Y"; } } } else $PROFILE_ID = (int)$PROFILE_ID; /* * order props */ $userProfile = $arResultProps["USER_PROFILES"]; $arPropValues = array(); $arPropValues = $userProfile[$PROFILE_ID]["VALUES"]; $arFilter = array("PERSON_TYPE_ID" => $PERSON_TYPE, "ACTIVE" => "Y", "UTIL" => "N"); $dbProperties = CSaleOrderProps::GetList( array("SORT" => "ASC"), $arFilter, false, false, array("ID", "NAME", "TYPE", "REQUIED", "DEFAULT_VALUE", "IS_LOCATION", "PROPS_GROUP_ID", "SIZE1", "SIZE2", "DESCRIPTION", "IS_EMAIL", "IS_PROFILE_NAME", "IS_PAYER", "IS_LOCATION4TAX", "CODE", "GROUP_NAME", "GROUP_SORT", "SORT", "USER_PROPS", "IS_ZIP", "INPUT_FIELD_LOCATION", "SUBSCRIBE") ); $locationZipID = ""; $locationID = ""; $profileName = ""; $payerName = ""; $payerEMail = ""; //load location for the index if isset index $locationForZip = ""; if (isset($_REQUEST["CHANGE_ZIP"]) && $_REQUEST["CHANGE_ZIP"] == "Y") { $arFilterZip = array("PERSON_TYPE_ID" => $PERSON_TYPE, "IS_ZIP" => "Y", "ACTIVE" => "Y", "UTIL" => "N"); $dbPropertiesZip = CSaleOrderProps::GetList( array("SORT" => "ASC"), $arFilterZip, false, false, array("ID") ); $arPropZip = $dbPropertiesZip->GetNext(); $zipCode = htmlspecialcharsEx($_POST["ORDER_PROP_".$arPropZip["ID"]]); $arZip = CSaleLocation::GetByZIP($zipCode); if (is_array($arZip) && count($arZip) > 1) { $locationForZip = intval($arZip["ID"]); } } while ($arProperties = $dbProperties->GetNext()) { if ((isset($_POST["BasketOrder"]) || $requestAjax || $_REQUEST["form"] == "Y") && $PROFILE_ID_OLD == $PROFILE_ID) { $curVal = htmlspecialcharsEx($_REQUEST["ORDER_PROP_".$arProperties["ID"]]); if (intval($_REQUEST["NEW_LOCATION_".$arProperties["ID"]]) > 0) $curVal = intval($_POST["NEW_LOCATION_".$arProperties["ID"]]); } else $curVal = $arPropValues[intval($arProperties["ID"])]; $arProperties["FIELD_NAME"] = "ORDER_PROP_".$arProperties["ID"]; if ($arProperties["REQUIED"]=="Y" || $arProperties["IS_EMAIL"]=="Y" || $arProperties["IS_PROFILE_NAME"]=="Y" || $arProperties["IS_LOCATION"]=="Y" || $arProperties["IS_LOCATION4TAX"]=="Y" || $arProperties["IS_PAYER"]=="Y" || $arProperties["IS_ZIP"]=="Y") $arProperties["REQUIED_FORMATED"]="Y"; if ($arProperties["IS_PROFILE_NAME"] == "Y") $profileName = $curVal; if ($arProperties["IS_PAYER"] == "Y") $payerName = $curVal; if ($arProperties["IS_EMAIL"] == "Y") $payerEMail = $curVal; if ($arProperties["REQUIED_FORMATED"] == "Y" AND $curVal == "") $errorMessage .= str_replace("#NAME#", $arProperties["NAME"], GetMessage("SOE_EMPTY_PROP"))."<br>"; if ($arProperties["TYPE"] == "CHECKBOX") { if ($curVal=="Y" || !isset($curVal) && $arProperties["DEFAULT_VALUE"]=="Y") { $arProperties["CHECKED"] = "Y"; $arProperties["VALUE_FORMATED"] = GetMessage("SOA_Y"); } else $arProperties["VALUE_FORMATED"] = GetMessage("SOA_N"); $arProperties["SIZE1"] = ((intval($arProperties["SIZE1"]) > 0) ? $arProperties["SIZE1"] : 30); } elseif ($arProperties["TYPE"] == "TEXT") { if (strlen($curVal) <= 0) { if(strlen($arProperties["DEFAULT_VALUE"])>0 && !isset($curVal)) $arProperties["VALUE"] = $arProperties["DEFAULT_VALUE"]; elseif ($arProperties["IS_EMAIL"] == "Y") $arProperties["VALUE"] = $USER->GetEmail(); elseif ($arProperties["IS_PAYER"] == "Y") $arProperties["VALUE"] = $USER->GetFullName(); } else $arProperties["VALUE"] = $curVal; if ($arProperties["IS_ZIP"]=="Y") { $locationZipID = $arProperties["ID"]; $_POST["ORDER_PROP_".$locationZipID] = $curVal; } $arProperties["VALUE"] = htmlspecialcharsEx($arProperties["VALUE"]); $arProperties["VALUE_FORMATED"] = $arProperties["VALUE"]; } elseif ($arProperties["TYPE"] == "SELECT") { $arProperties["SIZE1"] = ((intval($arProperties["SIZE1"]) > 0) ? $arProperties["SIZE1"] : 1); $arProperties["VARIANTS"] = array(); $dbVariants = CSaleOrderPropsVariant::GetList( array("SORT" => "ASC", "NAME" => "ASC"), array("ORDER_PROPS_ID" => $arProperties["ID"]), false, false, array("*") ); $flagDefault = "N"; $nameProperty = ""; while ($arVariants = $dbVariants->GetNext()) { if ($flagDefault == "N" && $nameProperty == "") $nameProperty = $arVariants["NAME"]; if (($arVariants["VALUE"] == $curVal) || ((!isset($curVal) || $curVal == "") && ($arVariants["VALUE"] == $arProperties["DEFAULT_VALUE"]))) { $arVariants["SELECTED"] = "Y"; $arProperties["VALUE_FORMATED"] = $arVariants["NAME"]; $flagDefault = "Y"; } $arProperties["VARIANTS"][] = $arVariants; } if ($flagDefault == "N") { $arProperties["VARIANTS"][0]["SELECTED"]= "Y"; $arProperties["VARIANTS"][0]["VALUE_FORMATED"] = $nameProperty; } } elseif ($arProperties["TYPE"] == "MULTISELECT") { $arProperties["FIELD_NAME"] = "ORDER_PROP_".$arProperties["ID"].'[]'; $arProperties["SIZE1"] = ((intval($arProperties["SIZE1"]) > 0) ? $arProperties["SIZE1"] : 5); $arProperties["VARIANTS"] = array(); if (!is_array($curVal) && strlen($curVal) > 0) $curVal = explode(",", $curVal); $arDefVal = explode(",", $arProperties["DEFAULT_VALUE"]); for ($i = 0, $intCount = count($arDefVal); $i < $intCount; $i++) $arDefVal[$i] = Trim($arDefVal[$i]); $dbVariants = CSaleOrderPropsVariant::GetList( array("SORT" => "ASC"), array("ORDER_PROPS_ID" => $arProperties["ID"]), false, false, array("*") ); $i = 0; while ($arVariants = $dbVariants->GetNext()) { if ((is_array($curVal) && in_array($arVariants["VALUE"], $curVal)) || (!isset($curVal) && in_array($arVariants["VALUE"], $arDefVal))) { $arVariants["SELECTED"] = "Y"; if ($i > 0) $arProperties["VALUE_FORMATED"] .= ", "; $arProperties["VALUE_FORMATED"] .= $arVariants["NAME"]; $i++; } $arProperties["VARIANTS"][] = $arVariants; } } elseif ($arProperties["TYPE"] == "TEXTAREA") { $arProperties["SIZE2"] = ((intval($arProperties["SIZE2"]) > 0) ? $arProperties["SIZE2"] : 4); $arProperties["SIZE1"] = ((intval($arProperties["SIZE1"]) > 0) ? $arProperties["SIZE1"] : 40); $arProperties["VALUE"] = (isset($curVal) ? $curVal : $arProperties["DEFAULT_VALUE"]); $arProperties["VALUE_FORMATED"] = htmlspecialcharsEx($arProperties["VALUE"]); } elseif ($arProperties["TYPE"] == "LOCATION") { $arProperties["VARIANTS"] = array(); if (strlen($locationForZip) > 0 && $arProperties["IS_LOCATION"] == "Y") $curVal = $locationForZip; $locationID = $arProperties["ID"]; $_POST["ORDER_PROP_".$locationID] = $curVal; //enable location text if ($_REQUEST["form"] == "Y" && $arProperties["IS_LOCATION"] == "Y" && intval($arProperties["INPUT_FIELD_LOCATION"]) > 0 && isset($_REQUEST["ORDER_PROP_".$arProperties["ID"]])) { if(CSaleLocation::isLocationProMigrated()) { // now we have no had-coded type-table for locations, so turn this logic on only when there is "CITY" type // note: support only one town property? what if there are several location props with the corresponding town props? if(!CSaleLocation::checkLocationIsAboveCity($curVal)) { $bDeleteFieldLocation = intval($arProperties["INPUT_FIELD_LOCATION"]); // remove by default } else { $bDeleteFieldLocation = ''; } } else { $rsLocationsList = CSaleLocation::GetList( array(), array("ID" => $curVal), false, false, array("ID", "CITY_ID") ); $arCity = $rsLocationsList->GetNext(); if (intval($arCity["CITY_ID"]) <= 0) $bDeleteFieldLocation = ""; else $bDeleteFieldLocation = intval($arProperties["INPUT_FIELD_LOCATION"]); } } elseif ($arProperties["IS_LOCATION"] == "Y" && intval($arProperties["INPUT_FIELD_LOCATION"]) > 0) $bDeleteFieldLocation = intval($arProperties["INPUT_FIELD_LOCATION"]); $arProperties["SIZE1"] = ((intval($arProperties["SIZE1"]) > 0) ? $arProperties["SIZE1"] : 1); $locationFound = false; $dbVariants = CSaleLocation::GetList( array("SORT" => "ASC", "COUNTRY_NAME_LANG" => "ASC", "CITY_NAME_LANG" => "ASC"), array("LID" => LANGUAGE_ID), false, false, array("ID", "COUNTRY_NAME", "CITY_NAME", "SORT", "COUNTRY_NAME_LANG", "CITY_NAME_LANG") ); while ($arVariants = $dbVariants->GetNext()) { if (intval($arVariants["ID"]) == intval($curVal) || (!isset($curVal) && intval($arVariants["ID"]) == intval($arProperties["DEFAULT_VALUE"]))) { $locationFound = true; $arVariants["SELECTED"] = "Y"; $arProperties["VALUE_FORMATED"] = $arVariants["COUNTRY_NAME"].((strlen($arVariants["CITY_NAME"]) > 0) ? " - " : "").$arVariants["CITY_NAME"]; $arProperties["VALUE"] = $arVariants["ID"]; } $arVariants["NAME"] = $arVariants["COUNTRY_NAME"].((strlen($arVariants["CITY_NAME"]) > 0) ? " - " : "").$arVariants["CITY_NAME"]; $arProperties["VARIANTS"][] = $arVariants; } // this is not a COUNTRY, REGION or CITY, but must appear in $arProperties["VARIANTS"] if(CSaleLocation::isLocationProMigrated() && !$locationFound && IntVal($curVal)) { // CSaleLocation::GetById() is enought intelligent to accept modern (not-country-or-region-or-city) ID or CODE $item = CSaleLocation::GetById($curVal); if($item) { $item['NAME'] = $item["COUNTRY_NAME"].((strlen($item["CITY_NAME"]) > 0) ? " - " : "").$item["CITY_NAME"]; $item['SELECTED'] = 'Y'; $arProperties["VARIANTS"][] = $item; } } if(count($arProperties["VARIANTS"]) == 1) $arProperties["VALUE"] = $arProperties["VARIANTS"][0]["ID"]; } elseif ($arProperties["TYPE"] == "RADIO") { $arProperties["VARIANTS"] = array(); $dbVariants = CSaleOrderPropsVariant::GetList( array("SORT" => "ASC"), array("ORDER_PROPS_ID" => $arProperties["ID"]), false, false, array("*") ); while ($arVariants = $dbVariants->GetNext()) { if ($arVariants["VALUE"] == $curVal || (!isset($curVal) && $arVariants["VALUE"] == $arProperties["DEFAULT_VALUE"])) { $arVariants["CHECKED"]="Y"; $arProperties["VALUE_FORMATED"] = $arVariants["NAME"]; } $arProperties["VARIANTS"][] = $arVariants; } } if ($arProperties["TYPE"] == "CHECKBOX" && strlen($curVal) <= 0 && $arProperties["REQUIED"] != "Y") { $curVal = "N"; } if ((!empty($curVal) && is_array($curVal)) || (!is_array($curVal) && (string)$curVal != "") ) $arPropValues[$arProperties["ID"]] = $curVal; if($arProperties["USER_PROPS"]=="Y") $arResultProps["ORDER_PROPS"]["USER_PROPS_Y"][$arProperties["ID"]] = $arProperties; else $arResultProps["ORDER_PROPS"]["USER_PROPS_N"][$arProperties["ID"]] = $arProperties; } /*end order props*/ //delete prop for text location $bDeleteFieldLocation = intval($bDeleteFieldLocation); if ($bDeleteFieldLocation > 0) unset($arResultProps["ORDER_PROPS"]["USER_PROPS_Y"][$bDeleteFieldLocation]); /* * action */ if ((strlen($_REQUEST["BasketRefresh"]) > 0 OR strlen($_REQUEST["action"]) > 0)) { if(strlen($_REQUEST["action"]) > 0) { $id = intval($_REQUEST["id"]); if($id > 0) { $dbBasketItems = CSaleBasket::GetList( array("ID" => "ASC"), array( "FUSER_ID" => CSaleBasket::GetBasketUserID(), "LID" => SITE_ID, "ORDER_ID" => "NULL", "ID" => $id, ), false, false, array("ID", "CALLBACK_FUNC", "MODULE", "PRODUCT_ID", "QUANTITY", "DELAY", "CAN_BUY", "CURRENCY") ); if($arBasket = $dbBasketItems->Fetch()) { if($_REQUEST["action"] == "delete" && in_array("DELETE", $arParams["COLUMNS_LIST"])) { CSaleBasket::Delete($arBasket["ID"]); } elseif($_REQUEST["action"] == "shelve" && in_array("DELAY", $arParams["COLUMNS_LIST"])) { if ($arBasket["DELAY"] == "N" && $arBasket["CAN_BUY"] == "Y") CSaleBasket::Update($arBasket["ID"], Array("DELAY" => "Y")); } elseif($_REQUEST["action"] == "add" && in_array("DELAY", $arParams["COLUMNS_LIST"])) { if ($arBasket["DELAY"] == "Y" && $arBasket["CAN_BUY"] == "Y") CSaleBasket::Update($arBasket["ID"], Array("DELAY" => "N")); } } } } } /* * coupons */ $COUPON = ""; if ($arParams["HIDE_COUPON"] != "Y" AND isset($_REQUEST["COUPON"])) { if (isset($_REQUEST["COUPON"])) { $COUPON = (string)$_REQUEST['COUPON']; if ($COUPON === '') { DiscountCouponsManager::clear(true); } else { $arCoupons = array(); $cupons = explode(",", $COUPON); foreach($cupons as $val) { $val = trim($val); if ($val != '') $arCoupons[] = $val; } if (!empty($arCoupons)) { foreach ($arCoupons as $oneCoupon) DiscountCouponsManager::add($oneCoupon); } } } } /* * register user if to order basket */ if($_SERVER["REQUEST_METHOD"] == "POST" && isset($_POST["BasketOrder"]) AND !$USER->IsAuthorized()) { if (strlen($payerEMail) <= 0) $errorMessage .= GetMessage("STOF_ERROR_REG_EMAIL")."<br>"; elseif (!check_email($payerEMail)) $errorMessage .= GetMessage("STOF_ERROR_REG_BAD_EMAIL")."<br>"; $pos = strpos($payerEMail, "@"); $payerEMailNew = substr($payerEMail, 0, $pos); $dbUserLogin = CUser::GetByLogin($payerEMailNew); if ($arUserLogin = $dbUserLogin->Fetch()) $errorMessage .= GetMessage("STOF_ERROR_REG_UNIQUE_LOGIN")."<br>"; $rsUsers = CUser::GetList(($by="id"), ($order="desc"), array("EMAIL" => $payerEMail)); $arUser = $rsUsers->Fetch(); if (count($arUser) > 1) $errorMessage .= GetMessage("STOF_ERROR_REG_UNIQUE_EMAIL")."<br>"; if ('' == $errorMessage) { $user_id = CSaleUser::DoAutoRegisterUser($payerEMail, $payerName, SITE_ID, $arErrors, array()); if ($user_id > 0 && empty($arErrors)) { $USER->Authorize($user_id); $currentUserId = (int)$USER->GetID(); //send mail register user if ($arParams["SEND_NEW_USER_NOTIFY"] == "Y") { $userNew = str_replace("#FIO#", "(".$arUser["LOGIN"].") ".$payerName, GetMessage("NEWO_BUYER_REG_OK")); CUser::SendUserInfo($user_id, SITE_ID, $userNew, true); } } else { foreach ($arErrors as $val) $errorMessage .= $val["TEXT"]."<br>"; } } } /* * calc basket */ $arErrors = array(); $arWarnings = array(); $arShoppingCart = CSaleBasket::DoGetUserShoppingCart(SITE_ID, $currentUserId, intval(CSaleBasket::GetBasketUserID()), $arErrors); $productLimit = ""; if (strlen($_REQUEST["BasketRefresh"]) > 0 || strlen($_REQUEST["BasketOrder"]) > 0 || strlen($_REQUEST["AJAX_CALL"]) > 0) { if (in_array("QUANTITY", $arParams["COLUMNS_LIST"])) { $arSelect = array( "ID", "QUANTITY", "QUANTITY_TRACE", "CAN_BUY_ZERO" ); $arProductIDs = array(); $arNewQuantity = array(); foreach($arShoppingCart as $key => $val) { if (array_key_exists("QUANTITY_".$val["ID"], $_POST)) { $_POST["QUANTITY_".$val["ID"]] = str_replace(",", ".", $_POST["QUANTITY_".$val["ID"]]); $dblQuantity = $arParams['QUANTITY_FLOAT'] == 'Y' ? DoubleVal($_POST["QUANTITY_".$val["ID"]]) : intval($_POST["QUANTITY_".$val["ID"]]); if ($dblQuantity != $val['QUANTITY']) { if ('catalog' == $val['MODULE']) { $arProductIDs[$val["PRODUCT_ID"]] = $key; $arNewQuantity[$val["PRODUCT_ID"]] = $dblQuantity; } else { $arFields = array( "QUANTITY" => $dblQuantity ); CSaleBasket::Update($val["ID"], $arFields); } } } } if (!empty($arProductIDs) && Loader::includeModule('catalog')) { $rsProducts = CCatalogProduct::GetList( array(), array('ID' => array_keys($arProductIDs)), false, false, $arSelect ); while ($arProduct = $rsProducts->Fetch()) { if (array_key_exists($arProduct['ID'], $arProductIDs)) { $key = $arProductIDs[$arProduct['ID']]; if ($arNewQuantity[$arProduct['ID']] > $arProduct['QUANTITY'] && 'Y' == $arProduct['QUANTITY_TRACE'] && 'N' == $arProduct['CAN_BUY_ZERO']) { $arNewQuantity[$arProduct['ID']] = $arProduct['QUANTITY']; $productLimit .= GetMessage("STOF_WARNING_LIMIT_PRODUCT")." ".$arShoppingCart[$key]["NAME"]."<br>"; } if ($arNewQuantity[$arProduct['ID']] != $arShoppingCart[$key]['QUANTITY']) { $arShoppingCart[$key]['QUANTITY'] = $arNewQuantity[$arProduct['ID']]; $arFields = array( "QUANTITY" => $arNewQuantity[$arProduct['ID']], 'TYPE' => $arShoppingCart[$key]['TYPE'], 'SET_PARENT_ID' => $arShoppingCart[$key]['SET_PARENT_ID'] ); CSaleBasket::Update($arShoppingCart[$key]["ID"], $arFields); } } } } } } $arBasketItems = CSaleOrder::DoCalculateOrder( SITE_ID, $currentUserId, $arShoppingCart, $PERSON_TYPE, $arPropValues, $DELIVERY_ID, $PAYSYSTEM_ID, array(), $arErrors, $arWarnings ); if ((!empty($arErrors) || !empty($arWarnings)) && strlen($_REQUEST["AJAX_CALL"]) > 0 && !isset($_POST["BasketRefresh"])) { foreach($arErrors as $val) $errorMessage .= $val["TEXT"]."<br>"; foreach($arWarnings as $val) $errorMessage .= $val["TEXT"]."<br>"; $arErrors = array(); $arWarnings = array(); $DELIVERY_ID = ""; $PAYSYSTEM_ID = ""; $arBasketItems = CSaleOrder::DoCalculateOrder( SITE_ID, $currentUserId, $arShoppingCart, $PERSON_TYPE, $arPropValues, $DELIVERY_ID, $PAYSYSTEM_ID, array(), $arErrors, $arWarnings ); } /*********************************************************/ /*********************** SAVE ****************************/ /*********************************************************/ $ORDER_ID = ""; if($_SERVER["REQUEST_METHOD"] == "POST" && isset($_POST["BasketOrder"]) AND strlen($errorMessage) <= 0 AND check_bitrix_sessid()) { if (!empty($arWarnings)) { foreach ($arWarnings as $val) $errorMessage .= $val["TEXT"]."<br>"; } if (!empty($arErrors)) { foreach ($arErrors as $val) $errorMessage .= $val["TEXT"]."<br>"; } if ($PAYSYSTEM_ID == "") $errorMessage .= GetMessage("SBB_ERR_PAYSYSTEM")."<br>"; if ('' == $errorMessage) { $arAdditionalFields = array( "LID" => SITE_ID, "STATUS_ID" => "N", "PAYED" => "N", "CANCELED" => "N", "USER_DESCRIPTION" => $ORDER_DESCRIPTION, ); $affiliateID = CSaleAffiliate::GetAffiliate(); if ($affiliateID > 0) { $dbAffiliat = CSaleAffiliate::GetList(array(), array("SITE_ID" => SITE_ID, "ID" => $affiliateID)); $arAffiliates = $dbAffiliat->Fetch(); if (count($arAffiliates) > 1) $arAdditionalFields["AFFILIATE_ID"] = $affiliateID; } else $arAdditionalFields["AFFILIATE_ID"] = false; $ORDER_ID = CSaleOrder::DoSaveOrder($arBasketItems, $arAdditionalFields, 0, $arErrors); if ($ORDER_ID > 0 && empty($arErrors)) { CSaleBasket::OrderBasket($ORDER_ID, CSaleBasket::GetBasketUserID(), SITE_ID, false); /*send mail order*/ $strOrderList = ""; foreach ($arBasketItems["BASKET_ITEMS"] as $val) { if (CSaleBasketHelper::isSetItem($val)) continue; $strOrderList .= $val["NAME"]." - ".$val["QUANTITY"]." ".GetMessage("SOA_SHT").": ".SaleFormatCurrency($val["PRICE"], $arBasketItems["CURRENCY"]); $strOrderList .= "\n"; } $arFields = array( "ORDER_ID" => $ORDER_ID, "ORDER_DATE" => Date($DB->DateFormatToPHP(CLang::GetDateFormat("SHORT", SITE_ID))), "ORDER_USER" => ( (strlen($payerName) > 0) ? $payerName : $USER->GetFullName() ), "PRICE" => SaleFormatCurrency($arBasketItems["PRICE"], $arBasketItems["CURRENCY"]), "BCC" => COption::GetOptionString("sale", "order_email", "order@".$SERVER_NAME), "EMAIL" => (strlen($payerEMail)>0 ? $payerEMail : $USER->GetEmail()), "ORDER_LIST" => $strOrderList, "SALE_EMAIL" => COption::GetOptionString("sale", "order_email", "order@".$SERVER_NAME), "DELIVERY_PRICE" => $arBasketItems["PRICE_DELIVERY"], ); $eventName = "SALE_NEW_ORDER"; $bSend = true; foreach (GetModuleEvents("sale", "OnOrderNewSendEmail", true) as $arEvent) { if (ExecuteModuleEventEx($arEvent, Array($ORDER_ID, &$eventName, &$arFields))===false) $bSend = false; } if($bSend) { $event = new CEvent; $event->Send($eventName, SITE_ID, $arFields, "N"); } /*end mail*/ CSaleMobileOrderPush::send("ORDER_CREATED", array("ORDER_ID" => $arFields["ORDER_ID"])); if (Loader::includeModule("statistic")) { $event1 = "eStore"; $event2 = "order_confirm"; $event3 = $arResult["ORDER_ID"]; $e = $event1."/".$event2."/".$event3; if(!is_array($_SESSION["ORDER_EVENTS"]) || (is_array($_SESSION["ORDER_EVENTS"]) && !in_array($e, $_SESSION["ORDER_EVENTS"]))) { CStatistic::Set_Event($event1, $event2, $event3); $_SESSION["ORDER_EVENTS"][] = $e; } } $urlError = ""; if ($PAYSYSTEM_ID == "account") { if (!CSaleUserAccount::DoPayOrderFromAccount($currentUserId, $arBasketItems["CURRENCY"], $ORDER_ID, $arBasketItems["PRICE"], array(), $arErrors)) { $urlError = "&erraccount=y"; } } CSaleOrderUserProps::DoSaveUserProfile($currentUserId, $PROFILE_ID, $profileName, $PERSON_TYPE, $arPropValues, $arErrors); LocalRedirect($APPLICATION->GetCurPageParam("ORDER_ID=".$ORDER_ID.$urlError, Array("ORDER_ID", "action", "id"))); } elseif (!empty($arErrors)) { foreach($arErrors as $val) $errorMessage .= $val."<br>"; } } } else { if (!isset($_POST["BasketOrder"])) $errorMessage = ""; } /*********************************************************/ /******************** take basket ************************/ /*********************************************************/ CSaleBasket::UpdateBasketPrices(CSaleBasket::GetBasketUserID(), SITE_ID); $dbDelayBasketItems = CSaleBasket::GetList( array("ID" => "ASC"), array( "FUSER_ID" => CSaleBasket::GetBasketUserID(), "LID" => SITE_ID, "ORDER_ID" => "NULL", ), false, false, array("*") ); $arBasketItems["BASKET_ITEMS"] = array(); $arSetParentWeight = array(); while ($arItems = $dbDelayBasketItems->GetNext()) { $arItems['QUANTITY'] = $arParams['QUANTITY_FLOAT'] == 'Y' ? number_format(DoubleVal($arItems['QUANTITY']), 2, '.', '') : intval($arItems['QUANTITY']); $arBasketItems["BASKET_ITEMS"][] = $arItems; if (CSaleBasketHelper::isSetItem($arItems)) $arSetParentWeight[$arItems["SET_PARENT_ID"]] += $arItems["WEIGHT"] * $arItems['QUANTITY']; } // count weight for set parent products foreach ($arBasketItems["BASKET_ITEMS"] as &$arItems) { if (CSaleBasketHelper::isSetParent($arItems)) $arItems["WEIGHT"] = $arSetParentWeight[$arItems["ID"]] / $arItems["QUANTITY"]; } unset($arItems); if (!isset($arBasketItems["TAX_VALUE"]) || $arBasketItems["TAX_VALUE"] == "") $arBasketItems["TAX_VALUE"] = 0; if (is_array($arBasketItems)) { foreach ($arBasketItems as $key => $val) { if (CSaleBasketHelper::isSetItem($val)) continue; if ($key != "BASKET_ITEMS") { $arResult[$key] = $val; if ($key == "PRICE" OR $key == "VAT_SUM" OR $key == "DISCOUNT_PRICE" OR $key == "DISCOUNT_VALUE" OR $key == "PRICE_DELIVERY" OR $key == "TAX_VALUE" OR $key == "ORDER_PRICE") $arResult[$key."_FORMATED"] = SaleFormatCurrency($val, $arBasketItems["CURRENCY"]); if ($key == "QUANTITY") $arResult[$key."_FORMATED"] = $arParams['QUANTITY_FLOAT'] == 'Y' ? number_format(DoubleVal($val), 2, '.', '') : intval($val); if ($key == "ORDER_WEIGHT") $arResult[$key."_FORMATED"] = DoubleVal($val/$arParams["WEIGHT_KOEF"])." ".$arParams["WEIGHT_UNIT"]; if ($key == "DISCOUNT_PERCENT") $arResult["DISCOUNT_PERCENT_FORMATED"] = DoubleVal($val)."%"; } } }//end if is_array $arResult["ITEMS"]["AnDelCanBuy"] = Array(); $arResult["ITEMS"]["DelDelCanBuy"] = Array(); $arResult["ITEMS"]["nAnCanBuy"] = Array(); $arResult["ITEMS"]["AnSubscribe"] = Array(); $DISCOUNT_PRICE_ALL = 0; $boolIBlock = Loader::includeModule('iblock'); if (is_array($arBasketItems["BASKET_ITEMS"])) { foreach ($arBasketItems["BASKET_ITEMS"] as $key => $val) { if (CSaleBasketHelper::isSetItem($val)) continue; $val['QUANTITY'] = $arParams['QUANTITY_FLOAT'] == 'Y' ? number_format(DoubleVal($val['QUANTITY']), 2, '.', '') : intval($val['QUANTITY']); $val["VAT_VALUE_FORMATED"] = SaleFormatCurrency($val["VAT_VALUE"], $val["CURRENCY"]); $val["PRICE_FORMATED"] = SaleFormatCurrency($val["PRICE"], $val["CURRENCY"]); $val["WEIGHT"] = DoubleVal($val["WEIGHT"]); $val["WEIGHT_FORMATED"] = DoubleVal($val["WEIGHT"]/$arParams["WEIGHT_KOEF"])." ".$arParams["WEIGHT_UNIT"]; $val["DISCOUNT_PRICE_PERCENT"] = $val["DISCOUNT_PRICE"]*100 / ($val["DISCOUNT_PRICE"] + $val["PRICE"]); $val["DISCOUNT_PRICE_PERCENT_FORMATED"] = roundEx($val["DISCOUNT_PRICE_PERCENT"], SALE_VALUE_PRECISION)."%"; $val["DETAIL_PAGE_URL"] = ''; $val["CREATED_BY"] = 0; $val["IBLOCK_ID"] = 0; $val["IBLOCK_SECTION_ID"] = 0; $val["PREVIEW_PICTURE"] = 0; $val["DETAIL_PICTURE"] = 0; $val["PREVIEW_TEXT"] = ''; $val["DETAIL_TEXT"] = ''; if ($boolIBlock) { $arIBlockElement = GetIBlockElement($val["PRODUCT_ID"]); $val["DETAIL_PAGE_URL"] = $arIBlockElement["DETAIL_PAGE_URL"]; $val["CREATED_BY"] = $arIBlockElement["CREATED_BY"]; $val["IBLOCK_ID"] = $arIBlockElement["IBLOCK_ID"]; $val["IBLOCK_SECTION_ID"] = $arIBlockElement["IBLOCK_SECTION_ID"]; $val["PREVIEW_PICTURE"] = $arIBlockElement["PREVIEW_PICTURE"]; $val["DETAIL_PICTURE"] = $arIBlockElement["DETAIL_PICTURE"]; $val["PREVIEW_TEXT"] = $arIBlockElement["PREVIEW_TEXT"]; $val["DETAIL_TEXT"] = $arIBlockElement["DETAIL_TEXT"]; } $val["PROPS"] = Array(); if(in_array("PROPS", $arParams["COLUMNS_LIST"]) && $val["ID"] > 0) { $dbProp = CSaleBasket::GetPropsList(Array("SORT" => "ASC", "ID" => "ASC"), Array("BASKET_ID" => $val["ID"], "!CODE" => array("CATALOG.XML_ID", "PRODUCT.XML_ID"))); while($arProp = $dbProp -> GetNext()) $val["PROPS"][] = $arProp; } if ($val["DELAY"] == "N" && $val["CAN_BUY"] == "Y") { $arResult["ITEMS"]["AnDelCanBuy"][] = $val; $DISCOUNT_PRICE_ALL += $val["DISCOUNT_PRICE"] * $val["QUANTITY"]; } if ($val["DELAY"] == "Y" && $val["CAN_BUY"] == "Y") $arResult["ITEMS"]["DelDelCanBuy"][] = $val; if ($val["CAN_BUY"] == "N" && $val["SUBSCRIBE"] == "N") $arResult["ITEMS"]["nAnCanBuy"][] = $val; if ($val["CAN_BUY"] == "N" && $val["SUBSCRIBE"] == "Y") $arResult["ITEMS"]["AnSubscribe"][] = $val; } }//end if is_array if (is_array($arBasketItems["BASKET_ITEMS"])) { $DISCOUNT_PRICE_ALL += $arBasketItems["DISCOUNT_PRICE"]; $arResult["DISCOUNT_PRICE_ALL"] = $DISCOUNT_PRICE_ALL; $arResult["DISCOUNT_PRICE_ALL_FORMATED"] = SaleFormatCurrency($DISCOUNT_PRICE_ALL, $arResult["CURRENCY"]); $arResult["PERSON_TYPE"] = $arResultProps["PERSON_TYPE"]; $arResult["USER_PROFILES"] = $arResultProps["USER_PROFILES"]; $arResult["ORDER_PROPS"]["USER_PROPS_Y"] = $arResultProps["ORDER_PROPS"]["USER_PROPS_Y"]; $arResult["ORDER_PROPS"]["USER_PROPS_N"] = $arResultProps["ORDER_PROPS"]["USER_PROPS_N"]; /* * delivery */ $location = $_POST["ORDER_PROP_".$locationID]; $locationZip = $_POST["ORDER_PROP_".$locationZipID]; $arDelivery = CSaleDelivery::DoLoadDelivery($location, $locationZip, $arResult["ORDER_WEIGHT"], $arResult["PRICE"], $arResult["CURRENCY"], SITE_ID); $arDeliveryResult = array(); $deliveryCheckDesc = ""; $arDeliveryResult[] = array("CHECKED" => "Y", "ID" => "", "TITLE" => GetMessage("SBB_SELECT_DELIVERY")); if (!empty($arDelivery)) { foreach($arDelivery as $val) { $arFields = array(); if (isset($val["PROFILES"])) { foreach($val["PROFILES"] as $k => $v) { $arFields = array(); if ($v["ID"] == $DELIVERY_ID) { $arFields["CHECKED"] = "Y"; $arDeliveryResult[0]["CHECKED"] = "N"; $arFields["DELIVERY_PRICE"] = $arResult["DELIVERY_PRICE"]; $deliveryCheckDesc = $val["DESCRIPTION"]; } $arFields["ID"] = $v["ID"]; $arFields["TITLE"] = $val["TITLE"]." (".$v["TITLE"].")"; $arFields["DESCRIPTION"] = $val["DESCRIPTION"]; $arDeliveryResult[] = $arFields; } } else { if ($val["ID"] == $_POST["DELIVERY_ID"]) { $arFields["CHECKED"] = "Y"; $arDeliveryResult[0]["CHECKED"] = "N"; $arFields["DELIVERY_PRICE"] = $arResult["DELIVERY_PRICE"]; $deliveryCheckDesc = $val["DESCRIPTION"]; if (isset($val["PERIOD_TEXT"]) AND $val["PERIOD_TEXT"] != "") { if ($val["DESCRIPTION"] != "") $deliveryCheckDesc .= "<br>"; $deliveryCheckDesc .= $val["PERIOD_TEXT"]; } } $arFields["ID"] = $val["ID"]; $arFields["TITLE"] = $val["NAME"]; $arFields["DESCRIPTION"] = $val["DESCRIPTION"]; $arDeliveryResult[] = $arFields; } } } $arResult["DELIVERY"] = $arDeliveryResult; $arResult["DELIVERY_CHECHED_DESC"] = $deliveryCheckDesc; /* * paysystem */ $userAccount = ""; $dbUserAccount = CSaleUserAccount::GetList( array(), array( "USER_ID" => $currentUserId, "CURRENCY" => $arResult["CURRENCY"], "LOCKED" => "N" ) ); if ($arUserAccount = $dbUserAccount->GetNext()) { if (DoubleVal($arUserAccount["CURRENT_BUDGET"]) > 0) $userAccount = SaleFormatCurrency($arUserAccount["CURRENT_BUDGET"], $arResult["CURRENCY"]); } $arPaySystem = CSalePaySystem::DoLoadPaySystems($PERSON_TYPE); $arNewPaySystem = array(); $paysystemDesc = ""; $arNewPaySystem[0] = array("ID" => "", "NAME" => GetMessage("SBB_SELECT_PAYSYSTEM"), "CHECKED" => "Y"); foreach($arPaySystem as $key => $val) { $arNewPaySystem[$key]["ID"] = $val["ID"]; $arNewPaySystem[$key]["NAME"] = $val["NAME"]; $arNewPaySystem[$key]["DESCRIPTION"] = $val["DESCRIPTION"]; $arNewPaySystem[$key]["ACTIVE"] = $val["ACTIVE"]; if ($_POST["PAYSYSTEM_ID"] == $key) { $arNewPaySystem[$key]["CHECKED"] = "Y"; $arNewPaySystem[0]["CHECKED"] = "N"; $paysystemDesc = $val["DESCRIPTION"]; } } //add pay from account if ('' != $userAccount) { $arUserAccount = array(); $arUserAccount["ID"] = "account"; $arUserAccount["NAME"] = GetMessage("SBB_PAY_USER_ACCOUNT"); $arUserAccount["DESCRIPTION"] = GetMessage("SBB_USER_ACCOUNT").$userAccount; if ($PAYSYSTEM_ID == "account") { $arUserAccount["CHECKED"] = "Y"; $paysystemDesc = GetMessage("SBB_USER_ACCOUNT")."<b>".$userAccount."</b>"; } $arNewPaySystem[] = $arUserAccount; } $arResult["PAYSYSTEM"] = $arNewPaySystem; $arResult["PAYSYSTEM_CHECKED_DESC"] = $paysystemDesc; /* * show order props */ if (isset($display_props) AND $display_props == "block") $arParams['SHOW_BASKET_ORDER'] = "Y"; if (isset($display_props) AND $display_props == "none") $arParams['SHOW_BASKET_ORDER'] = "N"; $arResult["ORDER_DESCRIPTION"] = $ORDER_DESCRIPTION; if (strlen($COUPON) > 0) $arResult["COUPON"] = htmlspecialcharsEx($COUPON); $arOrderForDiscount = array( 'SITE_ID' => SITE_ID, 'USER_ID' => $currentUserId, 'ORDER_PRICE' => $arResult['ORDER_PRICE'], 'ORDER_WEIGHT' => $arResult["ORDER_WEIGHT"], 'PRICE_DELIVERY' => $arResult["DELIVERY_PRICE"], 'BASKET_ITEMS' => $arResult["ITEMS"]["AnDelCanBuy"], "PERSON_TYPE_ID" => $arUserResult['PERSON_TYPE_ID'], "PAY_SYSTEM_ID" => $arUserResult["PAY_SYSTEM_ID"], "DELIVERY_ID" => $arUserResult["DELIVERY_ID"], ); $arDiscountOptions = array(); $arDiscountErrors = array(); CSaleDiscount::DoProcessOrder($arOrderForDiscount, $arDiscountOptions, $arDiscountErrors); $allSum = 0; $allVatSumm = 0; $allVatRate = 0; foreach ($arOrderForDiscount['BASKET_ITEMS'] as &$arOneItem) { $arOneItem["PRICE_FORMATED"] = SaleFormatCurrency($arOneItem["PRICE"], $arOneItem["CURRENCY"]); $arOneItem["DISCOUNT_PRICE_PERCENT"] = $arOneItem["DISCOUNT_PRICE"]*100 / ($arOneItem["DISCOUNT_PRICE"] + $arOneItem["PRICE"]); $arOneItem["DISCOUNT_PRICE_PERCENT_FORMATED"] = roundEx($arOneItem["DISCOUNT_PRICE_PERCENT"], SALE_VALUE_PRECISION)."%"; $allSum += ($arOneItem["PRICE"] * $arOneItem["QUANTITY"]); $allVatSumm += 0; if (0 < $arOneItem["VAT_RATE"]) { $arResult["bUsingVat"] = "Y"; if ($arOneItem["VAT_RATE"] > $allVatRate) $allVatRate = $arOneItem["VAT_RATE"]; $arOneItem["VAT_VALUE"] = (($arOneItem["PRICE"] / ($arOneItem["VAT_RATE"] +1)) * $arOneItem["VAT_RATE"]); $allVatSumm += roundEx($arOneItem["VAT_VALUE"] * $arOneItem["QUANTITY"], SALE_VALUE_PRECISION); } } if (isset($arOneItem)) unset($arOneItem); $arResult["ORDER_PRICE"] = $allSum; $arResult["ORDER_PRICE_FORMATED"] = SaleFormatCurrency($arResult["ORDER_PRICE"], $arResult["BASE_LANG_CURRENCY"]); $arResult["VAT_RATE"] = $allVatRate; $arResult["VAT_SUM"] = $allVatSumm; $arResult["VAT_SUM_FORMATED"] = SaleFormatCurrency($arResult["VAT_SUM"], $arResult["BASE_LANG_CURRENCY"]); $arResult['DELIVERY_PRICE'] = $arOrderForDiscount['PRICE_DELIVERY']; $arResult['DELIVERY_PRICE_FORMATED'] = SaleFormatCurrency($arResult["DELIVERY_PRICE"], $arResult["BASE_LANG_CURRENCY"]); $arResult["ITEMS"]["AnDelCanBuy"] = $arOrderForDiscount['BASKET_ITEMS']; }//end if array basket if(empty($arBasketItems)) $arResult["ERROR_MESSAGE"] = GetMessage("SALE_EMPTY_BASKET"); if (!isset($_POST["BasketOrder"])) $errorMessage = ""; $errorMessage .= $productLimit; $arResult["ERROR_MESSAGE"] = $errorMessage; }//end of ORDER_ID <= 0 else { $arResult["ORDER_BASKET"]["CONFIRM_ORDER"] = "Y"; $arResult["ORDER_BASKET"]["ORDER_ID"] = intval($ORDER_ID); $arResult["ORDER_ID"] = intval($ORDER_ID); $dbOrder = CSaleOrder::GetList( array("DATE_UPDATE" => "DESC"), array( "LID" => SITE_ID, "USER_ID" => $currentUserId, "ID" => $arResult["ORDER_BASKET"]["ORDER_ID"] ) ); if ($arOrder = $dbOrder->GetNext()) { if (intval($arOrder["PAY_SYSTEM_ID"]) > 0) { $dbPaySysAction = CSalePaySystemAction::GetList( array(), array( "PAY_SYSTEM_ID" => $arOrder["PAY_SYSTEM_ID"], "PERSON_TYPE_ID" => $arOrder["PERSON_TYPE_ID"] ), false, false, array("NAME", "ACTION_FILE", "NEW_WINDOW", "PARAMS", "ENCODING") ); if ($arPaySysAction = $dbPaySysAction->Fetch()) { $arPaySysAction["NAME"] = htmlspecialcharsEx($arPaySysAction["NAME"]); if (strlen($arPaySysAction["ACTION_FILE"]) > 0) { if ($arPaySysAction["NEW_WINDOW"] != "Y") { CSalePaySystemAction::InitParamArrays($arOrder, $arOrder["ID"], $arPaySysAction["PARAMS"]); $pathToAction = $_SERVER["DOCUMENT_ROOT"].$arPaySysAction["ACTION_FILE"]; $pathToAction = str_replace("\\", "/", $pathToAction); while (substr($pathToAction, strlen($pathToAction) - 1, 1) == "/") $pathToAction = substr($pathToAction, 0, strlen($pathToAction) - 1); if (file_exists($pathToAction)) { if (is_dir($pathToAction) && file_exists($pathToAction."/payment.php")) $pathToAction .= "/payment.php"; $arPaySysAction["PATH_TO_ACTION"] = $pathToAction; } if(strlen($arPaySysAction["ENCODING"]) > 0) { define("BX_SALE_ENCODING", $arPaySysAction["ENCODING"]); AddEventHandler("main", "OnEndBufferContent", "ChangeEncoding"); function ChangeEncoding($content) { global $APPLICATION; header("Content-Type: text/html; charset=".BX_SALE_ENCODING); $content = $APPLICATION->ConvertCharset($content, SITE_CHARSET, BX_SALE_ENCODING); $content = str_replace("charset=".SITE_CHARSET, "charset=".BX_SALE_ENCODING, $content); } } } } $arResult["PAY_SYSTEM"] = $arPaySysAction; } } $arResult["ORDER"] = $arOrder; if (isset($_GET["erraccount"]) AND $_GET["erraccount"] == "y") { $arResult["ERR_ACCOUNT"] = "Y"; } } } if (!$requestAjax) CJSCore::Init(array('fx', 'popup', 'window', 'ajax')); $this->IncludeComponentTemplate(); if ($requestAjax) die();