@masimka

Как устроены фильтры товара в интернет магазинах?

Как устроены фильтры в интернет магазинах?
К каждой категории хранится определённый шаблон фильтров, по которым товар добавляется и фильтруется? Как делается конфигурация? Где об этом почитать, может есть у кого опыт создания подобных инструментов?

Есть товар, с неизвестными за ранее доп опциями.
Напр. есть холодильник., я хочу добавить холодильник в базу, с высотой, шириной, цветом, и проивзодителем тремя камерами, типом установки, и прочее.
Я это всё добавляю в базу ввиде json, чтобы потом по нему искать.
Теперь фильтр на сайте - по которому я хочу выбрать, двухкамерный холодильник, с высотой не более, и установкой снаружи.
Фильр делает запрос в базу :
Выбрать все холодильники из категории холодильников, где цвет = красный, высота меньше 60 см, верно?

А теперь если я хочу добавить к этому фильтру еще какой то параметр, например, наличие быстрой заморозки? И чтобы этот параметр появился при добавлении холодильников и в фильтре на сайте.

Где то видел кажется подобное решение интернет магазина на Yii (в сети где то был опенсорс проект). Там все параметры товара ложатся в ячейку к товару.
  • Вопрос задан
  • 1259 просмотров
Пригласить эксперта
Ответы на вопрос 2
webinar
@webinar Куратор тега Веб-разработка
Учим yii: https://youtu.be/-WRMlGHLgRg
Как устроены фильтры в интернет магазинах?

Вы думаете для этого есть 1 универсальный метод? Нет. Есть общие концепции и их несколько, а не одна + для каждого проекта надо бы думать отдельно, как рационально хранить. Все зависит от кол-ва товаров, кол-ва фильтров, типа БД и т.д. Нюансов много.

Я это всё добавляю в базу ввиде json, чтобы потом по нему искать

Печально. Как Вы искать по json будете? Обычно есть таблица с товарами, таблица с фильтрами, есть таблица со значениями для товара по определенному фильтру. Что-то типа:
id | product_id | filter_id | value
Фильтрация при этом достаточно ресурсоемкий процесс, поэтому надо разумно сделать индексы в базе и кешировать запросы.

Там все параметры товара ложатся в ячейку к товару.

Есть много плохих примеров, не стоит на них смотреть. Yii это framework. Качество архитектуры БД лежит полностью на программисте. yii дает полную свободу действий в этом плане. Так что кривые руки и отсутствие мозга - залог плохого результата, и инструменты разработки тут не при чем.
Ответ написан
Конечно нет. Весь фильтр товаров это просто запрос к БД, который возвращает данные из базы, соответствующие запросу. Например, есть у нас товары с рейтингом 5 и с рейтингом 4. Мы хотим отфильтровать их. У каждого товара в таблице есть столбец: rating, который принимает значение от 1 до 5.

В фильтре мы выбираем значение 5, после нажатия на кнопку: Применить фильтр, отправляется запрос на сервер, происходит запрос в бд, что-то типа: SELECT product FROM products WHERE rating=5. Этот запрос возвращает нам все товары с рейтингом 5. Сервер формирует нам новую страницу, где вы видите все товары с рейтингом 5.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы