function OnBasketAddHandler($ID, $arFields) { global $USER; \Bitrix\Main\Loader::includeModule('catalog'); \Bitrix\Main\Loader::includeModule('sale'); if ($USER->IsAuthorized()) { $arFilter = array("USER_ID" => $USER->GetID()); $db_sales = CSaleOrder::GetList(array("DATE_INSERT" => "ASC"), $arFilter); $arrCount = []; while ($ar_sales = $db_sales->Fetch()) { $arrCount[] = $ar_sales; } if (is_array($arrCount) == false) { $res = CCatalogDiscount::SetCoupon('SL-CDUEA-HI8MMPY'); //3% } else { if (count($arrCount) >= 1) { $resClean = CCatalogDiscount::ClearCoupon('SL-CDUEA-HI8MMPY'); $res5 = CCatalogDiscount::SetCoupon('SL-0JG2C-XIHBEYZ'); //5% } else { } } } else { $res = CCatalogDiscountCoupon::SetCoupon('SL-CDUEA-HI8MMPY'); //3% } }
$APPLICATION->SetPageProperty("keywords", "«Arteva Home» SALE"); $APPLICATION->SetPageProperty("description", "SALE. «Arteva Home»"); $APPLICATION->SetTitle("SALE");?> <? CModule::IncludeModule("catalog"); // $pos = strripos($_SERVER['HTTP_REFERER'], "bigbuzzy.ru"); // if ($pos === false) { // } else { if( empty($_COOKIE["bigbuzzy"]) || !isset($_COOKIE["bigbuzzy"])) { setCookie('bigbuzzy', "Y", time() + 60 * 24 * 3600, '/', 'www.arteva.ru'); CCatalogDiscountCoupon::SetCoupon("bigbuzzy"); ?> <script> document.location="http://www.arteva.ru/catalog/salebb/"; </script> <? // LocalRedirect("http://www.arteva.ru/catalog/salebb/"); } $GLOBALS["arrFilterSectionSale"] = array( // ">=catalog_PRICE_1" => $_REQUEST["priceMin"], // "<=catalog_PRICE_1" => $_REQUEST["priceMax"], ">=catalog_QUANTITY" => 1, // "!PROPERTY_SALE" => 1
public function SetCoupon($coupon) { return CCatalogDiscountCoupon::SetCoupon($coupon); }
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")); } } unset($_SESSION["SALE_BASKET_NUM_PRODUCTS"][SITE_ID]); } } } else { if ($arParams["HIDE_COUPON"] != "Y") { $COUPON = Trim($_REQUEST["COUPON"]); if (strlen($COUPON) > 0) { CCatalogDiscountCoupon::SetCoupon($COUPON); } else { CCatalogDiscountCoupon::ClearCoupon(); } } $dbBasketItems = CSaleBasket::GetList(array("NAME" => "ASC"), array("FUSER_ID" => CSaleBasket::GetBasketUserID(), "LID" => SITE_ID, "ORDER_ID" => "NULL"), false, false, array("ID", "CALLBACK_FUNC", "MODULE", "PRODUCT_ID", "QUANTITY", "DELAY", "CAN_BUY", "PRICE", "QUANTITY", "CURRENCY", "SUBSCRIBE", "PRODUCT_PROVIDER_CLASS")); while ($arBasketItems = $dbBasketItems->Fetch()) { $arBasketItems['QUANTITY'] = $arParams['QUANTITY_FLOAT'] == 'Y' ? DoubleVal($arBasketItems['QUANTITY']) : IntVal($arBasketItems['QUANTITY']); $quantityTmp = $arParams['QUANTITY_FLOAT'] == 'Y' ? DoubleVal($_REQUEST["QUANTITY_" . $arBasketItems["ID"]]) : IntVal($_REQUEST["QUANTITY_" . $arBasketItems["ID"]]); if ($arBasketItems["DELAY"] == "N" && $arBasketItems["CAN_BUY"] == "Y") { $arFields = array(); if (in_array("QUANTITY", $arParams["COLUMNS_LIST"])) { $arFields["QUANTITY"] = $quantityTmp; } if (count($arFields) > 0 && ($arBasketItems["QUANTITY"] != $arFields["QUANTITY"] && in_array("QUANTITY", $arParams["COLUMNS_LIST"]))) { CSaleBasket::Update($arBasketItems["ID"], $arFields);
public function recalculateBasket($arPost) { global $USER; $arRes = array(); if ($this->hideCoupon != "Y") { if (isset($arPost["coupon"]) && !empty($arPost["coupon"])) { $arRes["VALID_COUPON"] = CCatalogDiscountCoupon::SetCoupon($arPost["coupon"]); } if (!isset($arRes["VALID_COUPON"]) || (isset($arRes["VALID_COUPON"]) && $arRes["VALID_COUPON"] === false)) { CCatalogDiscountCoupon::ClearCoupon(); } } $arTmpItems = array(); $dbItems = CSaleBasket::GetList( array("PRICE" => "DESC"), array( "FUSER_ID" => CSaleBasket::GetBasketUserID(), "LID" => SITE_ID, "ORDER_ID" => "NULL" ), false, false, array( "ID", "NAME", "PRODUCT_PROVIDER_CLASS", "CALLBACK_FUNC", "MODULE", "PRODUCT_ID", "QUANTITY", "DELAY", "CAN_BUY", "CURRENCY", "SUBSCRIBE", "TYPE", "SET_PARENT_ID", "NOTES" ) ); while ($arItem = $dbItems->Fetch()) { if (CSaleBasketHelper::isSetItem($arItem)) continue; $arTmpItems[] = $arItem; } if (!empty($arTmpItems) && CModule::IncludeModule("catalog")) $arTmpItems = getRatio($arTmpItems); foreach ($arTmpItems as $arItem) { $isFloatQuantity = ((isset($arItem["MEASURE_RATIO"]) && floatval($arItem["MEASURE_RATIO"]) > 0 && $arItem["MEASURE_RATIO"] != 1) || $this->quantityFloat == "Y") ? true : false; if (!isset($arPost["QUANTITY_".$arItem["ID"]]) || floatval($arPost["QUANTITY_".$arItem["ID"]]) <= 0) { $quantityTmp = ($isFloatQuantity === true) ? floatval($arItem["QUANTITY"]) : intval($arItem["QUANTITY"]); } else { $quantityTmp = ($isFloatQuantity === true) ? floatval($arPost["QUANTITY_".$arItem["ID"]]) : intval($arPost["QUANTITY_".$arItem["ID"]]); } $deleteTmp = ($arPost["DELETE_".$arItem["ID"]] == "Y") ? "Y" : "N"; $delayTmp = ($arPost["DELAY_".$arItem["ID"]] == "Y") ? "Y" : "N"; if ($arItem["CAN_BUY"] == "Y") { $res = $this->checkQuantity($arItem, $quantityTmp); if (!empty($res)) $arRes["WARNING_MESSAGE"][] = $res["ERROR"]; } if ($deleteTmp == "Y" && in_array("DELETE", $this->columns)) { if ($arItem["SUBSCRIBE"] == "Y" && is_array($_SESSION["NOTIFY_PRODUCT"][$USER->GetID()])) unset($_SESSION["NOTIFY_PRODUCT"][$USER->GetID()][$arItem["PRODUCT_ID"]]); CSaleBasket::Delete($arItem["ID"]); } elseif ($arItem["DELAY"] == "N" && $arItem["CAN_BUY"] == "Y") { unset($arFields); $arFields = array(); if (in_array("QUANTITY", $this->columns)) $arFields["QUANTITY"] = $quantityTmp; if (in_array("DELAY", $this->columns)) $arFields["DELAY"] = $delayTmp; if (count($arFields) > 0 && ($arItem["QUANTITY"] != $arFields["QUANTITY"] && in_array("QUANTITY", $this->columns) || $arItem["DELAY"] != $arFields["DELAY"] && in_array("DELAY", $this->columns)) ) CSaleBasket::Update($arItem["ID"], $arFields); } elseif ($arItem["DELAY"] == "Y" && $arItem["CAN_BUY"] == "Y") { unset($arFields); $arFields = array(); if (in_array("DELAY", $this->columns)) $arFields["DELAY"] = $delayTmp; if (count($arFields) > 0 && ($arItem["DELAY"] != $arFields["DELAY"] && in_array("DELAY", $this->columns)) ) CSaleBasket::Update($arItem["ID"], $arFields); } } return $arRes; }