if(CModule::IncludeModule('sale')){
$result = Bitrix\Sale\Internals\DiscountTable::getList(
array(
'filter' => array("LID" => "s4", 'ACTIVE' => 'Y'), // фильтр по сайту s4, только активные (можно подставить SITE_ID)
)
);
while ($data = $result->fetch()){
if($data['SHORT_DESCRIPTION_STRUCTURE']['VALUE'] >= '15'){ // размер скидки в списке маркетинговых акций
foreach ($data['CONDITIONS_LIST']['CHILDREN'] as $arData){
foreach ($arData['CHILDREN'] as $arElements){ // получаем ID секций и элементов
switch ($arElements['CLASS_ID']) {
case "CondIBSection": // отбор секций
//echo "**";print_r($arElements['DATA']['value']);echo "**
";
$sectionsvalue['SECTION_ID'][] = $arElements['DATA']['value']; // сохраняем ID секций
//$GLOBALS["arrFilterSale"]['SECTION_ID'][] = $arElements['DATA']['value']; // укладываем в глобальный массив фильтра
break;
case "CondIBElement": // отбор элементов
foreach ($arElements['DATA']['value'] as $arElementsList){ // получаем ID элементов
//echo "*";print_r($arElementsList);echo "*
";
$elementsvalue['ID'][] = $arElementsList;
//$GLOBALS["arrFilterSale"]['ID'][] = $arElementsList; // укладываем в глобальный массив фильтра
}
break;
}
}
}
}
}
}
function GetElementID($ibID, $sectID){
if(CModule::IncludeModule('iblock'))
$arSelect = Array("ID");// берем только идентификатор
$arFilter = Array("IBLOCK_ID"=>IntVal($ibID), "SECTION_ID"=>$sectID, "ACTIVE"=>"Y"); // фильтруем по инфоблоку и ID секции
$res = CIBlockElement::GetList(array("RAND"=>"RAND"), $arFilter, false, Array("nPageSize"=>50), $arSelect);// выводим кол-во рандомных записей
while($ob = $res->GetNextElement(false,false)){
$arFields[] = $ob->GetFields();
}
foreach ($arFields as $ids){ // приводим массив к нужному виду
$result[] = $ids["ID"];
}
return $result;
}
$FilterResult = GetElementID(18, $sectionsvalue['SECTION_ID']);// указываем ID инфоблока и передаем ID секций для выборки ID элементов
$arFilterResult = array_merge($elementsvalue['ID'], $FilterResult);// объединяем массивы
$GLOBALS["arrFilterSale"]['ID'] = $arFilterResult;
Фильтр товаров по списку маркетинговых акций
Тэги: sale выборка товаров