Фильтрация по списку с автодополненинем
Заметил своеобразное поведение при фильтрации через mFilter2.
Если у товара несколько опций (например: опция1, опция2), то фильтрация происходит по принципу «или». Т.е. в фильтре выводится чекбокс с именем «опция1, опция2», но при выборе его, выводятся все товары, у которых есть хотя бы одна из этих опций. А нужно, чтобы выводились товары, у которых указаны обе опции.
Можно ли сделать это штатными средствами? Или подскажите, в какую сторону думать. Спасибо.
Если у товара несколько опций (например: опция1, опция2), то фильтрация происходит по принципу «или». Т.е. в фильтре выводится чекбокс с именем «опция1, опция2», но при выборе его, выводятся все товары, у которых есть хотя бы одна из этих опций. А нужно, чтобы выводились товары, у которых указаны обе опции.
Можно ли сделать это штатными средствами? Или подскажите, в какую сторону думать. Спасибо.
Комментарии: 6
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Буду искать, что у меня не так. Теперь я, хоть понимаю куда искать)
Допустим 2 товара:
1. Размер — XL, Цвет — Синий, Красный.
1. Размер — XL, Цвет — Синий.
Ты ставишь в фильтре размер XL — видим оба товара, т.к. они есть размера XL.
Добавляем галочку Синий — видим оба товара, т.к. они есть размера XL и синего цвета.
Ставим галочку Красный — видим оба товара, т.к. по логике компонента мы хотим увидеть товары, которые размера XL, а цвет нас интересует и синий и красный, т.е. любой из них (синий ИЛИ красный).
Если нужно в 3м случае видеть только товар 1 — то придется дописывать свою логику, mFilter2 так не может.
Но! тогда представь, что будет, если у тебя есть еще Товар 3 размера L. В этом случае, ты выбираешь себе джинсы, но знаешь, что на тебе хорошо сидит то L, то XL, смотря от бренда. Ставишь обе галочки — и что? Товаров будет 0, вряд ли ты этого ждал.
1. Размер
— XL
2. Цвет
— Красный
— Синий, Красный
— Синий
И при выборе «Синий, Красный» будет показана оба товара, т.к. сработало условие по принципу ИЛИ
Как мне кажется, так не должно быть.
стоит посмотреть на параметр values_delimeter сниппета mFilter2. В нем по умолчанию запятая, и такая же запятая стоит в значении опции. Я в этом параметре обычно указываю точку с запятой.