АРАМА: Инструменты, коллекции, групповые действия / Перекрестные продажи / Аналогичные товары / Аксессуары

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

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

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

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

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

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

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

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

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

III-ая группа:

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

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

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

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

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

scoder.base.sort.jpg

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