function GetBasketList($bSkipFUserInit = true) { $fUserID = (int) CSaleBasket::GetBasketUserID($bSkipFUserInit); $arRes = array(); if ($fUserID > 0) { $basketID = array(); $db_res = CSaleBasket::GetList(array(), array("FUSER_ID" => $fUserID, "LID" => SITE_ID, "ORDER_ID" => false), false, false, array('ID', 'CALLBACK_FUNC', 'PRODUCT_PROVIDER_CLASS', 'MODULE', 'PRODUCT_ID', 'QUANTITY', 'NOTES')); while ($res = $db_res->Fetch()) { $res['CALLBACK_FUNC'] = (string) $res['CALLBACK_FUNC']; $res['PRODUCT_PROVIDER_CLASS'] = (string) $res['PRODUCT_PROVIDER_CLASS']; if ($res['CALLBACK_FUNC'] != '' || $res['PRODUCT_PROVIDER_CLASS'] != '') { CSaleBasket::UpdatePrice($res["ID"], $res["CALLBACK_FUNC"], $res["MODULE"], $res["PRODUCT_ID"], $res["QUANTITY"], 'N', $res["PRODUCT_PROVIDER_CLASS"], $res['NOTES']); } $basketID[] = $res['ID']; } unset($res, $db_res); if (!empty($basketID)) { $basketIterator = CSaleBasket::GetList(array('NAME' => 'ASC'), array('ID' => $basketID)); while ($basket = $basketIterator->GetNext()) { $arRes[] = $basket; } unset($basket, $basketIterator); } unset($basketID); } return $arRes; }
/** * Returns quantity of product in current user's basket * * @param integer $productID * @return float */ public static function getProductInBasketParams($productID) { global $DB; CModule::IncludeModule('sale'); $id = intval($productID); $fuserID = CSaleBasket::GetBasketUserID(); $strSql = "SELECT ID, QUANTITY " . "FROM b_sale_basket " . "WHERE PRODUCT_ID = " . $id . " AND FUSER_ID = " . $fuserID . " AND ORDER_ID IS NULL"; $rsBasket = $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__); if ($arBasket = $rsBasket->Fetch()) { return array("ID" => $arBasket["ID"], "QUANTITY" => floatval($arBasket["QUANTITY"])); } return false; }
function GetBasketList($bSkipFUserInit = False) { $fUserID = CSaleBasket::GetBasketUserID($bSkipFUserInit); $arRes = array(); if ($fUserID > 0) { $db_res = CSaleBasket::GetList(array("NAME" => "ASC"), array("FUSER_ID" => $fUserID, "LID" => SITE_ID, "ORDER_ID" => "NULL")); while ($res = $db_res->GetNext()) { if (strlen($res["CALLBACK_FUNC"]) > 0 || strlen($res["PRODUCT_PROVIDER_CLASS"]) > 0) { CSaleBasket::UpdatePrice($res["ID"], $res["CALLBACK_FUNC"], $res["MODULE"], $res["PRODUCT_ID"], $res["QUANTITY"], $res["PRODUCT_PROVIDER_CLASS"]); $res = CSaleBasket::GetByID($res["ID"]); } $arRes[] = $res; } } return $arRes; }
function GetBasketList($_1845591150 = False) { $_485605884 = CSaleBasket::GetBasketUserID($_1845591150); $_1557116546 = array(); if ($_485605884 > 142 * 2 - 284) { $_1231685078 = CSaleBasket::$GLOBALS['_____964307792'][3](array(___1555869721(415) => ___1555869721(416)), array(___1555869721(417) => $_485605884, ___1555869721(418) => SITE_ID, ___1555869721(419) => ___1555869721(420))); while ($_895052442 = $_1231685078->{$GLOBALS}['_____964307792'][4]()) { if ($GLOBALS['____1838596344'][1]($_895052442[___1555869721(421)]) > 1216 / 2 - 608) { CSaleBasket::UpdatePrice($_895052442[___1555869721(422)], $_895052442[___1555869721(423)], $_895052442[___1555869721(424)], $_895052442[___1555869721(425)], $_895052442[___1555869721(426)]); $_895052442 = CSaleBasket::$GLOBALS['_____964307792'][5]($_895052442[___1555869721(427)]); } $_1557116546[] = $_895052442; } } return $_1557116546; }
/** * get item data for order or current cart * * @param int $order_id send null for current cart * @param bool $item_more_data * @return array */ public static function getOrderItems($order_id = null, $item_more_data = false) { $items = array(); $libBasket = new \CSaleBasket(); if ($order_id !== null) { $list = $libBasket->GetList(array(), array('ORDER_ID' => $order_id)); } else { $list = $libBasket->GetList(array(), array('FUSER_ID' => $libBasket->GetBasketUserID(), 'LID' => SITE_ID, 'ORDER_ID' => false)); } while ($item = $list->Fetch()) { $itemData = self::getItemArray($item['PRODUCT_ID'], $item_more_data); $item['PRODUCT_ID'] = $itemData['item_id']; // fix ID for complex items $item['DATA'] = $itemData; $items[] = $item; } return $items; }
function getNmuBasket(){ $dbBasketItems = CSaleBasket::GetList( array( "NAME" => "ASC", "ID" => "ASC" ), array( "FUSER_ID" => CSaleBasket::GetBasketUserID(), "LID" => SITE_ID, "ORDER_ID" => "NULL" ), false, false, array() ); $num=0; while($basket=$dbBasketItems->Fetch()) $num++; return $num; }
public static function OnBasketChange($ID, $arFields = false) { if(isset($_SESSION["SALE_BASKET_NUM_PRODUCTS"][SITE_ID])) { $num_products = $_SESSION["SALE_BASKET_NUM_PRODUCTS"][SITE_ID]; } else { if(!CModule::IncludeModule("sale")) { return; } $fUserID = CSaleBasket::GetBasketUserID(True); $fUserID = IntVal($fUserID); $num_products = 0; if ($fUserID > 0) { $dbRes = CSaleBasket::GetList( array(), array( "FUSER_ID" => $fUserID, "LID" => SITE_ID, "ORDER_ID" => "NULL", "CAN_BUY" => "Y", "DELAY" => "N", "SUBSCRIBE" => "N" ) ); while ($arItem = $dbRes->GetNext()) { if (!CSaleBasketHelper::isSetItem($arItem)) $num_products++; } } $_SESSION["SALE_BASKET_NUM_PRODUCTS"][SITE_ID] = intval($num_products); } echo "<script> if (document.getElementById('bx_cart_num')) document.getElementById('bx_cart_num').innerHTML = '".(($num_products > 0) ? " (".$num_products.")" : "")."'; </script>"; }
$quantity = doubleval($_REQUEST["quantity"]); $delay = strtoupper($_REQUEST["delay"]) == "Y" ? true : false; if ($quantity <= 0) { $quantity = 1; } if (CModule::IncludeModule("catalog")) { if (($action == "ADD2BASKET" || $action == "BUY") && $id > 0) { $r_id = Add2BasketByProductID($id, $quantity, array()); if ($delay) { CSaleBasket::Update($r_id, array("DELAY" => "Y")); } // if ajax return some info about cart if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') { /* special ajax here */ //header('Content-Type: application/json'); $cntBasketItems = CSaleBasket::GetList(array(), array("FUSER_ID" => CSaleBasket::GetBasketUserID(), "LID" => SITE_ID, "ORDER_ID" => "NULL"), array()); echo "{'id': {$r_id} , 'count': {$cntBasketItems}}"; exit(0); } if ($action == "BUY") { LocalRedirect("/personal/cart"); } if ($backurl) { LocalRedirect($backurl); } elseif ($_SERVER["HTTP_REFERER"]) { LocalRedirect($_SERVER["HTTP_REFERER"]); } else { LocalRedirect("/personal/cart"); } } }
foreach ($arRes as $key => $value) { $arResult[$key] = $value; } unset($_SESSION["SALE_BASKET_NUM_PRODUCTS"][SITE_ID]); if (!empty($_REQUEST["BasketOrder"]) && empty($arResult["WARNING_MESSAGE"])) { if (!(strlen($_POST['paypalbutton']) > 0)) { LocalRedirect($arParams["PATH_TO_ORDER"]); } } else { unset($_REQUEST["BasketRefresh"], $_REQUEST["BasketOrder"]); if (!empty($arResult["WARNING_MESSAGE"])) { $_SESSION["SALE_BASKET_MESSAGE"] = $arResult["WARNING_MESSAGE"]; } LocalRedirect($APPLICATION->GetCurPage()); } } } elseif (!empty($_REQUEST['DeleteAll']) && $_REQUEST['DeleteAll'] == 'Y') { CSaleBasket::DeleteAll(CSaleBasket::GetBasketUserID()); LocalRedirect($APPLICATION->GetCurPage()); } $basketData = $this->getBasketItems(); $arResult = array_merge($arResult, $basketData); $arResult["GRID"]["HEADERS"] = $headersData; if (is_array($_SESSION["SALE_BASKET_MESSAGE"])) { foreach ($_SESSION["SALE_BASKET_MESSAGE"] as $message) { $arResult["WARNING_MESSAGE"][] = $message; } unset($_SESSION["SALE_BASKET_MESSAGE"]); } CJSCore::Init(array('ajax')); $this->IncludeComponentTemplate();
/** * функция после добавлением элемента в инфоблока * @param $arFields поля элемента ифоблока * для страницы Объявления * eсли VIP объявление то добавляет корзину * привязывает по ID созданное объявления к товару в корзине * редирект на необходимы url */ function AuthtorizeAfterAds(&$arFields){ unset($_SESSION['user777999authorize']); if($arFields['PROPERTY_VALUES']['114']){ foreach($arFields['PROPERTY_VALUES']['114'] as $key114 => $item114){ if($item114['VALUE']){ foreach($arFields['PROPERTY_VALUES']['113'] as $key113 => $item113){ if($item113['VALUE']){ $arFields['PROPERTY_VALUES']['113'][$key113]=ConvertDateTime($item114['VALUE'], "YYYY-MM-DD HH:MI:SS"); }else{ $arFields['PROPERTY_VALUES']['113'][n0]=ConvertDateTime($item114['VALUE'], "YYYY-MM-DD HH:MI:SS"); } } } } } if(($arFields["IBLOCK_ID"] == 16)&&(!CUser::IsAuthorized())){ global $USER; $rsUser = CUser::GetByID($_SESSION['NEW_USER_ID']); $arUser = $rsUser->Fetch(); $_SESSION['$arUser']=$arUser; $USER = new CUser; $arAuthResult = $USER->Login($arUser['LOGIN'], $arUser['PASSWORD'], "Y","N"); } //$_SESSION['user777authorize']=$arFields; if(($arFields["IBLOCK_ID"] == 16)&&(CModule::IncludeModule("catalog"))&&(CModule::IncludeModule("sale"))){ $price_product=floatval($arFields["PROPERTY_VALUES"][86]); $quantity_product=floatval($arFields["PROPERTY_VALUES"][87]); if($price_product){ $PRODUCT_ID = $arFields['ID']; $PRICE_TYPE_ID = 1; $arFieldsprice = Array( "PRODUCT_ID" => $PRODUCT_ID, "CATALOG_GROUP_ID" => $PRICE_TYPE_ID, "PRICE" =>$price_product, "CURRENCY" => "RUB", "QUANTITY_FROM" => 1, ); $res = CPrice::GetList( array(), array( "PRODUCT_ID" => $PRODUCT_ID, "CATALOG_GROUP_ID" => $PRICE_TYPE_ID ) ); if ($arr = $res->Fetch()) { CPrice::Update($arr["ID"], $arFieldsprice); } else { CPrice::Add($arFieldsprice,true); } } } if ( ( (($arFields["IBLOCK_ID"] == 2)&& (is_numeric($arFields["PROPERTY_VALUES"][73]))) || (($arFields["IBLOCK_ID"] == 15)&& (is_numeric($arFields["PROPERTY_VALUES"][76]))) || (($arFields["IBLOCK_ID"] == 14)&& (is_numeric($arFields["PROPERTY_VALUES"][78]))) ) && CModule::IncludeModule("catalog") && CModule::IncludeModule("sale") && ((strstr($_SERVER['REQUEST_URI'],'/personal/moy-magazin/'))||(strstr($_SERVER['REQUEST_URI'],'/obyavleniya/add-ads/'))) ) { switch($arFields["IBLOCK_ID"]){ case 2: $price_product=floatval($arFields["PROPERTY_VALUES"][73]); $quantity_product=floatval($arFields["PROPERTY_VALUES"][75]); break; case 14: $price_product=floatval($arFields["PROPERTY_VALUES"][78]); $quantity_product=floatval($arFields["PROPERTY_VALUES"][79]); break; case 15: $price_product=floatval($arFields["PROPERTY_VALUES"][76]); $quantity_product=floatval($arFields["PROPERTY_VALUES"][77]); break; } if($price_product){ $PRODUCT_ID = $arFields['ID']; $PRICE_TYPE_ID = 1; if($quantity_product){ $ar_res_product=CCatalogProduct::GetByID($PRODUCT_ID); if($ar_res_product['QUANTITY']!=""){ $arFields_quant = array( 'QUANTITY' => $quantity_product ); CCatalogProduct::Update($PRODUCT_ID, $arFields_quant); }else{ $arFields_quant = array( 'ID'=>$PRODUCT_ID, 'QUANTITY' => $quantity_product ); CCatalogProduct::Add($arFields_quant); } } $arFieldsprice = Array( "PRODUCT_ID" => $PRODUCT_ID, "CATALOG_GROUP_ID" => $PRICE_TYPE_ID, "PRICE" =>$price_product, "CURRENCY" => "RUB", ); $res = CPrice::GetList( array(), array( "PRODUCT_ID" => $PRODUCT_ID, "CATALOG_GROUP_ID" => $PRICE_TYPE_ID ) ); if ($arr = $res->Fetch()) { CPrice::Update($arr["ID"], $arFieldsprice,true); $_SESSION['price_add']=$arr; } else { CPrice::Add($arFieldsprice,true); } } } // добавление в корзину vip и поднять if(($arFields["IBLOCK_ID"] == 16)&&(($arFields["PROPERTY_VALUES"][81][0]==40)||($arFields["PROPERTY_VALUES"][81][0]==46))){ unset($_SESSION['ELEMENT_ADS_ID']); if(($_REQUEST['CODE'])&&(CModule::IncludeModule("iblock"))){ if((CModule::IncludeModule("catalog"))&&(CModule::IncludeModule("sale"))){ $dbBasketItems = CSaleBasket::GetList( array(), array( "FUSER_ID" => CSaleBasket::GetBasketUserID(), "LID" => SITE_ID, "ORDER_ID" => "NULL" ), false, false, array("ID", "NAME") ); if($arFields["PROPERTY_VALUES"][81][0]==46){ $test_ads="TEST_ADSUP"; } if($arFields["PROPERTY_VALUES"][81][0]==40){ $test_ads="TEST_VIP"; } while ($arBasketItems = $dbBasketItems->Fetch()) { $dbProp = CSaleBasket::GetPropsList(array("SORT" => "ASC", "ID" => "ASC"), array("BASKET_ID" => $arBasketItems["ID"])); if($arProp = $dbProp -> GetNext()) { $props[] = $arProp; $dbProp = CSaleBasket::GetPropsList(array("SORT" => "ASC", "ID" => "ASC"), array("BASKET_ID" => $arBasketItems["ID"])); if($arProp = $dbProp -> GetNext()) { if($arProp['CODE']==$test_ads){ $ELEMENT_ID = intval($arProp['VALUE']); if($ELEMENT_ID==$_REQUEST['CODE']){ $vip=true; } } } } } } } //var_dump($vip);die(); if(!$vip){ $arPropsBasket = array(); if($arFields["PROPERTY_VALUES"][81][0]==46){ $code_price="up-ads"; $arPropsBasket[] = array( "NAME" => "Название: ".$arFields['NAME'], "CODE" => "TEST_ADSUP", "VALUE" => $arFields['ID'] ); } if($arFields["PROPERTY_VALUES"][81][0]==40){ $code_price="vip-ads"; $arPropsBasket[] = array( "NAME" => "Название: ".$arFields['NAME'], "CODE" => "TEST_VIP", "VALUE" => $arFields['ID'] ); } $arSelect2 = Array("ID", "IBLOCK_ID", "NAME","PROPERTY_*"); $arFilter2 = Array("IBLOCK_ID"=>17, "CODE"=>$code_price, "ACTIVE"=>"Y"); $res2 = CIBlockElement::GetList(Array(), $arFilter2, false, Array("nPageSize"=>1), $arSelect2); while($ob2 = $res2->GetNextElement()){ $arFieldIdAds = $ob2->GetFields(); if (CModule::IncludeModule("sale")) { $base_price=CPrice::GetBasePrice($arFieldIdAds['ID']); $arFieldsB = array( "PRODUCT_ID" => $arFieldIdAds['ID'], "PRICE" => $base_price['PRICE'], "CURRENCY" => "RUB", "QUANTITY" => 1, "LID" => LANG, "NAME" => $arFieldIdAds['NAME'], ); $arFieldsB["PROPS"] = $arPropsBasket; $id_basket = CSaleBasket::Add($arFieldsB); $db_res = CSaleBasket::GetPropsList( array( "SORT" => "ASC", "NAME" => "ASC" ), array("BASKET_ID" => $id_basket) ); while ($ar_res = $db_res->Fetch()) { $_SESSION['order_fields_after'][]= $ar_res["NAME"]."=".$ar_res["VALUE"]."<br>"; } } } } unset($_SESSION['NEW_USER_ID']); LocalRedirect('/personal/cart/'); } if(($arFields["IBLOCK_ID"] == 16)&&($arFields["PROPERTY_VALUES"][81][0]==47)){ $_SESSION['ELEMENT_ADS_ID']=$arFields['ID']; } }
if ($withdrawSum > 0) { $arFields = array("SUM_PAID" => $withdrawSum, "USER_ID" => $USER->GetID()); CSaleOrder::Update($arResult["ORDER_ID"], $arFields); if ($withdrawSum == $orderTotalSum) { CSaleOrder::PayOrder($arResult["ORDER_ID"], "Y", False, False); } } } if ($arResult["HAVE_PREPAYMENT"]) { if ($psPreAction && $psPreAction->IsAction()) { $psPreAction->orderId = $arResult["ORDER_ID"]; $psPreAction->orderAmount = $orderTotalSum; $psPreAction->deliveryAmount = $arResult["DELIVERY_PRICE"]; $psPreAction->taxAmount = $arResult["TAX_PRICE"]; $orderData = array(); $dbBasketItems = CSaleBasket::GetList(array("ID" => "ASC"), array("FUSER_ID" => CSaleBasket::GetBasketUserID(), "LID" => SITE_ID, "ORDER_ID" => $arResult["ORDER_ID"]), false, false, array("ID", "QUANTITY", "PRICE", "WEIGHT", "NAME", "CURRENCY", "PRODUCT_ID", "DETAIL_PAGE_URL")); while ($arItem = $dbBasketItems->Fetch()) { $orderData['BASKET_ITEMS'][] = $arItem; } $psPreAction->payOrder($orderData); } } } if (empty($arResult["ERROR"])) { CSaleOrderUserProps::DoSaveUserProfile($USER->GetID(), $arUserResult["PROFILE_ID"], $arUserResult["PROFILE_NAME"], $arUserResult["PERSON_TYPE_ID"], $arUserResult["ORDER_PROP"], $arResult["ERROR"]); } // mail message if (empty($arResult["ERROR"])) { $i = 0; $strOrderList = ""; $arBasketList = array();
/** * */ function ClearUserBasket() { if(!CModule::IncludeModule("sale")) return; if(!defined("BASKET_CLEAR")) define("BASKET_CLEAR", true); $PATH = BASKET_CACHE_PATH . CSaleBasket::GetBasketUserID(); BxClearCache(true, $PATH); }
$arParams["PATH_TO_BASKET"] = trim($arParams["PATH_TO_BASKET"]); $arParams["PATH_TO_ORDER"] = trim($arParams["PATH_TO_ORDER"]); $arParams['SHOW_DELAY'] = isset($arParams['SHOW_DELAY']) && $arParams['SHOW_DELAY'] == 'N' ? 'N' : 'Y'; $arParams['SHOW_NOTAVAIL'] = isset($arParams['SHOW_NOTAVAIL']) && $arParams['SHOW_NOTAVAIL'] == 'N' ? 'N' : 'Y'; $arParams['SHOW_SUBSCRIBE'] = isset($arParams['SHOW_SUBSCRIBE']) && $arParams['SHOW_SUBSCRIBE'] == 'N' ? 'N' : 'Y'; $bReady = false; $bDelay = false; $bNotAvail = false; $bSubscribe = false; $arItems = array(); $arReadyItems = array(); $allSum = 0.0; $allWeight = 0.0; $arBasketItems = array(); $arSetParentWeight = array(); $fuserId = (int) CSaleBasket::GetBasketUserID(true); if ($fuserId > 0) { $rsBaskets = CSaleBasket::GetList(array("ID" => "ASC"), array("FUSER_ID" => $fuserId, "LID" => SITE_ID, "ORDER_ID" => "NULL"), false, false, array("ID", "NAME", "CALLBACK_FUNC", "MODULE", "PRODUCT_ID", "QUANTITY", "DELAY", "CAN_BUY", "PRICE", "WEIGHT", "DETAIL_PAGE_URL", "NOTES", "CURRENCY", "VAT_RATE", "CATALOG_XML_ID", "PRODUCT_XML_ID", "SUBSCRIBE", "DISCOUNT_PRICE", "PRODUCT_PROVIDER_CLASS", "TYPE", "SET_PARENT_ID")); while ($arItem = $rsBaskets->GetNext()) { $arBasketItems[] = $arItem; if (CSaleBasketHelper::isSetItem($arItem)) { $arSetParentWeight[$arItem["SET_PARENT_ID"]] += $arItem["WEIGHT"] * $arItem['QUANTITY']; } } } if (!empty($arBasketItems)) { // count weight for set parent products foreach ($arBasketItems as &$arItem) { if (CSaleBasketHelper::isSetParent($arItem)) { $arItem["WEIGHT"] = $arSetParentWeight[$arItem["ID"]] / $arItem["QUANTITY"]; }
</h1> <div class="breadcrumb"> <?php $APPLICATION->IncludeComponent("bitrix:breadcrumb", "content", array("START_FROM" => "0", "PATH" => "", "SITE_ID" => ""), false); ?> </div> <div class="shadow-item_info"><img border="0" alt="" src="<?php echo SITE_TEMPLATE_PATH; ?> /images/shadow-item_info.png"></div> <?php $APPLICATION->IncludeComponent("bitrix:catalog.search", "shop", array("IBLOCK_TYPE" => $arParams["IBLOCK_TYPE"], "IBLOCK_ID" => $arParams["IBLOCK_ID"], "ELEMENT_SORT_FIELD" => $arParams["ELEMENT_SORT_FIELD"], "ELEMENT_SORT_ORDER" => $arParams["ELEMENT_SORT_ORDER"], "PAGE_ELEMENT_COUNT" => $arParams["PAGE_ELEMENT_COUNT"], "LINE_ELEMENT_COUNT" => $arParams["LINE_ELEMENT_COUNT"], "PROPERTY_CODE" => $arParams["LIST_PROPERTY_CODE"], "OFFERS_CART_PROPERTIES" => $arParams["OFFERS_CART_PROPERTIES"], "OFFERS_FIELD_CODE" => $arParams["LIST_OFFERS_FIELD_CODE"], "OFFERS_PROPERTY_CODE" => $arParams["LIST_OFFERS_PROPERTY_CODE"], "OFFERS_SORT_FIELD" => $arParams["OFFERS_SORT_FIELD"], "OFFERS_SORT_ORDER" => $arParams["OFFERS_SORT_ORDER"], "OFFERS_LIMIT" => $arParams["OFFERS_LIMIT"], "SECTION_URL" => $arParams["SECTION_URL"], "DETAIL_URL" => $arParams["DETAIL_URL"], "BASKET_URL" => $arParams["BASKET_URL"], "ACTION_VARIABLE" => $arParams["ACTION_VARIABLE"], "PRODUCT_ID_VARIABLE" => $arParams["PRODUCT_ID_VARIABLE"], "PRODUCT_QUANTITY_VARIABLE" => $arParams["PRODUCT_QUANTITY_VARIABLE"], "PRODUCT_PROPS_VARIABLE" => $arParams["PRODUCT_PROPS_VARIABLE"], "SECTION_ID_VARIABLE" => $arParams["SECTION_ID_VARIABLE"], "CACHE_TYPE" => $arParams["CACHE_TYPE"], "CACHE_TIME" => $arParams["CACHE_TIME"], "USE_COMPARE" => $arParams["USE_COMPARE"], "PRICE_CODE" => $arParams["PRICE_CODE"], "USE_PRICE_COUNT" => $arParams["USE_PRICE_COUNT"], "SHOW_PRICE_COUNT" => $arParams["SHOW_PRICE_COUNT"], "PRICE_VAT_INCLUDE" => $arParams["PRICE_VAT_INCLUDE"], "PRODUCT_PROPERTIES" => $arParams["PRODUCT_PROPERTIES"], "USE_PRODUCT_QUANTITY" => $arParams["USE_PRODUCT_QUANTITY"], "CONVERT_CURRENCY" => $arParams["CONVERT_CURRENCY"], "CURRENCY_ID" => $arParams["CURRENCY_ID"], "DISPLAY_TOP_PAGER" => $arParams["DISPLAY_TOP_PAGER"], "DISPLAY_BOTTOM_PAGER" => $arParams["DISPLAY_BOTTOM_PAGER"], "PAGER_TITLE" => $arParams["PAGER_TITLE"], "PAGER_SHOW_ALWAYS" => $arParams["PAGER_SHOW_ALWAYS"], "PAGER_TEMPLATE" => $arParams["PAGER_TEMPLATE"], "PAGER_DESC_NUMBERING" => $arParams["PAGER_DESC_NUMBERING"], "PAGER_DESC_NUMBERING_CACHE_TIME" => $arParams["PAGER_DESC_NUMBERING_CACHE_TIME"], "PAGER_SHOW_ALL" => $arParams["PAGER_SHOW_ALL"], "FILTER_NAME" => "searchFilter", "SECTION_ID" => "", "SECTION_CODE" => "", "SECTION_USER_FIELDS" => array(), "INCLUDE_SUBSECTIONS" => "Y", "SHOW_ALL_WO_SECTION" => "Y", "META_KEYWORDS" => "", "META_DESCRIPTION" => "", "BROWSER_TITLE" => "", "ADD_SECTIONS_CHAIN" => "N", "SET_TITLE" => "N", "SET_STATUS_404" => "N", "CACHE_FILTER" => "N", "CACHE_GROUPS" => "N", "RESTART" => "N", "NO_WORD_LOGIC" => "Y", "USE_LANGUAGE_GUESS" => "Y", "CHECK_DATES" => "Y", "CONVERT_CURRENCY" => $arParams["CONVERT_CURRENCY"], "CURRENCY_ID" => $arParams["CURRENCY_ID"], "SHOW_MEASURE" => $arParams["SHOW_MEASURE"]), $component); $rsBasket = CSaleBasket::GetList(array("NAME" => "ASC", "ID" => "ASC"), array("FUSER_ID" => CSaleBasket::GetBasketUserID(), 'LID' => SITE_ID, 'ORDER_ID' => 'NULL'), false, false, array("ID", "PRODUCT_ID", "DELAY")); while ($arBasket = $rsBasket->GetNext()) { if ($arBasket["DELAY"] == "Y") { $delay_items[] = $arBasket["PRODUCT_ID"]; } else { $basket_items[] = $arBasket["PRODUCT_ID"]; } } global $compare_items; ?> <script> $(document).ready(function() { <?php foreach ($delay_items as $item_id) {
public function recalculateBasket($arPost) { global $USER; $arRes = array(); if ($this->hideCoupon != "Y") { if (!empty($arPost['delete_coupon'])) { $arRes['VALID_COUPON'] = DiscountCouponsManager::delete($arPost['delete_coupon']); } else { $oldUse = false; if (array_key_exists('coupon', $arPost)) { $arPost['coupon'] = trim((string) $arPost['coupon']); if ($arPost['coupon'] != '') { $arRes['VALID_COUPON'] = DiscountCouponsManager::add($arPost['coupon']); } else { $oldUse = true; } } if ($oldUse) { if (!isset($arRes["VALID_COUPON"]) || $arRes["VALID_COUPON"] === false) { DiscountCouponsManager::clear(true); } } } } $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)) { if (self::$catalogIncluded === null) { self::$catalogIncluded = Loader::includeModule('catalog'); } if (self::$catalogIncluded) { $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") { $arFields = array(); if (in_array("QUANTITY", $this->columns)) { $arFields["QUANTITY"] = $quantityTmp; } if (in_array("DELAY", $this->columns)) { $arFields["DELAY"] = $delayTmp; } if (!empty($arFields) && ($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") { $arFields = array(); if (in_array("DELAY", $this->columns)) { $arFields["DELAY"] = $delayTmp; } if (!empty($arFields) && ($arItem["DELAY"] != $arFields["DELAY"] && in_array("DELAY", $this->columns))) { CSaleBasket::Update($arItem["ID"], $arFields); } } } } return $arRes; }
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)) { for($i=0; $i<$prdCnt;$i++) { $prdID = $arPrd[mt_rand(0, 9)]; $arProduct = CCatalogProduct::GetByID($prdID["ID"]); $CALLBACK_FUNC = ""; $arCallbackPrice = CSaleBasket::ReReadPrice($CALLBACK_FUNC, "catalog", $prdID["ID"], 1); $arFields = array( "PRODUCT_ID" => $prdID["ID"], "PRODUCT_PRICE_ID" => $arCallbackPrice["PRODUCT_PRICE_ID"], "PRICE" => $arCallbackPrice["PRICE"], "CURRENCY" => $arCallbackPrice["CURRENCY"], "WEIGHT" => $arProduct["WEIGHT"], "QUANTITY" => 1, "LID" => WIZARD_SITE_ID, "DELAY" => "N", "CAN_BUY" => "Y", "NAME" => $prdID["NAME"], "CALLBACK_FUNC" => $CALLBACK_FUNC, "MODULE" => "catalog", "PRODUCT_PROVIDER_CLASS" => "CCatalogProductProvider", "ORDER_CALLBACK_FUNC" => "", "CANCEL_CALLBACK_FUNC" => "", "PAY_CALLBACK_FUNC" => "", "DETAIL_PAGE_URL" => $prdID["DETAIL_PAGE_URL"], "CATALOG_XML_ID" => $prdID["IBLOCK_XML_ID"], "PRODUCT_XML_ID" => $prdID["XML_ID"], "VAT_RATE" => $arCallbackPrice['VAT_RATE'], ); $addres = CSaleBasket::Add($arFields); } $arOrder = Array( "LID" => $arData["SITE_ID"], "PERSON_TYPE_ID" => $arData["PERSON_TYPE_ID"], "PAYED" => "N", "CANCELED" => "N", "STATUS_ID" => "N", "PRICE" => 1, "CURRENCY" => $arData["CURRENCY"], "USER_ID" => $arData["USER_ID"], "PAY_SYSTEM_ID" => $arData["PAY_SYSTEM_ID"], //"PRICE_DELIVERY" => $arData["PRICE_DELIVERY"], //"DELIVERY_ID" => $arData["DELIVERY_ID"], ); $dbFUserListTmp = CSaleUser::GetList(array("USER_ID" => $arData["USER_ID"])); if(empty($dbFUserListTmp)) { $arFields = array( "=DATE_INSERT" => $DB->GetNowFunction(), "=DATE_UPDATE" => $DB->GetNowFunction(), "USER_ID" => $arData["USER_ID"] ); $ID = CSaleUser::_Add($arFields); } $orderID = CSaleOrder::Add($arOrder); CSaleBasket::OrderBasket($orderID, CSaleBasket::GetBasketUserID(), WIZARD_SITE_ID); $dbBasketItems = CSaleBasket::GetList( array("NAME" => "ASC"), array( "FUSER_ID" => CSaleBasket::GetBasketUserID(), "LID" => WIZARD_SITE_ID, "ORDER_ID" => $orderID ), false, false, array("ID", "CALLBACK_FUNC", "MODULE", "PRODUCT_ID", "QUANTITY", "DELAY", "CAN_BUY", "PRICE", "WEIGHT", "NAME") ); $ORDER_PRICE = 0; while ($arBasketItems = $dbBasketItems->GetNext()) { $ORDER_PRICE += roundEx($arBasketItems["PRICE"], SALE_VALUE_PRECISION) * DoubleVal($arBasketItems["QUANTITY"]); } $totalOrderPrice = $ORDER_PRICE + $arData["PRICE_DELIVERY"]; CSaleOrder::Update($orderID, Array("PRICE" => $totalOrderPrice)); foreach($arData["PROPS"] as $val) { $arFields = Array( "ORDER_ID" => $orderID, "ORDER_PROPS_ID" => $val["ID"], "NAME" => $val["NAME"], "CODE" => $val["CODE"], "VALUE" => $val["VALUE"], ); CSaleOrderPropsValue::Add($arFields); } return $orderID; } }
<?php require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_before.php"; ?> <?php if (isset($_SERVER['HTTP_X_REQUESTED_WITH']) && !empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') { // Если к нам идёт Ajax запрос, то ловим его if (isset($_POST["ajax_filter"]) && $_POST["ajax_filter"] == "y") { if (CModule::IncludeModule("sale") && CModule::IncludeModule("catalog")) { Add2BasketByProductID($_POST["productId"], 1, array()); $arBasketItems = array(); $productsCount = 0; $dbBasketItems = CSaleBasket::GetList(array("NAME" => "ASC", "ID" => "ASC"), array("FUSER_ID" => CSaleBasket::GetBasketUserID(), "LID" => SITE_ID, "ORDER_ID" => "NULL"), false, false, array("ID", "QUANTITY", "PRICE")); while ($arItems = $dbBasketItems->Fetch()) { if (strlen($arItems["CALLBACK_FUNC"]) > 0) { CSaleBasket::UpdatePrice($arItems["ID"], $arItems["QUANTITY"]); $arItems = CSaleBasket::GetByID($arItems["ID"]); } $arBasketItems[] = $arItems; } $productsCount = count($arBasketItems); $summ = 0; for ($i = 0; $i <= $productsCount; $i++) { $summ = $summ + $arBasketItems[$i]["PRICE"] * $arBasketItems[$i]["QUANTITY"]; } // Склонение "товаров" $goods_title = declOfNum($productsCount, array('товар', 'товара', 'товаров')); ?> <span class="hc-icon"><i class="icon-cart"></i></span><span class="hidden-xs">В корзине</span> <b><?php echo $productsCount;
<?php //корзина if (CModule::IncludeModule("sale")) { if (sest::checkGET('HL_TypeLicenceIdB') && sest::checkGET('HL_PeriodOfLicenceB') && sest::checkGET('HL_VersionB') && sest::checkGET('ID_ElementB') && sest::checkGET('NameB') && sest::checkGET('CountElementsB') && sest::checkGET('AllSumB') && sest::checkGET('OneSumB')) { $HL_TypeLicenceIdB = $_GET['HL_TypeLicenceIdB']; $HL_PeriodOfLicenceB = $_GET['HL_PeriodOfLicenceB']; $HL_VersionB = $_GET['HL_VersionB']; $ID_ElementB = $_GET['ID_ElementB']; $NameB = $_GET['NameB']; $CountElementsB = $_GET['CountElementsB']; $OneSumB = $_GET['OneSumB']; $AllSumB = $_GET['AllSumB']; //dd( [$AllSumB, $OneSumB] ); $arFields = array("FUSER_ID" => CSaleBasket::GetBasketUserID(), "CURRENCY" => "UAH", "PRODUCT_ID" => $ID_ElementB, "QUANTITY" => $CountElementsB, "MODULE" => "catalog", "NAME" => $NameB, "PRICE" => $OneSumB, "LID" => SITE_ID, "NOTES" => "ура", "CAN_BUY" => "Y", "PRODUCT_PROVIDER_CLASS" => "CCatalogProductProvider"); $arProps = array(); $arProps[] = array("NAME" => "Тип лицензии", "CODE" => "HL_TypeLicenceIdB", "VALUE" => $HL_TypeLicenceIdB); $arProps[] = array("NAME" => "Срок лицензии", "CODE" => "HL_PeriodOfLicenceB", "VALUE" => $HL_PeriodOfLicenceB); $arProps[] = array("NAME" => "Версия", "CODE" => "HL_VersionB", "VALUE" => $HL_VersionB); $arProps[] = array("NAME" => "Цена за копию", "CODE" => "OneSumB", "VALUE" => $OneSumB); $arProps[] = array("NAME" => "Всего - цена", "CODE" => "AllSumB", "VALUE" => $AllSumB); $arFields["PROPS"] = $arProps; CSaleBasket::Add($arFields); } } ?> <?php
<?php CModule::includeModule('catalog'); CModule::includeModule('iblock'); CModule::includeModule('sale'); $dbBasketItems = CSaleBasket::GetList(array(), array("FUSER_ID" => CSaleBasket::GetBasketUserID(), "DELAY" => 'Y', "LID" => SITE_ID, "ORDER_ID" => "NULL"), false, false, array("ID", "PRODUCT_ID")); while ($arItems = $dbBasketItems->Fetch()) { $mxResult = CCatalogSku::GetProductInfo($arItems['PRODUCT_ID']); if (is_array($mxResult)) { $id = $mxResult['ID']; } else { $id = $arItems['PRODUCT_ID']; } $GLOBALS['wished']['ID'][] = $id; }
$arParams["NOTIFY_ACTION"] = trim($arParams["NOTIFY_ACTION"]); if (strlen($arParams["NOTIFY_ACTION"]) <= 0) { $arParams["NOTIFY_ACTION"] = "action"; } $arParams["NOTIFY_USE_CAPTHA"] = $arParams["NOTIFY_USE_CAPTHA"] == "Y" ? "Y" : "N"; $arResult = array("STATUS" => "N", "NOTIFY_URL" => "", "ERRORS" => ""); $notifyOption = COption::GetOptionString("sale", "subscribe_prod", ""); $arNotify = array(); if (strlen($notifyOption) > 0) { $arNotify = unserialize($notifyOption); } if (CModule::IncludeModule('sale') && CModule::IncludeModule('catalog') && $arParams["NOTIFY_ID"] > 0 && !empty($arNotify) && $arNotify[SITE_ID]['use'] == 'Y') { if ($USER->IsAuthorized() && !isset($_SESSION["NOTIFY_PRODUCT"][$USER->GetID()])) { $_SESSION["NOTIFY_PRODUCT"][$USER->GetID()] = array(); if ($USER->IsAuthorized()) { $dbNotifyList = CSaleBasket::GetList(array(), array("FUSER_ID" => CSaleBasket::GetBasketUserID(), "ORDER_ID" => "NULL", "SUBSCRIBE" => "Y", "CAN_BUY" => "N"), false, false, array('PRODUCT_ID', 'TYPE', 'SET_PARENT_ID')); while ($arNotifyList = $dbNotifyList->Fetch()) { if (CSaleBasketHelper::isSetItem($arNotifyList)) { continue; } $_SESSION["NOTIFY_PRODUCT"][$USER->GetID()][] = $arNotifyList["PRODUCT_ID"]; } } } if ($USER->IsAuthorized() && isset($_GET[$arParams["NOTIFY_ACTION"]]) && $_GET[$arParams["NOTIFY_ACTION"]] == "SUBSCRIBE_PRODUCT") { $_SESSION["NOTIFY_PRODUCT"][$USER->GetID()][$arParams["NOTIFY_ID"]] = $arParams["NOTIFY_ID"]; } if ($USER->IsAuthorized()) { if (is_array($_SESSION["NOTIFY_PRODUCT"][$USER->GetID()]) && in_array($arParams["NOTIFY_ID"], $_SESSION["NOTIFY_PRODUCT"][$USER->GetID()])) { $arResult["STATUS"] = "Y"; } else {
function OrderBasket($orderID, $fuserID = 0, $strLang = SITE_ID, $arDiscounts = False) { $orderID = (int) $orderID; if ($orderID <= 0) { return false; } $fuserID = (int) $fuserID; if ($fuserID <= 0) { $fuserID = (int) CSaleBasket::GetBasketUserID(true); } if ($fuserID <= 0) { return false; } $arOrder = array(); if (empty($arOrder)) { $rsOrders = CSaleOrder::GetList(array(), array('ID' => $orderID), false, false, array('ID', 'USER_ID', 'RECURRING_ID', 'LID', 'RESERVED')); if (!($arOrder = $rsOrders->Fetch())) { return false; } $arOrder['RECURRING_ID'] = (int) $arOrder['RECURRING_ID']; } $boolRecurring = $arOrder['RECURRING_ID'] > 0; $needSaveCoupons = false; $dbBasketList = CSaleBasket::GetList(array("PRICE" => "DESC"), array("FUSER_ID" => $fuserID, "LID" => $strLang, "ORDER_ID" => 0), false, false, array('ID', 'ORDER_ID', 'PRODUCT_ID', 'MODULE', 'CAN_BUY', 'DELAY', 'ORDER_CALLBACK_FUNC', 'PRODUCT_PROVIDER_CLASS', 'QUANTITY')); while ($arBasket = $dbBasketList->Fetch()) { $arFields = array(); if ($arBasket["DELAY"] == "N" && $arBasket["CAN_BUY"] == "Y") { if (!empty($arBasket["ORDER_CALLBACK_FUNC"]) || !empty($arBasket["PRODUCT_PROVIDER_CLASS"])) { /** @var $productProvider IBXSaleProductProvider */ if ($productProvider = CSaleBasket::GetProductProvider($arBasket)) { $arQuery = array("PRODUCT_ID" => $arBasket["PRODUCT_ID"], "QUANTITY" => $arBasket["QUANTITY"], 'BASKET_ID' => $arBasket['ID']); if ($boolRecurring) { $arQuery['RENEWAL'] = 'Y'; $arQuery['USER_ID'] = $arOrder['USER_ID']; $arQuery['SITE_ID'] = $strLang; } $arFields = $productProvider::OrderProduct($arQuery); } else { if ($boolRecurring) { $arFields = CSaleBasket::ExecuteCallbackFunction($arBasket["ORDER_CALLBACK_FUNC"], $arBasket["MODULE"], $arBasket["PRODUCT_ID"], $arBasket["QUANTITY"], 'Y', $arOrder['USER_ID'], $strLang); } else { $arFields = CSaleBasket::ExecuteCallbackFunction($arBasket["ORDER_CALLBACK_FUNC"], $arBasket["MODULE"], $arBasket["PRODUCT_ID"], $arBasket["QUANTITY"]); } } if (!empty($arFields) && is_array($arFields)) { $arFields["CAN_BUY"] = "Y"; $arFields["ORDER_ID"] = $orderID; $needSaveCoupons = true; } else { $arFields = array('CAN_BUY' => 'N'); $removeCoupon = DiscountCouponsManager::deleteApplyByProduct(array('MODULE' => $arBasket['MODULE'], 'PRODUCT_ID' => $arBasket['PRODUCT_ID'], 'BASKET_ID' => $arBasket['ID'])); } } else { $arFields["ORDER_ID"] = $orderID; $needSaveCoupons = true; } if (!empty($arFields)) { if (CSaleBasket::Update($arBasket["ID"], $arFields)) { $_SESSION["SALE_BASKET_NUM_PRODUCTS"][SITE_ID]--; } } } } //end of while if ($_SESSION["SALE_BASKET_NUM_PRODUCTS"][SITE_ID] < 0) { $_SESSION["SALE_BASKET_NUM_PRODUCTS"][SITE_ID] = 0; } foreach (GetModuleEvents("sale", "OnBasketOrder", true) as $arEvent) { ExecuteModuleEventEx($arEvent, array($orderID, $fuserID, $strLang, $arDiscounts)); } if ($needSaveCoupons) { DiscountCouponsManager::finalApply(); DiscountCouponsManager::saveApplied(); } //reservation if ($arOrder['RESERVED'] != "Y" && COption::GetOptionString("sale", "product_reserve_condition") == "O") { if (!CSaleOrder::ReserveOrder($orderID, "Y")) { return false; } } return true; }
<?php $APPLICATION->IncludeComponent("bitrix:catalog.bigdata.products", "main", array("LINE_ELEMENT_COUNT" => 4, "TEMPLATE_THEME" => isset($arParams['TEMPLATE_THEME']) ? $arParams['TEMPLATE_THEME'] : '', "DETAIL_URL" => $arResult["FOLDER"] . $arResult["URL_TEMPLATES"]["element"], "BASKET_URL" => $arParams["BASKET_URL"], "ACTION_VARIABLE" => (!empty($arParams["ACTION_VARIABLE"]) ? $arParams["ACTION_VARIABLE"] : "action") . "_cbdp", "PRODUCT_ID_VARIABLE" => $arParams["PRODUCT_ID_VARIABLE"], "PRODUCT_QUANTITY_VARIABLE" => $arParams["PRODUCT_QUANTITY_VARIABLE"], "ADD_PROPERTIES_TO_BASKET" => isset($arParams["ADD_PROPERTIES_TO_BASKET"]) ? $arParams["ADD_PROPERTIES_TO_BASKET"] : '', "PRODUCT_PROPS_VARIABLE" => $arParams["PRODUCT_PROPS_VARIABLE"], "PARTIAL_PRODUCT_PROPERTIES" => isset($arParams["PARTIAL_PRODUCT_PROPERTIES"]) ? $arParams["PARTIAL_PRODUCT_PROPERTIES"] : '', "SHOW_OLD_PRICE" => $arParams['SHOW_OLD_PRICE'], "SHOW_DISCOUNT_PERCENT" => $arParams['SHOW_DISCOUNT_PERCENT'], "PRICE_CODE" => $arParams["PRICE_CODE"], "SHOW_PRICE_COUNT" => $arParams["SHOW_PRICE_COUNT"], "PRODUCT_SUBSCRIPTION" => $arParams['PRODUCT_SUBSCRIPTION'], "PRICE_VAT_INCLUDE" => $arParams["PRICE_VAT_INCLUDE"], "USE_PRODUCT_QUANTITY" => $arParams['USE_PRODUCT_QUANTITY'], "SHOW_NAME" => "Y", "SHOW_IMAGE" => "Y", "CAN_BUY" => "Y", "MESS_BTN_BUY" => $arParams['MESS_BTN_BUY'], "MESS_BTN_DETAIL" => $arParams['MESS_BTN_DETAIL'], "MESS_BTN_SUBSCRIBE" => $arParams['MESS_BTN_SUBSCRIBE'], "MESS_NOT_AVAILABLE" => $arParams['MESS_NOT_AVAILABLE'], "PAGE_ELEMENT_COUNT" => $arParams['BIG_DATA_ELEMENTS'] ? $arParams['BIG_DATA_ELEMENTS'] : 8, "SHOW_FROM_SECTION" => "Y", "IBLOCK_TYPE" => $arParams["IBLOCK_TYPE"], "IBLOCK_ID" => $arParams["IBLOCK_ID"], "DEPTH" => "2", "CACHE_TYPE" => $arParams["CACHE_TYPE"], "CACHE_TIME" => $arParams["CACHE_TIME"], "CACHE_GROUPS" => $arParams["CACHE_GROUPS"], "SHOW_PRODUCTS_" . $arParams["IBLOCK_ID"] => "Y", "HIDE_NOT_AVAILABLE" => $arParams["HIDE_NOT_AVAILABLE"], "CONVERT_CURRENCY" => $arParams["CONVERT_CURRENCY"], "CURRENCY_ID" => $arParams["CURRENCY_ID"], "DISPLAY_COMPARE" => $arParams["USE_COMPARE"], "DISPLAY_WISH_BUTTONS" => $arParams["DISPLAY_WISH_BUTTONS"], "COMPARE_NAME" => $arParams["COMPARE_NAME"], "USE_TITLE_BLOCK" => "Y", "TITLE_BLOCK" => GetMessage("TITLE_BLOCK"), "SECTION_ID" => $arSection["ID"], "SECTION_CODE" => "", "SECTION_ELEMENT_ID" => "", "SECTION_ELEMENT_CODE" => "", "LABEL_PROP_" . $arParams["IBLOCK_ID"] => $arParams['LABEL_PROP'], "PROPERTY_CODE_" . $arParams["IBLOCK_ID"] => $arParams["LIST_PROPERTY_CODE"], "PROPERTY_CODE_" . $arRecomData['OFFER_IBLOCK_ID'] => $arParams["LIST_OFFERS_PROPERTY_CODE"], "CART_PROPERTIES_" . $arParams["IBLOCK_ID"] => $arParams["PRODUCT_PROPERTIES"], "CART_PROPERTIES_" . $arRecomData['OFFER_IBLOCK_ID'] => $arParams["OFFERS_CART_PROPERTIES"], "ADDITIONAL_PICT_PROP_" . $arParams["IBLOCK_ID"] => $arParams['ADD_PICT_PROP'], "ADDITIONAL_PICT_PROP_" . $arRecomData['OFFER_IBLOCK_ID'] => $arParams['OFFER_ADD_PICT_PROP'], "OFFER_TREE_PROPS_" . $arRecomData['OFFER_IBLOCK_ID'] => $arParams["OFFER_TREE_PROPS"], "RCM_TYPE" => isset($arParams['BIG_DATA_RCM_TYPE']) ? $arParams['BIG_DATA_RCM_TYPE'] : ''), $component, array("HIDE_ICONS" => "Y")); ?> <?php } ?> </div> </div> <?php } ?> <div style="clear: both"></div> <?php $rsBasket = CSaleBasket::GetList(array("NAME" => "ASC", "ID" => "ASC"), array("FUSER_ID" => CSaleBasket::GetBasketUserID(), "LID" => SITE_ID, "ORDER_ID" => "NULL", "CAN_BUY" => "Y", "DELAY" => "N", "SUBSCRIBE" => "N"), false, false, array("ID", "PRODUCT_ID", "QUANTITY", "SET_PARENT_ID", "TYPE")); while ($arBasket = $rsBasket->GetNext()) { if (CSaleBasketHelper::isSetItem($arBasket)) { continue; } if ($arBasket["DELAY"] == "Y") { $delay_items[] = $arBasket["PRODUCT_ID"]; } else { $basket_items[] = $arBasket["PRODUCT_ID"]; } } global $compare_items; ?> <script> $(document).ready(function(){ <?php
} 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"]; } }
if (strlen($_REQUEST["BasketRefresh"]) > 0 || strlen($_REQUEST["BasketOrder"]) > 0 || strlen($_REQUEST[$arParams["ACTION_VARIABLE"]]) > 0 ) { // todo: tmp hack until ajax recalculation is made if (isset($_REQUEST["BasketRefresh"]) && strlen($_REQUEST["BasketRefresh"]) > 0) unset($_REQUEST["BasketOrder"]); // if action is performed if (strlen($_REQUEST[$arParams["ACTION_VARIABLE"]]) > 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") ); $arItem = $dbBasketItems->Fetch(); if ($arItem && !CSaleBasketHelper::isSetItem($arItem)) { if ($_REQUEST[$arParams["ACTION_VARIABLE"]] == "delete" && in_array("DELETE", $arParams["COLUMNS_LIST"])) { CSaleBasket::Delete($arItem["ID"]); }
<?php define("NOT_CHECK_PERMISSIONS", true); require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_before.php"; if ($_SERVER["REQUEST_METHOD"] == "POST" && strlen($_POST["basketChange"]) > 0 && check_bitrix_sessid()) { if (isset($_POST["site_id"])) { $site_id = $_POST["site_id"]; } if (isset($_SESSION["SALE_BASKET_NUM_PRODUCTS"][$site_id])) { $num_products = $_SESSION["SALE_BASKET_NUM_PRODUCTS"][$site_id]; } else { if (!CModule::IncludeModule("sale")) { return; } $fUserID = CSaleBasket::GetBasketUserID(True); $fUserID = IntVal($fUserID); $num_products = 0; if ($fUserID > 0) { $dbRes = CSaleBasket::GetList(array(), array("FUSER_ID" => $fUserID, "LID" => $site_id, "ORDER_ID" => "NULL", "CAN_BUY" => "Y", "DELAY" => "N", "SUBSCRIBE" => "N")); while ($arItem = $dbRes->GetNext()) { if (!CSaleBasketHelper::isSetItem($arItem)) { $num_products++; } } } $_SESSION["SALE_BASKET_NUM_PRODUCTS"][$site_id] = intval($num_products); } $APPLICATION->RestartBuffer(); echo $num_products; die; }
<?php if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) { die; } if (!CModule::IncludeModule("sale")) { ShowError(GetMessage("SALE_MODULE_NOT_INSTALL")); return; } $arParams["PATH_TO_BASKET"] = Trim($arParams["PATH_TO_BASKET"]); $arParams["PATH_TO_ORDER"] = Trim($arParams["PATH_TO_ORDER"]); $dbBaket = CSaleBasket::GetList(array("NAME" => "ASC"), array("FUSER_ID" => CSaleBasket::GetBasketUserID(), "LID" => SITE_ID, "ORDER_ID" => "NULL")); $bReady = False; $bDelay = False; $bNotAvail = False; $bSubscribe = False; $arItems = array(); while ($arBasket = $dbBaket->GetNext()) { if ($arBasket["DELAY"] == "N" && $arBasket["CAN_BUY"] == "Y") { $bReady = True; } elseif ($arBasket["DELAY"] == "Y" && $arBasket["CAN_BUY"] == "Y") { $bDelay = True; } elseif ($arBasket["CAN_BUY"] == "N" && $arBasket["SUBSCRIBE"] == "N") { $bNotAvail = True; } elseif ($arBasket["CAN_BUY"] == "N" && $arBasket["SUBSCRIBE"] == "Y") { $bSubscribe = True; } $arBasket["PRICE_FORMATED"] = SaleFormatCurrency($arBasket["PRICE"], $arBasket["CURRENCY"]); $arItems[] = $arBasket; } $arResult["READY"] = $bReady ? "Y" : "N";
<?php // в модуле интернет-магазина нужно включить на стройку - "Использовать совместимость для просмотренных товаров каталога" $countViewedProducts = 0; $GLOBALS['arViewedProducts'] = array(); if (\Bitrix\Main\Loader::includeModule("catalog") && \Bitrix\Main\Loader::includeModule("sale")) { $arFilter["FUSER_ID"] = CSaleBasket::GetBasketUserID(); if (\Bitrix\Main\Config\Option::get("sale", "viewed_capability", "") == "Y") { $viewedIterator = \Bitrix\Catalog\CatalogViewedProductTable::getList(array("filter" => $arFilter, "select" => array("ID", "PRODUCT_ID"), "order" => array("DATE_VISIT" => "DESC"))); while ($row = $viewedIterator->fetch()) { $GLOBALS['arViewedProducts'][] = $row['PRODUCT_ID']; $countViewedProducts++; } } }
public function getItems($orderId = null) { if (!isset($this->items) || $this->tainted) { $className = $this->itemClass; $result = array(); \CModule::IncludeModule('sale'); $arFilter = $orderId ? array('ORDER_ID' => $orderId) : array("FUSER_ID" => \CSaleBasket::GetBasketUserID(), 'ORDER_ID' => null); $dbBasketItems = \CSaleBasket::GetList(array("NAME" => "ASC", "ID" => "ASC"), $arFilter, false, false, array()); while ($item = $dbBasketItems->Fetch()) { $this->itemsRaw[] = $item; $item = new $className($item, $this); $this->items[] = $item; } $this->tainted = false; } return $this->items; }
$context = stream_context_create(array( 'http' => array( 'method' => 'POST', 'header' => 'Content-Type: application/json'.PHP_EOL, 'content' => '{"api_auth_token": "'.$secret.'"}' ) )); $api_answer = json_decode(file_get_contents($token_url, FALSE, $context)); if (!$api_answer) { throw new Exception(GetMessage("EXCEPTION_NO_API_ANSWER", array("#URL#" => $token_url))); } if (!($arResult['WIDGET_TOKEN'] = $api_answer->token)) { throw new Exception(GetMessage("EXCEPTION_NO_WIDGET_TOKEN")); } if (!($arResult['GP_DELIVERY_DESCRIPTION'] = $api_answer->description)) { throw new Exception(GetMessage("EXCEPTION_NO_DELIVERY_DESCRIPTION")); } $arBasketItems = array(); $dbBasketItems = CSaleBasket::GetList( array("NAME" => "ASC", "ID" => "ASC"), array("FUSER_ID" => CSaleBasket::GetBasketUserID(), "LID" => SITE_ID, "ORDER_ID" => "NULL") ); while ($arItems = $dbBasketItems->Fetch()) { if (strlen($arItems["CALLBACK_FUNC"]) > 0) { CSaleBasket::UpdatePrice($arItems["ID"], $arItems["CALLBACK_FUNC"], $arItems["MODULE"], $arItems["PRODUCT_ID"], $arItems["QUANTITY"]); $arItems = CSaleBasket::GetByID($arItems["ID"]); } $arBasketItems[] = $arItems; } $arResult['WIDGET_ITEMS'] = array(); $ESTIMATED_PRICE_TYPE_ID = 4; foreach($arBasketItems as $index=>$item) { $widgetItem = array(); $widgetItem['price'] = $item['PRICE']; $widgetItem['shop_good_code'] = $item['PRODUCT_ID'];
} $arSkuTmp["ID"] = $arOffer["ID"]; foreach ($arOffer["PRICES"] as $code => $arPrice) { if ($arPrice["CAN_ACCESS"]) { $arSkuTmp["PRICES"][$code]["TITLE"] = $pricesCount > 1 ? $arResult["CAT_PRICES"][$code]["TITLE"] : ""; if ($arPrice["DISCOUNT_VALUE"] < $arPrice["VALUE"]) { $arSkuTmp["PRICES"][$code]["PRICE"] = $arPrice["PRINT_VALUE"]; $arSkuTmp["PRICES"][$code]["DISCOUNT_PRICE"] = $arPrice["PRINT_DISCOUNT_VALUE"]; } else { $arSkuTmp["PRICES"][$code]["PRICE"] = $arPrice["PRINT_VALUE"]; $arSkuTmp["PRICES"][$code]["DISCOUNT_PRICE"] = ""; } } } if (CModule::IncludeModule('sale')) { $dbBasketItems = CSaleBasket::GetList(array("ID" => "ASC"), array("PRODUCT_ID" => $arOffer['ID'], "FUSER_ID" => CSaleBasket::GetBasketUserID(), "LID" => SITE_ID, "ORDER_ID" => "NULL"), false, false, array()); $arSkuTmp["CART"] = ""; if ($arBasket = $dbBasketItems->Fetch()) { if ($arBasket["DELAY"] == "Y") { $arSkuTmp["CART"] = "delay"; } elseif ($arBasket["SUBSCRIBE"] == "Y" && $arNotify[SITE_ID]['use'] == 'Y') { $arSkuTmp["CART"] = "inSubscribe"; } else { $arSkuTmp["CART"] = "inCart"; } } } $arSkuTmp["CAN_BUY"] = $arOffer["CAN_BUY"]; if ($arOffer["CAN_BUY"]) { $allSkuNotAvailable = false; }