Одни условия сужают, другие расширяют выбор
Предположим, покупатель выбрал синий или зелёный цвет и размер сорок. Между цветами ожидается выбор любого из двух вариантов, а размер должен выполняться вместе с этим условием. Если потребовать одновременно два разных единственных цвета одной позиции, выдача может стать пустой. Поэтому логику следует записать обычными словами до настройки интерфейса. Слова и и или обозначают разные отношения. В одном случае требуется пересечение условий, в другом допускается хотя бы одно совпадение. Внешне похожие флажки не сообщают пользователю, какое отношение реализовано внутри. Также важно определить, что считается одной позицией: модель целиком или отдельный вариант размера и цвета. Если остатки хранятся по вариантам, наличие модели ещё не подтверждает наличие конкретного выбранного сочетания.
Характеристики должны иметь согласованный смысл
В одном товаре цвет может быть записан как тёмно-синий, в другом как синий тёмный, а в третьем только упомянут в описании. Без заранее определённого правила такие записи могут восприниматься как разные значения. Фильтр не обязан угадывать, что автор карточки имел в виду. Полезно составить словарь допустимых характеристик и проверить заполнение. Числовой параметр должен иметь понятную единицу измерения. Если длина в одной записи указана в сантиметрах, а в другой в миллиметрах без преобразования, сравнение по диапазону будет ошибочным. Отсутствующее значение тоже требует отдельного решения. Его нельзя автоматически считать нулём или подходящим любому запросу. Сначала определяют смысл пропуска, затем выбирают, как он влияет на выдачу и какие данные нужно дополнить.
Проверяйте результат на маленьком каталоге
Для первой проверки достаточно нескольких вымышленных товаров, у которых все характеристики видны сразу. Ожидаемый результат можно получить вручную. Затем сравнивают его с поведением фильтра по одному условию и в сочетании нескольких. Особенно полезны случаи на границе диапазона, отсутствие подходящих вариантов и сброс части условий. Если после снятия одного ограничения выдача неожиданно сужается, стоит проверить сохранённое состояние и фактически применённые параметры. Пользователю должно быть понятно, какие ограничения остаются активными. Пустая выдача должна объяснять ситуацию и позволять ослабить поиск. Однако предложение снять условие не исправляет плохие данные. Поэтому отдельно проверяют удобство интерфейса и правильность отбора: красивое сообщение об отсутствии результатов не делает ошибочную логику корректной.
Попробуйте на практике
Проверьте фильтрацию на бумажном каталоге из четырёх вариантов одежды.
- Создайте четыре записи: синий размер сорок, зелёный размер сорок, синий размер сорок два и красный размер сорок. Каждую считайте отдельным вариантом.
- Запишите запрос словами: синий или зелёный цвет, одновременно размер сорок. Отметьте подходящие записи вручную.
- Замените связь между цветами на требование одновременного совпадения и объясните, почему результат изменился в этой модели данных.
- Верните исходную логику, снимите ограничение размера и проверьте новую выдачу. Добавьте правило работы с отсутствующим цветом.
Как проверить результат. Исходному запросу соответствуют две записи. После снятия размера подходят три; отношения между условиями и смысл одной позиции указаны явно.
Частые вопросы
Чем больше фильтров, тем удобнее каталог?
Не обязательно. Полезны понятные характеристики с качественными данными. Избыточные или неоднозначные условия способны усложнить поиск.
Пустая выдача всегда является ошибкой?
Нет. Иногда в каталоге действительно нет нужного сочетания. Проверка должна отличать такой случай от неверной логики или неполного заполнения.
Самостоятельный разбор темы. Содержание конкретной обучающей программы здесь не представлено.