Your IP : 13.58.2.42


Current Path : /home/bitrix/ext_www/dev.home-comfort.in.ua/ajax/
Upload File :
Current File : /home/bitrix/ext_www/dev.home-comfort.in.ua/ajax/add2basket.php

<? require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");

$_REQUEST["action"] = "ADD2BASKET"; // чтобы в ссылках везде не менять. Это нужно в crm_provider.php

CModule::IncludeModule("iblock");
CModule::IncludeModule("catalog");

$id = (int) (!empty($_REQUEST['id'])?$_REQUEST['id']:$_REQUEST['ID']);

//$rewriteFields['PRODUCT_PROVIDER_CLASS'] = "CRMCatalogProductProvider";

if(isset($id) && isset($_REQUEST['quantity'])){
    $quantity = intval($_REQUEST['quantity']);
    Add2BasketByProductID( $id, $quantity );
}else{
    Add2BasketByProductID(
        $id,
        1,
        $rewriteFields,
        []
    );
}



// Alex: ищем комплекты #129095
$filterSet = [
	array(
		"LOGIC" => "OR",
		"PROPERTY_PRODUCTS_1" => $id,
		"PROPERTY_PRODUCTS_2" => $id,
		"PROPERTY_PRODUCTS_3" => $id,
		"PROPERTY_PRODUCTS_4" => $id,
	),

];
$arSet = CIBlockElement::GetList([],$filterSet,false,false,["ID","NAME","PROPERTY_PRODUCTS_1","PROPERTY_PRODUCTS_2","PROPERTY_PRODUCTS_3","PROPERTY_PRODUCTS_4","TEXT_MAIN", "TEXT_NO_MAIN", "TEXT_BASKET"])->Fetch();
// END: ищем комплекты


$arRelatedProdIds = [];
$resElem = CIBlockElement::GetList([],["ID"=>$id],false,false,["ID","IBLOCK_ID","NAME","PROPERTY_RELATE", "IBLOCK_SECTION_ID","CATALOG_PRICE_1", "CATALOG_GROUP_1", "DETAIL_PICTURE", "PREVIEW_PICTURE", "CODE", "PROPERTY_PICTURE1_HOME_NEW", "DETAIL_PAGE_URL", "PROPERTY_RELATED_PRODUCTS"]);
while($obElem = $resElem->GetNext())
{
	if(!empty($obElem["PROPERTY_PICTURE1_HOME_NEW_VALUE"]))
		$obElem["PICTURE"] = CFile::ResizeImageGet($obElem["PROPERTY_PICTURE1_HOME_NEW_VALUE"], ["width"=>150,"height"=>150])["src"];

	$element = $obElem;
	
	if(!empty($obElem["PROPERTY_RELATED_PRODUCTS_VALUE"]))
		$arRelatedProdIds[] = $obElem["PROPERTY_RELATED_PRODUCTS_VALUE"];
}

// получение инфомации

