Ejemplo n.º 1
0
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;
}
Ejemplo n.º 2
0
 /**
  * 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;
 }
Ejemplo n.º 3
0
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;
}
Ejemplo n.º 4
0
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;
}
Ejemplo n.º 5
0
 /**
  * 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;
 }
Ejemplo n.º 6
0
 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;
 }
Ejemplo n.º 7
0
	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>";
	}
Ejemplo n.º 8
0
$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");
        }
    }
}
Ejemplo n.º 9
0
        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();
Ejemplo n.º 10
0
    /**
     * функция после добавлением элемента в инфоблока
     * @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'];

         }



         }
Ejemplo n.º 11
0
         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();
Ejemplo n.º 12
0
Archivo: init.php Proyecto: ASDAFF/alba
/**
 * 
 */
function ClearUserBasket()
{
	if(!CModule::IncludeModule("sale"))
		return;
		
	if(!defined("BASKET_CLEAR"))
		define("BASKET_CLEAR", true);
				
	$PATH = BASKET_CACHE_PATH . CSaleBasket::GetBasketUserID();
	
	BxClearCache(true, $PATH);
}
Ejemplo n.º 13
0
$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"];
        }
Ejemplo n.º 14
0
</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) {
Ejemplo n.º 15
0
 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;
 }
Ejemplo n.º 16
0
		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;
			}
		}
Ejemplo n.º 17
0
<?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;
Ejemplo n.º 18
0

<?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 
Ejemplo n.º 19
0
<?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;
}
Ejemplo n.º 20
0
$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 {
Ejemplo n.º 21
0
 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;
 }
Ejemplo n.º 22
0
					<?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 
Ejemplo n.º 23
0
         } 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"];
     }
 }
Ejemplo n.º 24
0
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"]);
				}
Ejemplo n.º 25
0
<?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;
}
Ejemplo n.º 26
0
<?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";
Ejemplo n.º 27
0
<?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++;
        }
    }
}
Ejemplo n.º 28
0
 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;
 }
Ejemplo n.º 29
0
    
	$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'];
Ejemplo n.º 30
0
 }
 $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;
 }