Понадобилось тут создать страницу, на которую выводятся все товары, имеющие скидку.
Решение простое. Себе на будущее ...
Итак, код:
ну и сама функция получения товаров, имеющих скидку:
Решение простое. Себе на будущее ...
Итак, код:
$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;
} |