if(!empty($arSet)) // Комплекты
{
	$allIdsSet = array_merge($arSet["PROPERTY_PRODUCTS_1_VALUE"],$arSet["PROPERTY_PRODUCTS_2_VALUE"],$arSet["PROPERTY_PRODUCTS_3_VALUE"],$arSet["PROPERTY_PRODUCTS_4_VALUE"]);

	$arSetProducts = [];
	$cache = new CPHPCache();

	if($cache->InitCache(30,"relate_prod_".$id, "/"))
	{
		$arSetProducts = $cache->GetVars();
	}
	elseif($cache->StartDataCache())
	{
		$resSet = CIBlockElement::GetList([],["ID"=>$allIdsSet, "ACTIVE"=>"Y"],false,false,["ID","IBLOCK_ID","NAME","IBLOCK_SECTION_ID", "DETAIL_PICTURE", "PREVIEW_PICTURE","CATALOG_PRICE_1", "CATALOG_GROUP_1", "CODE", "DETAIL_PAGE_URL", "PROPERTY_PICTURE1_HOME_NEW"]);
		while($obSet = $resSet->GetNext())
		{
			if(!empty($obSet["PROPERTY_PICTURE1_HOME_NEW_VALUE"]))
				$obSet["PICTURE"] = CFile::ResizeImageGet($obSet["PROPERTY_PICTURE1_HOME_NEW_VALUE"],["width"=>140,"height"=>140])['src'];

			$arSetProducts[$obSet["ID"]] = $obSet;
		}
		$cache->EndDataCache($arSetProducts);
	}

	if(!empty($arSetProducts))
	{
		// для каждой группы выберем по одному товару
		$arSetGroup = [1=>[],2=>[],3=>[],4=>[],5=>[]];

		// уберем группу нашего текущего товара
		foreach ($arSetGroup as $n => $arGSet)
		{
			if(in_array($id, $arSet["PROPERTY_PRODUCTS_" . $n . "_VALUE"]))
			{
				unset($arSetGroup[$n]);
			}
		}

		// смотрим по каждой обязательные товары
		foreach ($arSetGroup as $n => $arGSet)
		{
			if(empty($arSet["PROPERTY_PRODUCTS_" . $n . "_VALUE"]))
				continue;

			$keysReqProds = array_keys($arSet["PROPERTY_PRODUCTS_" . $n . "_DESCRIPTION"], "on"); // все осн.товары в группе

			if(!empty($keysReqProds))
			{
				foreach ($keysReqProds as $key)
				{
					$idProd = $arSet["PROPERTY_PRODUCTS_" . $n . "_VALUE"][$key]; // IDшник основного товара

					if(!empty($arSetProducts[$idProd]))
					{
						$arSetGroup[$n] = $arSetProducts[$idProd];
						break;
					}
				}
			}
		}

		// теперь смотрим где нет товаров и добавляем необязательными
		foreach ($arSetGroup as $n => $arGSet)
		{
			// смотрим чтобы блок был и в группе уже не было товаров
			if(empty($arSet["PROPERTY_PRODUCTS_" . $n . "_VALUE"]) || !empty($arGSet))
				continue;

			foreach ($arSet["PROPERTY_PRODUCTS_" . $n . "_VALUE"] as $idProd)
			{
				if(!empty($arSetProducts[$idProd]))
				{
					$arSetGroup[$n] = $arSetProducts[$idProd];
					break;
				}
			}
		}
	}
}
elseif(count($arRelatedProdIds) > 0) // сопутка
{
	$arRelate = [];
	$cache = new CPHPCache();
	
	if($cache->InitCache(36000,"relate_prod_".$id, "/"))
	{
		$arRelate = $cache->GetVars();
	}
	elseif($cache->StartDataCache())
	{
		$resRelate = CIBlockElement::GetList([],["ID"=>$arRelatedProdIds],false,Array("nPageSize"=>4),["ID","IBLOCK_ID","NAME","IBLOCK_SECTION_ID", "DETAIL_PICTURE", "PREVIEW_PICTURE", "CATALOG_PRICE_1", "CATALOG_GROUP_1", "CODE", "DETAIL_PAGE_URL", "PROPERTY_PICTURE1_HOME_NEW"]);
		while($obRelate = $resRelate->GetNext())
		{
			if(!empty($obRelate["PROPERTY_PICTURE1_HOME_NEW_VALUE"]))
				$obRelate["PICTURE"] = CFile::ResizeImageGet($obRelate["PROPERTY_PICTURE1_HOME_NEW_VALUE"],["width"=>140,"height"=>140])['src'];
			
			$arRelate[] = $obRelate;
		}
		$cache->EndDataCache($arRelate);
	}	
}

// вывод

// основной блок
$html = '
<div class="cart-modal bem">
	<div class="cart-modal__holder">
		<div class="cart-modal__head">
			<div class="cart-modal__head-content">
				<div class="cart-modal__head-title">
					<span class="cart-modal__heading">Товар успешно добавлен в корзину</span>
				</div>
				<div class="cart-modal__head-shopping">
					<a href="#" class="cart-modal__shopping-link">Продолжить покупки</a>
				</div>
			</div>
		</div>
		<div class="cart-modal__product">
			<div class="cart-modal__product-content">
				<div class="cart-modal__thumb">
					<a href="'.$element["DETAIL_PAGE_URL"].'" class="cart-modal__thumb-link"><img src="" class="cart-modal__thumb-img">
					<img src="'.$element["PICTURE"].'" class="cart-modal__thumb-img">
					</a>
				</div>
				<div class="cart-modal__detail">
					<div class="cart-modal__name">
						<a href="'.$element["DETAIL_PAGE_URL"].'" class="cart-modal__name-link">'.$element["NAME"].'</a>
					</div>
				</div>
				<div class="cart-modal__checkout">
					<div class="cart-modal__price">
						<div class="cart-modal__price-old"></div>
						<div class="cart-modal__price-actual">
							<div class="cart-modal__actual-title">
								<span class="cart-modal__actual-label">Цена</span>
							</div>
							<div class="cart-modal__actual-value">'.CurrencyFormat($element["CATALOG_PRICE_1"], "RUB").'</div>
						</div>
					</div>
					<div class="cart-modal__purchase">
						<a href="/cart/order/" class="cart-modal__order-btn button-primary">Оформить заказ</a>
					</div>
				</div>
			</div>
		</div>
