Понадобилось тут создать страницу, на которую выводятся все товары, имеющие скидку.
Решение простое. Себе на будущее ...
Итак, код:
ну и сама функция получения товаров, имеющих скидку:
Решение простое. Себе на будущее ...
Итак, код:
$arElements = GET_SALE_FILTER(); global $searchFilter; $searchFilter = array( "=ID" => $arElements, ); $APPLICATION->IncludeComponent( "bitrix:catalog.section", "template", array( ... "FILTER_NAME" => "searchFilter", ... ), ); |
ну и сама функция получения товаров, имеющих скидку:
function GET_SALE_FILTER(){ global $DB; $arDiscountElementID = array(); $dbProductDiscounts = CCatalogDiscount::GetList( array("SORT" => "ASC"), array( "ACTIVE" => "Y", "!>ACTIVE_FROM" => $DB->FormatDate(date("Y-m-d H:i:s"), "YYYY-MM-DD HH:MI:SS", CSite::GetDateFormat("FULL")), "!<ACTIVE_TO" => $DB->FormatDate(date("Y-m-d H:i:s"), "YYYY-MM-DD HH:MI:SS", CSite::GetDateFormat("FULL")), ), false, false, array( "ID", "SITE_ID", "ACTIVE", "ACTIVE_FROM", "ACTIVE_TO", "RENEWAL", "NAME", "SORT", "MAX_DISCOUNT", "VALUE_TYPE", "VALUE", "CURRENCY", "PRODUCT_ID" ) ); while ($arProductDiscounts = $dbProductDiscounts->Fetch()) { if($res = CCatalogDiscount::GetDiscountProductsList(array(), array(">=DISCOUNT_ID" => $arProductDiscounts['ID']), false, false, array())){ while($ob = $res->GetNext()){ if(!in_array($ob["PRODUCT_ID"],$arDiscountElementID)) $arDiscountElementID[] = $ob["PRODUCT_ID"]; }} } return $arDiscountElementID; } |