Фильтр по цене битрикс

Фильтр по цене битрикс

У стандартного компонента битрикса catalog есть один недостаток, отсутствие возможности сортировки товаров по цене со скидкой. Просто по цене можно, а вот со скидкой никак.

Я предлагаю универсально комплексное решение этой проблемы.

Почему универсальное? Потому что будет работать на более ранних версиях (если у вас более новая версия, можно вместо крона будет использовать события на создание скидки с помощью ORM событий).

Почему коплексное — мы создадим обработчик события на изменение/добавление цены, плюс повесим на крон скрипт который будет мониторить и обновлять при необходимости это значение.

Меньше слов, ближе к делу:

1. Создаем числовое свойство "Минимальная цена со скидкой" (MIN_PRICE_DISCOUNT) . Можно сделать также через дополнительный тип цены, но в моем примере редакция Малый бизнес и нет возможности добавить еще цену, поэтому будем рассматривать свойство.

2. Ставим событие на обновление цены, на котором записываем новое значение этого свойства, а также добавляем обработчики событий на создание, изменение и удаления самих акций.

С обработчиком на удаление акций я конечно немного помучился, пришлось обрабатывать через 2 события и глобальную переменную, но зато работает.

События можно добавить в файл init.php

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

Все, теперь можно ставить сортировку по нашему свойству в вашем компоненте, что-то вроде того "ELEMENT_SORT_FIELD" => "PROPERTY_MIN_PRICE_DISCOUNT",

Если кому-то поможет решить задачу — буду рад 🙂 Если нужна будет помощь — обращайтесь!

Здесь переменная catalog_PRICE_2 отвечает за вывод типа цены с то есть, если у Вас в каталоге выводится, например, базовая цена и в списке типов цен она имеет id 2, то пишем catalog_PRICE_2, если то catalog_PRICE_3

Читайте также:  Переделка шуруповерта aeg 12в на литиевые аккумуляторы

Если необходимо сделать сортировку по цене по возврастанию или по убыванию, то пишем код

Есть товары простые и с товарными предложениями, все в разных валютах. "Умный фильтр" показывает диапазон цен только в одной валюте, других цен не замечает.

Есть ли какое-то решение по корректной работе? Использование MIN_PRICE не подходит, так как оно есть только для товарных предложений, в обычных товарах отсутствует.

Ссылка на основную публикацию
Филипс диамонд вижн h7
Заказав на экзисте лампы для ближнего света Philips Blue Vision Ultra (пост удалил), понял, что сильно поторопился, поскольку ничего не...
Усилитель сигнала для тв антенны отзывы
Характеристика в рейтинге 1 Alcad AL-200 Высокое качество во всех аспектах эксплуатации. Самый популярный усилитель в России 2 Eurosky SWA-105...
Усилитель сотового сигнала отзывы
Нашел вот еще информацию что Mobi-900 стал занял 1 место в рейтинге репитеров по версии журнала Provider-Review: http://provider-review.ru/reyting-usiliteley-sotovoy-svyazi.html А вот...
Фигуры для оформления текста
Методические рекомендации В Word 2007 можно добавлять два типа графики – Рисунки и Фигуры. Рисунок – изображение, созданное в другом...
Adblock detector