';



if(!empty($arSetGroup))
{
	$html .= '
	<div class="related-basket">
		<div class="element-item__title-wrap">
			<span class="element-item__title">Не забудьте купить</span>
		</div>

		<div class="catalog-items bem main js-items is-related">
			<ul class="catalog-items__cols js-items-inner">';

				foreach($arSetGroup as $set)
				{
					if(empty($set))
						continue;

					$html .= '
					<li class="catalog-items__col js-item" data-ids="'.$set["ID"].'" id="" itemscope="" itemtype="http://schema.org/Product">
						<div class="catalog-plate bem">
							<div class="catalog-plate__wrap">
								<div class="catalog-plate__img-holder">
									<a href="'.$set["DETAIL_PAGE_URL"].'">
										<img src="'.$set["PICTURE"].'" alt="'.$set["NAME"].'" itemprop="image">
									</a>
								</div>
								<div class="catalog-plate__caption" data-height-group="tiles-caption">
									<a itemprop="url" href="'.$set["DETAIL_PAGE_URL"].'" class="catalog-plate__name">
										<span itemprop="name">'.$set["NAME"].'</span>
									</a>
								</div>
			
								<div class="catalog-plate__prices" data-height-group="tiles-prices">
									<span class="catalog-plate__current-price js-price">
									<span>'.CurrencyFormat($set["CATALOG_PRICE_1"], "RUB").'</span></span>
								</div>
								<div style="display: none" itemprop="offers" itemscope="" itemtype="http://schema.org/Offer">
									<span itemprop="price">'.$set["CATALOG_PRICE_1"].'</span>
									<span itemprop="priceCurrency">RUB</span>
								</div>
								
								<a href="/ajax/add2basket.php?ID='.$set["ID"].'" class="js-buy-button related_prod__btn button-primary js-modal">купить</a>
							</div>
						</div>
					</li>';
				}

	$html .= '
			</ul>
		</div> <!-- /.catalog-items -->
	</div>';
}
elseif(!empty($arRelate)) // сопутка
{
	$html .= '
	<div class="related-basket">
		<div class="element-item__title-wrap">
			<span class="element-item__title">Сопутствующие товары</span>
		</div>

		<div class="catalog-items bem main js-items is-related">
			<ul class="catalog-items__cols js-items-inner">';
	
	
	foreach($arRelate as $relate)
	{		
		$html .= '
		<li class="catalog-items__col js-item" data-ids="'.$relate["ID"].'" id="" itemscope="" itemtype="http://schema.org/Product">
			<div class="catalog-plate bem">
				<div class="catalog-plate__wrap">
					<div class="catalog-plate__img-holder">
						<a href="'.$relate["DETAIL_PAGE_URL"].'">
							<img src="'.$relate["PICTURE"].'" alt="'.$relate["NAME"].'" itemprop="image">
						</a>
					</div>
					<div class="catalog-plate__caption" data-height-group="tiles-caption">
						<a itemprop="url" href="'.$relate["DETAIL_PAGE_URL"].'" class="catalog-plate__name">
							<span itemprop="name">'.$relate["NAME"].'</span>
						</a>
					</div>

					<div class="catalog-plate__prices" data-height-group="tiles-prices">
						<span class="catalog-plate__current-price js-price">
						<span>'.CurrencyFormat($relate["CATALOG_PRICE_1"], "RUB").'</span></span>
					</div>
					<div style="display: none" itemprop="offers" itemscope="" itemtype="http://schema.org/Offer">
						<span itemprop="price">'.$relate["CATALOG_PRICE_1"].'</span>
						<span itemprop="priceCurrency">RUB</span>
					</div>
					
					<a href="/ajax/add2basket.php?ID='.$relate["ID"].'" class="js-buy-button related_prod__btn button-primary js-modal">купить</a>
				</div>
			</div>
		</li>';
	}
	$html .= '
			</ul>
		</div> <!-- /.catalog-items -->
	</div>';
}

$html .= '</div></div>';
echo $html;