Your IP : 3.15.210.211
<? require($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_before.php"); ?>
<? CModule::IncludeModule("main"); ?>
<? error_reporting(0); ?>
<? if (!empty($_GET["act"])) {
if (CModule::IncludeModule("catalog") && CModule::IncludeModule("sale")) {
$OPTION_QUANTITY_TRACE = COption::GetOptionString("catalog", "default_quantity_trace");
$OPTION_ADD_CART = COption::GetOptionString("catalog", "default_can_buy_zero");
if ($_GET["act"] == "add") {
if (!empty($_GET["multi"]) && !empty($_GET['id'])) {
$addElements = explode(";", $_GET["id"]);
foreach ($addElements as $x => $nextID) {
if (!Add2BasketByProductID(intval($nextID), intval($_GET["q"]), false)) {
$error = true;
}
}
if (!$error) {
echo '{"error" : "false"}';
}
} else {
$getList = CIBlockElement::GetList(
Array(),
array(
"ID" => intval($_GET['id'])
),
false,
false,
array(
"ID",
"NAME",
"DETAIL_PICTURE",
"DETAIL_PAGE_URL",
"CATALOG_QUANTITY"
)
);
$obj = $getList->GetNextElement();
$arResult = $obj->GetFields();
$arResult["DETAIL_PICTURE"] = CFile::ResizeImageGet($arResult["DETAIL_PICTURE"], array("width" => 300, "height" => 300), BX_RESIZE_IMAGE_PROPORTIONAL, false);
$arResult["DETAIL_PICTURE"] = !empty($arResult["DETAIL_PICTURE"]["src"]) ? $arResult["DETAIL_PICTURE"]["src"] : SITE_TEMPLATE_PATH . "/images/empty.png";
if ($OPTION_QUANTITY_TRACE == "Y") {
// if($arResult["CATALOG_QUANTITY"])
}
if (Add2BasketByProductID(intval($_GET['id']), intval($_GET["q"]), false)) {
global $USER;
foreach ($arResult as $index => $arValues) {
$arJsn[] = '"' . $index . '":"' . addslashes($arValues) . '"';
}
$dbBasketItems = CSaleBasket::GetList(
false,
array(
"FUSER_ID" => CSaleBasket::GetBasketUserID(),
"LID" => SITE_ID,
"ORDER_ID" => "NULL",
"PRODUCT_ID" => intval($_GET["id"])
),
false,
false,
array(
"ID",
"QUANTITY",
"PRICE",
"PRODUCT_ID"
)
);
$basketQty = $dbBasketItems->Fetch();
$arJsn[] = '"PRODUCT_ID": "' . intval($basketQty["PRODUCT_ID"]) . '","CART_ID": "' . intval($basketQty["ID"]) . '","QUANTITY": "' . intval($basketQty["QUANTITY"]) . '","~PRICE": "' . round($basketQty["PRICE"]) . '","PRICE": "' . priceFormat(round($basketQty["PRICE"])) . '","SUM": "' . round($basketQty["PRICE"]) * intval($basketQty["QUANTITY"]) . '"';
echo "{" . implode($arJsn, ",") . "}";
}
}
} elseif ($_GET["act"] == "del") {
echo CSaleBasket::Delete(intval($_GET["id"]));
} elseif ($_GET["act"] == "upd") {
$dbBasketItems = CSaleBasket::GetList(
false,
array(
"FUSER_ID" => CSaleBasket::GetBasketUserID(),
"ORDER_ID" => "NULL",
"PRODUCT_ID" => intval($_GET["id"])
),
false,
false,
array("ID")
);
$basketRES = $dbBasketItems->Fetch();
echo CSaleBasket::Update(
$basketRES["ID"],
array(
"QUANTITY" => intval($_GET["q"])
)
);
} elseif ($_GET["act"] == "skuADD") {
if (!empty($_GET["id"]) && !empty($_GET["ibl"])) {
$PRODUCT_ID = intval($_GET["id"]);
$IBLOCK_ID = intval($_GET["ibl"]);
$SKU_INFO = CCatalogSKU::GetInfoByProductIBlock($IBLOCK_ID);
$PRODUCT_INFO = CIBlockElement::GetByID($PRODUCT_ID)->GetNext();
$OPTION_ADD_CART = COption::GetOptionString("catalog", "default_can_buy_zero");
$OPTION_CURRENCY = CCurrency::GetBaseCurrency();
$dbPriceType = CCatalogGroup::GetList(
array("SORT" => "ASC"),
array("BASE" => Y)
);
while ($arPriceType = $dbPriceType->Fetch()) {
$OPTION_BASE_PRICE = $arPriceType["ID"];
}
if (is_array($SKU_INFO)) {
$arResult = array();
$rsOffers = CIBlockElement::GetList(array(), array("ACTIVE" => Y, "IBLOCK_ID" => $SKU_INFO["IBLOCK_ID"], "PROPERTY_" . $SKU_INFO["SKU_PROPERTY_ID"] => $PRODUCT_ID), false, false, array("ID", "IBLOCK_ID", "DETAIL_PAGE_URL", "DETAIL_PICTURE", "NAME", "CATALOG_QUANTITY"));
while ($ob = $rsOffers->GetNextElement()) {
$arFields = $ob->GetFields();
$arProps = $ob->GetProperties();
$arPrice = CCatalogProduct::GetOptimalPrice($arFields["ID"], 1, $USER->GetUserGroupArray());
if ($arPrice["PRICE"]["CURRENCY"] != $OPTION_CURRENCY) {
$arPrice["PRICE"]["PRICE"] = CCurrencyRates::ConvertCurrency($arPrice["PRICE"]["PRICE"], $arPrice["PRICE"]["CURRENCY"], $OPTION_CURRENCY);
}
$arFields["DISCONT_PRICE"] = $arPrice["PRICE"]["PRICE"] > $arPrice["DISCOUNT_PRICE"] ? CurrencyFormat($arPrice["PRICE"]["PRICE"], $OPTION_CURRENCY) : false;
$arFields["PRICE"] = CurrencyFormat($arPrice["DISCOUNT_PRICE"], $OPTION_CURRENCY);
$picture = CFile::ResizeImageGet($arFields['DETAIL_PICTURE'], array('width' => 200, 'height' => 140), BX_RESIZE_IMAGE_PROPORTIONAL, true);
$arFields["DETAIL_PICTURE"] = !empty($picture["src"]) ? $picture["src"] : SITE_TEMPLATE_PATH . "/images/empty.png";
$arFields["ADDCART"] = $OPTION_ADD_CART === "Y" ? true : $arFields["CATALOG_QUANTITY"] > 0;
$arResult[] = array_merge($arFields, array("PROPERTIES" => $arProps));
}
foreach ($arResult[0]["PROPERTIES"] as $i => $arProp) {
$propVisible = false;
if (empty($arProp["VALUE"])) {
if (empty($propDelete[$i])) {
foreach ($arResult as $x => $arElement) {
if (!empty($arElement["PROPERTIES"][$i]["VALUE"])) {
$propVisible = true;
break;
}
}
if ($propVisible === false) {
$propDelete[$i] = true;
}
}
}
}
foreach ($arResult as $i => $arElement) {
foreach ($propDelete as $x => $val) {
unset($arResult[$i]["PROPERTIES"][$x]);
}
}
if (!empty($arResult)) {
echo jsonMultiEn($arResult);
}
}
}
} elseif ($_GET["act"] == "compADD") {
if (!empty($_GET["id"])) {
$res = CIBlockElement::GetList(
Array(),
Array(
"ID" => IntVal($_GET["id"])
),
false,
false,
Array(
"ID",
"NAME",
"IBLOCK_ID"
)
);
$ob = $res->GetNextElement();
$arFields = $ob->GetFields();
$_SESSION["COMPARE_LIST"]["ITEMS"][$_GET["id"]] = $_GET["id"];
echo '{"NAME":"' . $arFields["NAME"] . '"}';
}
} elseif ($_GET["act"] == "compDEL") {
if (!empty($_GET["id"])) {
foreach ($_SESSION["COMPARE_LIST"]["ITEMS"] as $key => $arValue) {
if ($arValue == $_GET["id"]) {
echo true;
unset($_SESSION["COMPARE_LIST"]["ITEMS"][$key]);
break;
}
}
}
} elseif ($_GET["act"] == "search") {
$_GET["name"] = BX_UTF != 1 ? htmlspecialcharsbx(trim(iconv("UTF-8", "CP1251//IGNORE", $_GET["name"]))) : htmlspecialcharsbx(trim($_GET["name"]));
if (CModule::IncludeModule("search")) {
$arLang = CSearchLanguage::GuessLanguage($_GET["name"]);
if (is_array($arLang) && $arLang["from"] != $arLang["to"]) {
$_GET["name"] = CSearchLanguage::ConvertKeyboardLayout($_GET["name"], $arLang["from"], $arLang["to"]);
}
}
global $USER;
$OPTION_ADD_CART = COption::GetOptionString("catalog", "default_can_buy_zero");
$OPTION_PRICE_TAB = COption::GetOptionString("catalog", "show_catalog_tab_with_offers");
$OPTION_CURRENCY = CCurrency::GetBaseCurrency();
if (!empty($_GET["name"]) && strLen($_GET["name"]) > 1 && !empty($_GET["iblock_id"])) {
$section = !empty($_GET["section"]) ? intval($_GET["section"]) : 0;
$arSelect = Array("ID", "NAME", "DETAIL_PICTURE", "DETAIL_PAGE_URL", "CATALOG_QUANTITY");
$arFilter = Array("ACTIVE_DATE" => "Y", "ACTIVE" => "Y", "IBLOCK_ID" => intval($_GET["iblock_id"]));
$arFilter[] = array("LOGIC" => "OR", "?NAME" => $_GET["name"], "PROPERTY_ARTICLE" => $_GET["name"]);
if ($section) {
$arFilter["SECTION_ID"] = $section;
}
$arFilter["INCLUDE_SUBSECTIONS"] = Y;
$res = CIBlockElement::GetList(Array("shows" => "DESC"), $arFilter, false, Array("nPageSize" => 4), $arSelect);
while ($ob = $res->GetNextElement()) {
$arFields = $ob->GetFields();
$arPrice = CCatalogProduct::GetOptimalPrice($arFields["ID"], 1, $USER->GetUserGroupArray());
$arFields["DISCONT_PRICE"] = $arPrice["PRICE"]["PRICE"] > $arPrice["DISCOUNT_PRICE"] ? CurrencyFormat(CCurrencyRates::ConvertCurrency($arPrice["PRICE"]["PRICE"], $arPrice["PRICE"]["CURRENCY"], $OPTION_CURRENCY), $OPTION_CURRENCY) : 0;
$arFields["PRICE"] = CurrencyFormat($arPrice["DISCOUNT_PRICE"], $OPTION_CURRENCY);
if (empty($arPrice["PRICE"]) && !$arFields["PRICE"] = 0) {
$arFields["SKU"] = CCatalogSKU::IsExistOffers($arFields["ID"]);
if ($arFields["SKU"]) {
$SKU_INFO = CCatalogSKU::GetInfoByProductIBlock($arFields["IBLOCK_ID"]);
if (is_array($SKU_INFO)) {
$rsOffers = CIBlockElement::GetList(array(), array("IBLOCK_ID" => $SKU_INFO["IBLOCK_ID"], "PROPERTY_" . $SKU_INFO["SKU_PROPERTY_ID"] => $arFields["ID"]), false, false, array("ID", "IBLOCK_ID", "DETAIL_PAGE_URL", "DETAIL_PICTURE", "NAME", "CATALOG_QUANTITY"));
while ($arSku = $rsOffers->GetNext()) {
$arSkuPrice = CCatalogProduct::GetOptimalPrice($arSku["ID"], 1, $USER->GetUserGroupArray());
if (!empty($arSkuPrice)) {
$arFields["SKU_PRODUCT"][] = $arSku + $arSkuPrice;
}
$arFields["PRICE"] = (empty($arFields["PRICE"]) || $arFields["PRICE"] > $arSkuPrice["DISCOUNT_PRICE"]) ? $arSkuPrice["DISCOUNT_PRICE"] : $arFields["PRICE"];
$arFields["SKU_PRICES"][] = $arSkuPrice["DISCOUNT_PRICE"];
if ($arSku["CATALOG_QUANTITY"] > 0) {
$arFields["CATALOG_QUANTITY"] = $arSku["CATALOG_QUANTITY"];
}
}
$arFields["DISCONT_PRICE"] = null;
if (min($arFields["SKU_PRICES"]) != max($arFields["SKU_PRICES"])) {
$arFields["PRICE"] = "от " . CurrencyFormat($arFields["PRICE"], $OPTION_CURRENCY);
} else {
$arFields["PRICE"] = CurrencyFormat($arFields["PRICE"], $OPTION_CURRENCY);
}
$arFields["ADDSKU"] = $OPTION_ADD_CART === "Y" ? true : $arFields["CATALOG_QUANTITY"] > 0;
} else {
$arFields["SKU"] = false;
}
}
}
$arFields["ADDCART"] = $OPTION_ADD_CART == "Y" ? true : $arFields["CATALOG_QUANTITY"] > 0;
$picture = CFile::ResizeImageGet($arFields['DETAIL_PICTURE'], array("width" => 50, "height" => 50), BX_RESIZE_IMAGE_PROPORTIONAL, false);
$arFields["DETAIL_PICTURE"] = !empty($picture["src"]) ? $picture["src"] : SITE_TEMPLATE_PATH . "/images/empty.png";
foreach ($arFields as $key => $arPropX) {
$arJsn[] = '"' . $key . '" : "' . addslashes($arPropX) . '"';
}
$arReturn[] = '{' . implode($arJsn, ",") . '}';
$arJsn = array();
}
echo "[" . implode($arReturn, ",") . "]";
}
} elseif ($_GET["act"] == "flushCart") {
?>
<ul>
<li class="dl">
<? $APPLICATION->IncludeComponent(
"bitrix:sale.basket.basket.small",
"topCart",
Array(),
false
); ?>
</li>
<li class="dl">
<? $APPLICATION->IncludeComponent(
"bitrix:sale.basket.basket.small",
"footCart",
Array(),
false
); ?>
</li>
</ul><?
} elseif ($_GET["act"] == "flushCart1") {
?>
<div id="ajax-small">
<? $APPLICATION->IncludeComponent(
"bitrix:sale.basket.basket.small",
"basket_add",
array(
"PATH_TO_BASKET" => SITE_DIR . "personal/cart/",
"PATH_TO_ORDER" => SITE_DIR . "personal/order/",
"SHOW_DELAY" => "Y",
"SHOW_NOTAVAIL" => "Y",
"SHOW_SUBSCRIBE" => "Y"
),
false
); ?>
</div><?
} elseif ($_GET["act"] == "rating") {
global $USER;
if ($USER->IsAuthorized()) {
if (!empty($_GET["id"])) {
$arUsers[] = $USER->GetID();
$res = CIBlockElement::GetList(Array(), Array("ID" => intval($_GET["id"]), "ACTIVE_DATE" => "Y", "ACTIVE" => "Y"), false, false, Array("ID", "IBLOCK_ID", "PROPERTY_USER_ID", "PROPERTY_GOOD_REVIEW", "PROPERTY_BAD_REVIEW"));
while ($ob = $res->GetNextElement()) {
$arFields = $ob->GetFields();
if ($arFields["PROPERTY_USER_ID_VALUE"] == $arUsers[0]) {
$result = array(
"result" => false,
"error" => "Вы уже голосовали!",
"heading" => "Ошибка"
);
break;
}
}
if (!$result) {
$propCODE = $_GET["trig"] ? "GOOD_REVIEW" : "BAD_REVIEW";
$propVALUE = $_GET["trig"] ? $arFields["PROPERTY_GOOD_REVIEW_VALUE"] + 1 : $arFields["PROPERTY_BAD_REVIEW_VALUE"] + 1;
$db_props = CIBlockElement::GetProperty($arFields["IBLOCK_ID"], $arFields["ID"], array("sort" => "asc"), Array("CODE" => "USER_ID"));
if ($arProps = $db_props->Fetch()) {
$arUsers[] = $arProps["VALUE"];
}
CIBlockElement::SetPropertyValuesEx($arFields["ID"], $arFields["IBLOCK_ID"], array($propCODE => $propVALUE, "USER_ID" => $arUsers));
$result = array(
"result" => true
);
}
} else {
$result = array(
"result" => false,
"error" => "Элемент не найден",
"heading" => "Ошибка"
);
}
} else {
$result = array(
"error" => "Для голосования вам необходимо авторизаваться",
"result" => false,
"heading" => "Ошибка"
);
}
echo jsonEn($result);
} elseif ($_GET["act"] == "newReview") {
global $USER;
if ($USER->IsAuthorized()) {
if (!empty($_GET["DIGNITY"]) &&
!empty($_GET["SHORTCOMINGS"]) &&
!empty($_GET["COMMENT"]) &&
!empty($_GET["NAME"]) &&
!empty($_GET["USED"]) &&
!empty($_GET["RATING"]) &&
!empty($_GET["PRODUCT_NAME"]) &&
!empty($_GET["PRODUCT_ID"])
) {
$arUsers = array($USER->GetID());
$res = CIBlockElement::GetList(
Array(),
Array(
"ID" => intval($_GET["PRODUCT_ID"]),
"ACTIVE_DATE" => "Y",
"ACTIVE" => "Y"
),
false,
false,
Array(
"ID",
"IBLOCK_ID",
"PROPERTY_USER_ID",
"PROPERTY_VOTE_SUM",
"PROPERTY_VOTE_COUNT"
)
);
while ($ob = $res->GetNextElement()) {
$arFields = $ob->GetFields();
if ($arFields["PROPERTY_USER_ID_VALUE"] == $arUsers[0]) {
$result = array(
"heading" => "Ошибка",
"message" => "Вы уже оставляли отзыв к этому товару."
);
break;
}
$arUsers[] = $arFields["PROPERTY_USER_ID_VALUE"];
}
if (empty($result)) {
$newElement = new CIBlockElement;
// DIGNITY - достоинства
// SHORTCOMINGS - недостатки
// RATING - рейтинг
// EXPERIENCE - опыт использования
// NAME - Имя
$PROP = array(
"DIGNITY" => BX_UTF != 1 ? iconv("UTF-8", "windows-1251//IGNORE", htmlspecialcharsbx($_GET["DIGNITY"])) : htmlspecialcharsbx($_GET["DIGNITY"]),
"SHORTCOMINGS" => BX_UTF != 1 ? iconv("UTF-8", "windows-1251//IGNORE", htmlspecialcharsbx($_GET["SHORTCOMINGS"])) : htmlspecialcharsbx($_GET["SHORTCOMINGS"]),
"NAME" => BX_UTF != 1 ? iconv("UTF-8", "windows-1251//IGNORE", htmlspecialcharsbx($_GET["NAME"])) : htmlspecialcharsbx($_GET["NAME"]),
"EXPERIENCE" => intval($_GET["USED"]),
"RATING" => intval($_GET["RATING"])
);
$arLoadProductArray = Array(
"MODIFIED_BY" => $USER->GetID(),
"IBLOCK_SECTION_ID" => false,
"IBLOCK_ID" => intval($_GET["iblock_id"]),
"PROPERTY_VALUES" => $PROP,
"NAME" => BX_UTF != 1 ? iconv("UTF-8", "windows-1251//IGNORE", htmlspecialcharsbx($_GET["PRODUCT_NAME"])) : htmlspecialcharsbx($_GET["PRODUCT_NAME"]),
"ACTIVE" => "N",
"DETAIL_TEXT" => BX_UTF != 1 ? iconv("UTF-8", "windows-1251//IGNORE", htmlspecialcharsbx($_GET["COMMENT"])) : htmlspecialcharsbx($_GET["COMMENT"]),
"CODE" => intval($_GET["PRODUCT_ID"])
);
if ($PRODUCT_ID = $newElement->Add($arLoadProductArray)) {
$result = array(
"heading" => "Отзыв добавлен",
"message" => "Ваш отзыв будет опубликован после модерации.",
"reload" => true
);
$VOTE_SUM = $arFields["PROPERTY_VOTE_SUM_VALUE"] + intval($_GET["RATING"]);
$VOTE_COUNT = $arFields["PROPERTY_VOTE_COUNT_VALUE"] + 1;
$RATING = ($VOTE_SUM / $VOTE_COUNT);
CIBlockElement::SetPropertyValuesEx(
intval($_GET["PRODUCT_ID"]),
$arFields["IBLOCK_ID"],
array(
"VOTE_SUM" => $VOTE_SUM,
"VOTE_COUNT" => $VOTE_COUNT,
"RATING" => $RATING,
"USER_ID" => $arUsers
)
);
} else {
$result = array(
"heading" => "Ошибка",
"message" => "error(1)"
);
}
}
} else {
$result = array(
"heading" => "Ошибка",
"message" => "Заполните все поля!"
);
}
} else {
//unregistered
if ($APPLICATION->CaptchaCheckCode($_GET["captcha_word"], $_GET["captcha_code"])) {
// Правильное значение
if (!empty($_GET["DIGNITY"]) &&
!empty($_GET["SHORTCOMINGS"]) &&
!empty($_GET["COMMENT"]) &&
!empty($_GET["NAME"]) &&
!empty($_GET["USED"]) &&
!empty($_GET["RATING"]) &&
!empty($_GET["PRODUCT_NAME"]) &&
!empty($_GET["PRODUCT_ID"])
) {
// $arUsers = array($USER->GetID());
$res = CIBlockElement::GetList(
Array(),
Array(
"ID" => intval($_GET["PRODUCT_ID"]),
"ACTIVE_DATE" => "Y",
"ACTIVE" => "Y"
),
false,
false,
Array(
"ID",
"IBLOCK_ID",
"PROPERTY_USER_ID",
"PROPERTY_VOTE_SUM",
"PROPERTY_VOTE_COUNT"
)
);
while ($ob = $res->GetNextElement()) {
$arFields = $ob->GetFields();
// if($arFields["PROPERTY_USER_ID_VALUE"] == $arUsers[0]){
// $result = array(
// "heading" => "Ошибка",
// "message" => "Вы уже оставляли отзыв к этому товару."
// );
// break;
// }
$arUsers[] = $arFields["PROPERTY_USER_ID_VALUE"];
}
if (empty($result)) {
$newElement = new CIBlockElement;
// DIGNITY - достоинства
// SHORTCOMINGS - недостатки
// RATING - рейтинг
// EXPERIENCE - опыт использования
// NAME - Имя
$guestName = BX_UTF != 1 ? iconv("UTF-8", "windows-1251//IGNORE", htmlspecialcharsbx($_GET["NAME"])) : htmlspecialcharsbx($_GET["NAME"]);
$PROP = array(
"DIGNITY" => BX_UTF != 1 ? iconv("UTF-8", "windows-1251//IGNORE", htmlspecialcharsbx($_GET["DIGNITY"])) : htmlspecialcharsbx($_GET["DIGNITY"]),
"SHORTCOMINGS" => BX_UTF != 1 ? iconv("UTF-8", "windows-1251//IGNORE", htmlspecialcharsbx($_GET["SHORTCOMINGS"])) : htmlspecialcharsbx($_GET["SHORTCOMINGS"]),
"NAME" => BX_UTF != 1 ? iconv("UTF-8", "windows-1251//IGNORE", htmlspecialcharsbx($_GET["NAME"])) : htmlspecialcharsbx($_GET["NAME"]),
"EXPERIENCE" => intval($_GET["USED"]),
"RATING" => intval($_GET["RATING"])
);
$arLoadProductArray = Array(
"MODIFIED_BY" => $guestName,
"IBLOCK_SECTION_ID" => false,
"IBLOCK_ID" => intval($_GET["iblock_id"]),
"PROPERTY_VALUES" => $PROP,
"NAME" => BX_UTF != 1 ? iconv("UTF-8", "windows-1251//IGNORE", htmlspecialcharsbx($_GET["PRODUCT_NAME"])) : htmlspecialcharsbx($_GET["PRODUCT_NAME"]),
"ACTIVE" => "N",
"DETAIL_TEXT" => BX_UTF != 1 ? iconv("UTF-8", "windows-1251//IGNORE", htmlspecialcharsbx($_GET["COMMENT"])) : htmlspecialcharsbx($_GET["COMMENT"]),
"CODE" => intval($_GET["PRODUCT_ID"])
);
if ($PRODUCT_ID = $newElement->Add($arLoadProductArray)) {
$result = array(
"heading" => "Отзыв добавлен",
"message" => "Ваш отзыв будет опубликован после модерации.",
"reload" => true
);
$VOTE_SUM = $arFields["PROPERTY_VOTE_SUM_VALUE"] + intval($_GET["RATING"]);
$VOTE_COUNT = $arFields["PROPERTY_VOTE_COUNT_VALUE"] + 1;
$RATING = ($VOTE_SUM / $VOTE_COUNT);
CIBlockElement::SetPropertyValuesEx(
intval($_GET["PRODUCT_ID"]),
$arFields["IBLOCK_ID"],
array(
"VOTE_SUM" => $VOTE_SUM,
"VOTE_COUNT" => $VOTE_COUNT,
"RATING" => $RATING,
"USER_ID" => $arUsers
)
);
} else {
$result = array(
"heading" => "Ошибка",
"message" => "error(1)"
);
}
}
}
} else {
$result = array(
"result" => false,
"heading" => "Ошибка",
"message" => "Вы не заполнили все поля, или код с картинки не верен"
);
}
}
echo jsonEn($result);
} 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) || $_GET["id"] == 0001) {
$dbPrice = CPrice::GetList(
array("QUANTITY_FROM" => "ASC", "QUANTITY_TO" => "ASC", "SORT" => "ASC"),
array("PRODUCT_ID" => $arElement["ID"]),
false,
false,
array("ID", "CATALOG_GROUP_ID", "PRICE", "CURRENCY", "QUANTITY_FROM", "QUANTITY_TO")
);
while ($arPrice = $dbPrice->Fetch()) {
$arDiscounts = CCatalogDiscount::GetDiscountByPrice(
$arPrice["ID"],
$USER->GetUserGroupArray(),
"N",
SITE_ID
);
$arElement["PRICE"] = CCatalogProduct::CountPriceWithDiscount(
$arPrice["PRICE"],
$arPrice["CURRENCY"],
$arDiscounts
);
$arElement["~PRICE"] = $arElement["PRICE"];
$arElement["PRICE"] = CurrencyFormat($arElement["PRICE"], $arPrice["CURRENCY"]);
}
$postMess = CEventMessage::GetList($by = "site_id", $order = "desc", array("TYPE" => "SALE_ELECTRO_FASTBACK_SEND"))->GetNext();
if (empty($postMess)) {
$MESSAGE = "<h3>С сайта #SITE# поступил новый заказ в 1 клик. </h3> <p> Товар: <b>#PRODUCT#</b> <br /> Имя: <b>#NAME#</b> <br /> Телефон: <b>#PHONE#</b> <br /> Комментарий: #COMMENT#";
$FIELDS = "#SITE# \n #PRODUCT# \n #NAME# \n #PHONE# \n #COMMENT# \n";
$et = new CEventType;
$et->Add(
array(
"LID" => "ru",
"EVENT_NAME" => "SALE_ELECTRO_FASTBACK_SEND",
"NAME" => "Купить в один клик",
"DESCRIPTION" => $FIELDS
)
);
$arr["ACTIVE"] = "Y";
$arr["EVENT_NAME"] = "SALE_ELECTRO_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);
}
$arMessage = array(
"SITE" => SITE_SERVER_NAME,
"PRODUCT" => $arElement["NAME"] . " (ID:" . $arElement["ID"] . " )" . " - " . $arElement["PRICE"],
"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_ELECTRO_FASTBACK_SEND", htmlspecialcharsbx($_GET["SITE_ID"]), $arMessage, "Y", false);
// NEW ORDER
// echo "start <br>";
// echo "UserBasketID:".CSaleBasket::GetBasketUserID();
$basket = CSaleBasket::GetByID(CSaleBasket::GetBasketUserID());
// echo "<br>basket:<br>";
// pre($basket,true);
$dbBasketItems = CSaleBasket::GetList(
false,
array(
"FUSER_ID" => CSaleBasket::GetBasketUserID(),
"ORDER_ID" => "NULL",
),
false,
false,
array("PRODUCT_ID","QUANTITY","NAME")
);
while($basketRES = $dbBasketItems->Fetch())
{
$arBas[] = $basketRES;
}
// pre($arBas,true);
//
// echo "<br> end";
//count new users
$rsUsers = CUser::GetList(($by = "login"), ($order = "asc"), array("LOGIN" => "OneClick_%"));
$counterArray = array();
while ($arUser = $rsUsers->Fetch()) {
$counterArray[] = $arUser;
}
$countUsers = count($counterArray) + 1;
// END count new users
$getPersonType = CSalePersonType::GetList(Array("SORT" => "ASC"), Array("LID" => htmlspecialcharsbx($_GET["SITE_ID"])));
if (!empty($_GET["SITE_ID"])) {
if ($arPersonItem = $getPersonType->Fetch()) {
$USER_ID = intval($USER->GetID());
if ($USER_ID == 0) {
$numName = str_replace("-","",filter_var($_GET["phone"], FILTER_SANITIZE_NUMBER_INT));
$filter = Array
(
"LOGIN" => $numName,
);
$tmp = 'sort';
$arleadyCreatedID = 0;
$rsUsers = CUser::GetList($tmp,$filter); // выбираем пользователей
while($rsUsers->NavNext(true, "f_")) :
if($f_LOGIN == $numName)
$arleadyCreatedID = $f_ID;
endwhile;
$newUser = new CUser;
$newPass = rand(0, 999999999);
// echo "userID: '$arleadyCreatedID'";
if( $arleadyCreatedID == 0){
$arUserFields = Array(
"NAME" => $_GET["name"],
"PERSONAL_PHONE" => $numName,
"LAST_NAME" => $numName,
"LOGIN" => "$numName",
"LID" => "ru",
"ACTIVE" => "Y",
"GROUP_ID" => array(),
"PASSWORD" => $numName,
"CONFIRM_PASSWORD" => $numName,
);
$USER_ID = $newUser->Add($arUserFields);
}else{
$USER_ID = $arleadyCreatedID;
}
// echo "USER: !! $USER_ID";
//}
}
//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::GetBasketUserID()
$arFields = 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" => $USER_ID,
"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"])
,"COMMENTS" =>htmlspecialcharsbx($_GET["comments"])
);
$ORDER_ID = CSaleOrder::Add($arFields);
if (!empty($ORDER_ID)) {
$ORDER_ID = IntVal($ORDER_ID);
$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") {
CSaleOrderPropsValue::Add(array(
"ORDER_ID" => $ORDER_ID,
"ORDER_PROPS_ID" => $props["ID"],
"NAME" => $props["NAME"],
"CODE" => $props["CODE"],
"VALUE" => 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") {
CSaleOrderPropsValue::Add(array(
"ORDER_ID" => $ORDER_ID,
"ORDER_PROPS_ID" => $props["ID"],
"NAME" => $props["NAME"],
"CODE" => $props["CODE"],
"VALUE" => BX_UTF != 1 ? iconv("UTF-8", "windows-1251//IGNORE", htmlspecialcharsbx($_GET["phone"])) : htmlspecialcharsbx($_GET["phone"])
));
}
}
CSaleBasket::DeleteAll(CSaleBasket::GetBasketUserID(), False);
//
if($_GET["id"] != "0001"){
Add2BasketByProductID(
$_GET["id"],
1,
array("ORDER_ID" => $ORDER_ID),
array()
);
}else{
foreach ($arBas as $prod){
Add2BasketByProductID(
$prod["PRODUCT_ID"],
$prod["QUANTITY"],
array("ORDER_ID" => $ORDER_ID),
array()
);
}
}
if(!empty($arBas) || $_GET["id"] != "0001")
CSaleBasket::OrderBasket($ORDER_ID, $USER_ID, $_GET["SITE_ID"]);
else{
$result = array(
"heading" => "Ошибка",
"message" => "Ошибка, заказ не создан! пустая корзина",
"success" => false
);
}
} else {
$result = array(
"heading" => "Ошибка",
"message" => "Ошибка, заказ не создан! <br />" . var_dump($arFields),
"success" => false
);
}
} else {
$result = array(
"heading" => "Ошибка",
"message" => "Ошибка, служба доставки не создана!",
"success" => false
);
}
} else {
$result = array(
"heading" => "Ошибка",
"message" => "Ошибка, платежная система не создана!",
"success" => false
);
}
}
if (empty($result)) {
$result = array(
"heading" => "Ваш заказ успешно оформлен",
"message" => "Менеджер в кратчайшие сроки вам перезвонит. Номер заказа №" . $ORDER_ID . ". Спасибо большое !",
"success" => true
);
}
} else {
$result = array(
"heading" => "Ошибка",
"message" => "Ошибка, SITE_ID пуст!",
"success" => false
);
}
} else {
$result = array(
"heading" => "Ошибка",
"message" => "Ошибка, товар не найден!",
"success" => false
);
}
}
} else {
$result = array(
"heading" => "Ошибка",
"message" => "Ошибка, заполните обязательные поля!",
"success" => false
);
}
echo jsonEn($result);
}
} else {
die(false);
}
}
function priceFormat($data, $str = "")
{
$price = explode(".", $data);
$strLen = strlen($price[0]);
for ($i = $strLen; $i > 0; $i--) {
$str .= (!($i % 3) ? " " : "") . $price[0][$strLen - $i];
}
return $str . ($price[1] > 0 ? "." . $price[1] : "");
}
function jsonEn($data, $multi = false)
{
if (!$multi) {
foreach ($data as $index => $arValue) {
$arJsn[] = '"' . $index . '" : "' . addslashes($arValue) . '"';
}
return "{" . implode($arJsn, ",") . "}";
}
}
function jsonMultiEn($data)
{
if (is_array($data)) {
if (count($data) > 0) {
$arJsn = "[" . implode(getJnLevel($data, 0), ",") . "]";
} else {
$arJsn = implode(getJnLevel($data), ",");
}
}
return str_replace(array("\t", "\r", "\n"), "", $arJsn);
}
function getJnLevel($data, $level = 1)
{
foreach ($data as $i => $arNext) {
if (!is_array($arNext)) {
$arJsn[] = '"' . $i . '":"' . addslashes(str_replace("'", '"', $arNext)) . '"';
} else {
if ($level === 0) {
$arJsn[] = "{" . implode(getJnLevel($arNext), ",") . "}";
} else {
$arJsn[] = '"' . $i . '":{' . implode(getJnLevel($arNext), ",") . '}';
}
}
}
return $arJsn;
}
?>