Перейти к содержанию

Bitix:Вывести все товары со скидками

Скидки создаем в правилах работы с корзиной прикрепляя к каждой определенные товары.
Чтобы вывести все товары со скидками в bitrix на отдельной странице будем использовать фильтр при вызове компонента bitrix:catalog.section.

Первое, что необходимо это получить все скидки созданные в правилах работы с корзиной(товарный маркетинг). Здесь важно в выборке поле
CONDITIONS

Второе разобрать это поле при помощи регулярного выражения /.*(\d{4,6}).*/Ui мне подошло такое, но тут все индивидуально(обращайтесь если что попробую помочь)

Код выборки скидок и создания фильтра для элементов

CModule::IncludeModule("sale");
CModule::IncludeModule("catalog");
$arDiscountElementID =array();
$discout = array();
$db_res = CSaleDiscount::GetList(
array("SORT" => "ASC"),
array(
"LID" => SITE_ID,
"ACTIVE" => "Y"
),
false,
false,
array( "ID","CONDITIONS")
);
while ($ar_res = $db_res->Fetch())
{
$re = '/.*(\d{4,6}).*/Ui';
preg_match_all($re, $ar_res["CONDITIONS"], $matches);
$arDiscountElementID = array_merge($arDiscountElementID,$matches[1]);
}

global $searchFilter;
$searchFilter = array(‘ID’=> $arDiscountElementID);

$APPLICATION->IncludeComponent( «bitrix:catalog.section», дальше пошел ваш список товаров

Опубликовано в рубрикеБлог