Выбрать курс
0  /  1

Нестандартная сортировка товаров в каталоге

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

Например, при необходимости ранжирования набора товаров с одними характеристиками над другими:

Легко реализовать задачу, если нужно сортировать по алфавиту, по цене или по наличию.А что если у нас есть несколько групп товаров, которые нужно размещать выше остальных?

I-ая группа - высший приоритет

Например, в эту группу попадают товары, имеющие следующие параметры:

  • Производитель: Чебоксары.
  • Цвет: Красный.
  • Цена: более 2 000 руб.

II-ая группа имеет следующие характеристики:

  • Производитель: Иваново.
  • Название: содержит фразу "трикотаж".
  • В наличии.

III-ая группа:

  • Производитель: Киров.
  • Материал: шерсть.
  • В наличии.
  • Цена: более 3 000 руб.

Просто задав сортировку по какому то полю, эту задачу не решить. Сначала нужно подготовить некий индекс сортировки. Реализуем следующий принцип:

  • Создаем служебное свойство или свойства (зависит сколько нестандартных индексов сортировки нужно) элементов инфоблока, преимущественно типа "Число". Назовём его "Индекс сортировки 1".
  • Определяем набор параметров, от которых зависит те или иные значения "Индекса сортировки 1".
  • С помощью механизма коллекций модуля настраиваем профили для заполнения созданного нами свойства. Включаем для этих профилей автоматическую индексацию.

Для реализации этого принципа плотно используем модуль Инструменты, коллекции, групповые действия. Используя механизм - групповое редактирование свойств, создадим 3 профиля для наших 3-х групп товаров и назначаем для каждой группы свое значение свойства "Индекс сортировки 1".

  • I-ая группа - "индекс сортировки 1" равно 1500.
  • II-ая группа - "индекс сортировки 1" равно 1000.
  • III-ая группа - "индекс сортировки 1" равно 500.
  • Все остальные товары, можно оставить как есть, т.е. "индекс сортировки 1" останется для остальных товаров пустым.


На этом служебное свойство, имеющее нужные значения для элементов, готово. Далее останется использовать его в публичной части в списке товаров или новостей, т.е. задать при нужном действии поле для сортировки свойство "индекс сортировки 1", направление - по убыванию.