Your IP : 13.58.2.42
<? 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;