Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- }elseif($_GET["act"] === "fastBack"){
- if(!empty($_GET["phone"]) && !empty($_GET["id"])){
- if(CModule::IncludeModule("iblock") && CModule::IncludeModule("sale")){
- $OPTION_CURRENCY = CCurrency::GetBaseCurrency();
- $arElement = CIBlockElement::GetByID(intval($_GET["id"]))->GetNext();
- if(!empty($arElement)){
- $arPrice = CCatalogProduct::GetOptimalPrice($arElement["ID"], 1, $USER->GetUserGroupArray(), "N");
- if (!empty($arPrice)) {
- $arElement["~PRICE"] = $arElement["PRICE"] = $arPrice["RESULT_PRICE"]["DISCOUNT_PRICE"];
- $arElement["PRICE"] = CurrencyFormat($arElement["PRICE"], $arPrice["RESULT_PRICE"]["CURRENCY"]);
- }
- $postMess = CEventMessage::GetList($by = "site_id", $order = "desc", array("TYPE" => "SALE_DRESSCODE_FASTBACK_SEND"))->GetNext();
- if(empty($postMess)){
- $MESSAGE = "<h3>С сайта #SITE# поступил новый заказ в 1 клик. </h3> <p> Товар: <b>#PRODUCT#</b> <br /> Имя: <b>#NAME#</b> <br /> Телефон: <b>#PHONE#</b> <br /> Ссылка: #PRODUCT_URL# <br /> Комментарий: #COMMENT#";
- $FIELDS = "#SITE# \n #PRODUCT# \n #NAME# \n #PHONE# \n #COMMENT# \n";
- $et = new CEventType;
- $et->Add(
- array(
- "LID" => "ru",
- "EVENT_NAME" => "SALE_DRESSCODE_FASTBACK_SEND",
- "NAME" => "Купить в один клик",
- "DESCRIPTION" => $FIELDS
- )
- );
- $arr["ACTIVE"] = "Y";
- $arr["EVENT_NAME"] = "SALE_DRESSCODE_FASTBACK_SEND";
- $arr["LID"] = SITE_ID;
- $arr["EMAIL_FROM"] = COption::GetOptionString('main', 'email_from', 'webmaster@webmaster.com');
- $arr["EMAIL_TO"] = COption::GetOptionString("sale", "order_email");
- $arr["BCC"] = COption::GetOptionString("main", 'email_from', 'webmaster@webmaster.com');
- $arr["SUBJECT"] = "Покупка товара в один клик";
- $arr["BODY_TYPE"] = "html";
- $arr["MESSAGE"] = $MESSAGE;
- $emess = new CEventMessage;
- $emess->Add($arr);
- }
- $PRODUCT_URL = "<a href=";
- $PRODUCT_URL .= (CMain::IsHTTPS()) ? "https://" : "http://";
- $PRODUCT_URL .= SITE_SERVER_NAME.$arElement["DETAIL_PAGE_URL"];
- $PRODUCT_URL .= "\">".$arElement["NAME"]."</a>";
- $arMessage = array(
- "SITE" => SITE_SERVER_NAME,
- "PRODUCT" => $arElement["NAME"]." (ID:".$arElement["ID"]." )"." - ".$arElement["PRICE"],
- "PRODUCT_URL" => $PRODUCT_URL,
- "NAME" => BX_UTF != 1 ? iconv("UTF-8","windows-1251//IGNORE", htmlspecialcharsbx($_GET["name"])) : htmlspecialcharsbx($_GET["name"]),
- "PHONE" => BX_UTF != 1 ? iconv("UTF-8","windows-1251//IGNORE", htmlspecialcharsbx($_GET["phone"])) : htmlspecialcharsbx($_GET["phone"]),
- "COMMENT" => BX_UTF != 1 ? iconv("UTF-8","windows-1251//IGNORE", htmlspecialcharsbx($_GET["message"])) : htmlspecialcharsbx($_GET["message"])
- );
- CEvent::SendImmediate("SALE_DRESSCODE_FASTBACK_SEND", htmlspecialcharsbx($_GET["SITE_ID"]), $arMessage, "Y", false);
- // NEW ORDER
- $getPersonType = CSalePersonType::GetList(Array("SORT" => "ASC"), Array("LID" => htmlspecialcharsbx($_GET["SITE_ID"]), "ACTIVE" => "Y"));
- if ($arPersonItem = $getPersonType->Fetch()){
- $USER_ID = intval($USER->GetID());
- if($USER_ID == 0){
- $rsUser = CUser::GetByLogin("unregistered");
- $arUser = $rsUser->Fetch();
- if(!empty($arUser)){
- $USER_ID = $arUser["ID"];
- }else{
- $newUser = new CUser;
- $newPass = rand(0, 999999999);
- $arUserFields = Array(
- "NAME" => "unregistered",
- "LAST_NAME" => "unregistered",
- "EMAIL" => "unregistered@unregistered.com",
- "LOGIN" => "unregistered",
- "LID" => "ru",
- "ACTIVE" => "Y",
- "GROUP_ID" => array(),
- "PASSWORD" => $newPass,
- "CONFIRM_PASSWORD" => $newPass,
- );
- $USER_ID = $newUser->Add($arUserFields);
- }
- }
- //paysystem
- $db_ptype = CSalePaySystem::GetList($arOrder = Array("SORT" => "ASC", "PSA_NAME" => "ASC"),
- Array("ACTIVE" => "Y", "PERSON_TYPE_ID" => $arPersonItem["ID"])
- );
- if ($ptype = $db_ptype->Fetch()){
- //delivery
- $db_dtype = CSaleDelivery::GetList(
- array(
- "SORT" => "ASC",
- "NAME" => "ASC"
- ),
- array(
- "LID" => htmlspecialcharsbx($_GET["SITE_ID"]),
- "ACTIVE" => "Y",
- ),
- false,
- false,
- array()
- );
- if ($ar_dtype = $db_dtype->Fetch()){
- CSaleBasket::DeleteAll(CSaleBasket::GetBasketUserID(), False);
- // CSaleBasket::GetBasketUserID()
- Add2BasketByProductID(
- $arElement["ID"],
- 1,
- array(),
- array()
- );
- $arID = array();
- $giftComponentResult = NULL;
- $arBasketOrder = array("PRICE" => "ASC");
- $arBasketUser = array("FUSER_ID" => CSaleBasket::GetBasketUserID(), "LID" => $_GET["SITE_ID"], "ORDER_ID" => "NULL");
- $arBasketSelect = array("ID", "CALLBACK_FUNC", "MODULE", "PRODUCT_ID", "QUANTITY", "DELAY",
- "CAN_BUY", "PRICE", "WEIGHT", "NAME", "CURRENCY", "CATALOG_XML_ID", "VAT_RATE",
- "NOTES", "DISCOUNT_PRICE", "PRODUCT_PROVIDER_CLASS", "DIMENSIONS", "TYPE", "SET_PARENT_ID", "DETAIL_PAGE_URL", "*"
- );
- $dbBasketItems = CSaleBasket::GetList($arBasketOrder, $arBasketUser, false, false, $arBasketSelect);
- $arResult["SUM"] = 0;
- $arResult["ORDER_WEIGHT"] = 0;
- $arResult["SUM_DELIVERY"] = 0;
- $arResult["MAX_DIMENSIONS"] = array();
- $arResult["ITEMS_DIMENSIONS"] = array();
- while ($arItems = $dbBasketItems->Fetch()){
- CSaleBasket::UpdatePrice(
- $arItems["ID"],
- $arItems["CALLBACK_FUNC"],
- $arItems["MODULE"],
- $arItems["PRODUCT_ID"],
- $arItems["QUANTITY"],
- "N",
- CSaleBasket::GetProductProvider($arItems)
- );
- array_push($arID, $arItems["ID"]);
- $arDim = $arItems["DIMENSIONS"] = $arItems["~DIMENSIONS"];
- if(is_array($arDim)){
- $arResult["MAX_DIMENSIONS"] = CSaleDeliveryHelper::getMaxDimensions(
- array(
- $arDim["WIDTH"],
- $arDim["HEIGHT"],
- $arDim["LENGTH"]
- ),
- $arResult["MAX_DIMENSIONS"]);
- $arResult["ITEMS_DIMENSIONS"][] = $arDim;
- }
- }
- $dbBasketItems = CSaleBasket::GetList(
- $arBasketOrder,
- array(
- "ID" => $arID,
- "ORDER_ID" => "NULL"
- ),
- false,
- false,
- $arBasketSelect
- );
- while ($arItems = $dbBasketItems->Fetch()){
- $arResult["SUM"] += ($arItems["PRICE"] * $arItems["QUANTITY"]);
- $arResult["ORDER_WEIGHT"] += ($arItems["WEIGHT"] * $arItems["QUANTITY"]);
- $arResult["ITEMS"][$arItems["PRODUCT_ID"]] = $arItems;
- $arResult["ID"][] = $arItems["PRODUCT_ID"];
- }
- $arOrderProps = array();
- $arWarnings = array();
- $arErrors = array();
- $db_props = CSaleOrderProps::GetList(
- array("SORT" => "ASC"),
- array(
- "PERSON_TYPE_ID" => $arPersonItem["ID"],
- "UTIL" => "N"
- ),
- false,
- false,
- array()
- );
- while ($props = $db_props->Fetch()){
- if($props["IS_PROFILE_NAME"] == "Y"){
- $arOrderProps[$props["ID"]] = BX_UTF != 1 ? iconv("UTF-8","windows-1251//IGNORE", htmlspecialcharsbx($_GET["name"])) : htmlspecialcharsbx($_GET["name"]);
- }else if(strtoupper($props["CODE"]) == "TELEPHONE" || strtoupper($props["CODE"]) == "PHONE" || $props["IS_PHONE"] == "Y"){
- $arOrderProps[$props["ID"]] = BX_UTF != 1 ? iconv("UTF-8","windows-1251//IGNORE", htmlspecialcharsbx($_GET["phone"])) : htmlspecialcharsbx($_GET["phone"]);
- }
- }
- $arOrderDat = CSaleOrder::DoCalculateOrder(
- htmlspecialcharsbx($_GET["SITE_ID"]),
- !empty($USER_ID) ? $USER_ID : IntVal($USER->GetID()),
- $arResult["ITEMS"],
- $arPersonItem["ID"],
- $arOrderProps,
- $ar_dtype["ID"],
- $ptype["ID"],
- array(),
- $arErrors,
- $arWarnings
- );
- if(empty($arErrors)){
- $arOrderFields = array(
- "LID" => htmlspecialcharsbx($_GET["SITE_ID"]),
- "PERSON_TYPE_ID" => $arPersonItem["ID"],
- "PAYED" => "N",
- "CANCELED" => "N",
- "STATUS_ID" => "N",
- "PRICE" => $arElement["~PRICE"],
- "CURRENCY" => $OPTION_CURRENCY,
- "USER_ID" => !empty($USER_ID) ? $USER_ID : IntVal($USER->GetID()),
- "PAY_SYSTEM_ID" => $ptype["ID"],
- "PRICE_DELIVERY" => 0,
- "DELIVERY_ID" => $ar_dtype["ID"],
- "DISCOUNT_VALUE" => 0,
- "TAX_VALUE" => 0.0,
- "USER_DESCRIPTION" => BX_UTF != 1 ? iconv("UTF-8","windows-1251//IGNORE", htmlspecialcharsbx($_GET["message"])) : htmlspecialcharsbx($_GET["message"])
- );
- $ORDER_ID = (int)CSaleOrder::DoSaveOrder($arOrderDat, $arOrderFields, 0, $arResult["ERROR"]);
- if(!empty($arResult["ERROR"])){
- $result = array(
- "heading" => "Ошибка",
- "message" => "Ошибка, заказ не создан!",
- "success" => false
- );
- }
- }else{
- $result = array(
- "heading" => "Ошибка",
- "message" => "Ошибка, заказ не создан!",
- "success" => false
- );
- }
- CSaleBasket::OrderBasket($ORDER_ID, $USER_ID, $_GET["SITE_ID"]);
- }else{
- $result = array(
- "heading" => "Ошибка",
- "message" => "Ошибка, служба доставки не создана!",
- "success" => false
- );
- }
- }else{
- $result = array(
- "heading" => "Ошибка",
- "message" => "Ошибка, платежная система не создана!",
- "success" => false
- );
- }
- }
- if(empty($result)){
- $result = array(
- "heading" => "Ваш заказ успешно отправлен",
- "message" => "В ближайшее время Вам перезвонит наш менеджер для уточнения деталей заказа.",
- "success" => true
- );
- }
- }else{
- $result = array(
- "heading" => "Ошибка",
- "message" => "Ошибка, товар не найден!",
- "success" => false
- );
- }
- }
- }else{
- $result = array(
- "heading" => "Ошибка",
- "message" => "Ошибка, заполните обязательные поля!",
- "success" => false
- );
- }
- echo jsonEn($result);
- }
- }
- else{
- die(false);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement