Товары со скидкой — реализация с помощью коллекций
19 декабря 2017
Автор: Смирнов Владимир
В практике нашей компании клиенты неоднократно обращались с вопросом реализации специальных страниц, в которых выводились бы товары со скидкой. Именно это и ряд других причин побудило нас к созданию модуля «Товарные коллекции в разделах / Категории для Seo».
Определенного параметра у товаров, указывающий, что он со скидкой на данный момент не существует. Куда было бы проще, если бы был некий параметр, например, аналогичный «признаку доступности товара» - CATALOG_AVAILABLE, но такого, как оказалось, нет.
Вернемся к истории создания: поначалу вопрос решали с помощью дополнительных запросов. Возвращали с помощью запросов идентификаторы доступных товаров, которые имели скидки, и помещали в некий массив. И этот массив передавали в фильтре компоненту вывода, например, bitrix:catalog.section (элементы раздела). Но данный способ вызывает ряд проблем:
1) Дополнительный запрос — это дополнительная нагрузка на базу данных
2) Если товаров было черезчур большое количество (пусть даже более 100), то такой подход был бы вообще сомнителен, т.к. создавал очень высокую нагрузку на сервер базы данных
3) Невозможность «подружить все это дело» с умным фильтром 1с-Битрикс (bitrix:catalog.smart.filter), т.к. умный фильтр на текущий момент не воспринимает внешний фильтр.
Все эти проблемы легко решает модуль «Товарные коллекции в разделах / Категории для Seo», вернее эти проблемы даже не возникают при работе с данным решением. В реализованном модуле выбран абсолютно другой подход. Модуль позволяет собирать в раздел инфоблока товары по заданным условиям, параметрам (свойствам и основным полям товаров). Условия задаются в специальном конструкторе, который аналогичен конструктору условий в скидках на товары
Поэтому в коллекциях можно создать условия аналогичные скидкам. И если сделать так, то в раздел инфоблока (раздел, являющий коллекцией, раздел-коллекция) попадут только товары со скидкой.
Преимущество данного модуля еще в том, что при необходимости можно создать более частные коллекции, например, "товары со скидккой 3%", "товары со скидкой 10%" и т.п.
Решение доступно по ссылке: «Товарные коллекции в разделах / Категории для Seo».
Действие модуля далеко не ограничивается реализацией разделов с «товарами со скидкой», а, наоборот, это всего лишь один из способов применения. Другие примеры использования вы можете посмотреть в нашей предыдущей статье - «Товарные коллекции в разделах / Категории для Seo - удобный, универсальный модуль для решения многих наболевших задач».
Определенного параметра у товаров, указывающий, что он со скидкой на данный момент не существует. Куда было бы проще, если бы был некий параметр, например, аналогичный «признаку доступности товара» - CATALOG_AVAILABLE, но такого, как оказалось, нет.
Вернемся к истории создания: поначалу вопрос решали с помощью дополнительных запросов. Возвращали с помощью запросов идентификаторы доступных товаров, которые имели скидки, и помещали в некий массив. И этот массив передавали в фильтре компоненту вывода, например, bitrix:catalog.section (элементы раздела). Но данный способ вызывает ряд проблем:
1) Дополнительный запрос — это дополнительная нагрузка на базу данных
2) Если товаров было черезчур большое количество (пусть даже более 100), то такой подход был бы вообще сомнителен, т.к. создавал очень высокую нагрузку на сервер базы данных
3) Невозможность «подружить все это дело» с умным фильтром 1с-Битрикс (bitrix:catalog.smart.filter), т.к. умный фильтр на текущий момент не воспринимает внешний фильтр.
Все эти проблемы легко решает модуль «Товарные коллекции в разделах / Категории для Seo», вернее эти проблемы даже не возникают при работе с данным решением. В реализованном модуле выбран абсолютно другой подход. Модуль позволяет собирать в раздел инфоблока товары по заданным условиям, параметрам (свойствам и основным полям товаров). Условия задаются в специальном конструкторе, который аналогичен конструктору условий в скидках на товары
Преимущество данного модуля еще в том, что при необходимости можно создать более частные коллекции, например, "товары со скидккой 3%", "товары со скидкой 10%" и т.п.
Решение доступно по ссылке: «Товарные коллекции в разделах / Категории для Seo».
Действие модуля далеко не ограничивается реализацией разделов с «товарами со скидкой», а, наоборот, это всего лишь один из способов применения. Другие примеры использования вы можете посмотреть в нашей предыдущей статье - «Товарные коллекции в разделах / Категории для Seo - удобный, универсальный модуль для решения многих наболевших задач».
Статья полезна для
Предлагаем еще прочесть