На сайте используются товарные предложения.
Например, фильтр по разделу "матрасы":
Нужно отфильтровать матрасы длиной 190см, шириной 160см, срок доставки 1 день, стоимостью до 10000 рублей
Что происходит сейчас:
Фильтр из всех доступных ТП выбирает товары, у которых есть товарные предложения с каждым из этих параметров.
В итоге получаем, что у матраса может не быть длины 190 см при ширине 160 см, хотя при какой-то другой ширине такая длина есть. Также если хотя бы у одного из товарных предложений не относящихся к данному размеру есть срок доставки 1 день, то это предложение будет выведено в результаты поиска. Со стоимостью все аналогично: если хотя бы одно товарное предложение у товара попадает в заданный ценовой диапазон, то оно товар будет выведен, хоть и данная цена не удовлетворяет результатам поиска.
Необходимо, чтобы Фильтрация учитывала все критерии поиска по товарным предложениям.
Думаю можно реализовать по разному, но опишу свою идею по реализации:
Предлагаю фильтровать последовательно: Например: сначала применяем фильтр: длина 190 см, затем для отобранных тп с длиной 190 ищем тп у которых есть ширина 160, затем для оставшихся ищем срок доставки 1 день, и далее для оставшихся ищем стоимость до 10000 рублей.
Срок выполнения: 1-2 дня
Опубликован 18.01.2018 в 14:39