Доработка сайтов · обновлено 12.11.2026

Счётчик фильтра и список товаров расходятся: как проверить условия отбора

Число рядом с фильтром может относиться к другому набору товаров, чем список на экране. Показываем, как сверить условия отбора, проверить обновление данных и принять исправление.

Оценить доработку

Содержание статьи

Если рядом с фильтром есть число, а после выбора список пуст, сначала сравните условия подсчёта и выдачи. Счётчик может учитывать весь раздел, другие варианты товара или прежнее состояние каталога. Само расхождение ещё не доказывает поломку поискового движка.

Для первой проверки достаточно трёх действий:

  1. Запишите выбранные фильтры, поисковую фразу, регион и номер страницы.
  2. Снимите последний фильтр и вернитесь на первую страницу списка.
  3. Сохраните снимок экрана и время проверки, скрыв персональные данные.

За 2–8 ноября среди направлений работ команды OpenStart были поиск, фильтры и выдача. Ниже — разбор типовой проблемы на учебном примере: он поможет руководителю интернет-магазина поставить задачу разработчику и проверить результат.

Что именно считает число рядом с фильтром

Сначала определите смысл счётчика. Он может показывать число товаров в текущей выдаче, число результатов после добавления условия или варианты, доступные при замене уже выбранного значения. Эти числа не обязаны совпадать.

Например, покупатель выбрал красный цвет. Число рядом с синим может показывать, сколько товаров появится при переключении на синий. Оно не обязательно означает, что эти товары одновременно подходят под красный и синий. Если интерфейс не объясняет такую логику, исправление может потребоваться в подписи и поведении фильтра.

Есть и техническое различие. В Elasticsearch обычный фильтр запроса влияет и на найденные записи, и на агрегаты — сводные подсчёты. Параметр post_filter ограничивает найденные записи после расчёта агрегатов. Поэтому счётчики могут намеренно описывать более широкий набор, чем список.

Правильная проверка — сопоставить каждое число с обещанным набором товаров. Требование «все счётчики должны быть равны числу карточек на экране» само по себе ошибочно.

Составьте карту условий для счётчика и списка

Возьмите небольшой контрольный набор товаров, свойства и доступность которых известны. На тестовой копии закрепите его состав на время проверки. Для каждой позиции отметьте категорию, цвет, размер, статус публикации и доступность в выбранном регионе.

Затем заполните таблицу. Это шаблон проверки, а не результаты клиентского проекта.

СценарийЧто записать для счётчикаЧто сверить в списке
Категория без фильтровКакие опубликованные позиции входят в подсчётКакие из них доступны этому посетителю
Один выбранный параметрУчитывается ли выбранное значениеСоответствуют ли карточки этому значению
Два параметра вместеКак сочетаются условияЕсть ли товары, отвечающие сочетанию
Снятие одного параметраКакой набор должен вернутьсяВернулся ли ожидаемый список
Изменение свойства на копииКогда обновился подсчётКогда изменился состав выдачи

Сравнивайте не только итоговые числа, но и состав наборов. Одинаковое количество ещё не означает, что показаны нужные товары. При постраничной выдаче отделяйте общее число результатов от числа карточек на одной странице.

Учебный пример: в каталоге есть красная футболка размера M и синяя размера L. Отдельно фильтры «красный» и «L» находят товар, но их сочетание не находит ничего. Это ожидаемый результат, если условия должны выполняться одновременно для одного варианта. Если счётчик обещает подходящую позицию после такого сочетания, нужно выяснить, по каким данным он её посчитал.

Проверьте четыре причины расхождения

1. Подсчёт и выдача учитывают разные условия

В списке может применяться ограничение по наличию, региону, правам посетителя или поисковой фразе, которого нет в подсчёте. Разработчик сопоставляет оба запроса на одном контрольном наборе и отмечает каждое условие отбора.

Гипотеза подтверждается, если недостающие товары исключены конкретным условием только на одной стороне. Исправление зависит от смысла интерфейса: синхронизировать условия либо ясно обозначить, что число относится к более широкому набору.

2. Считаются варианты, а показываются карточки

Размеры и цвета могут храниться отдельными записями, а в каталоге объединяться в одну карточку. Тогда несколько записей в подсчёте не означают столько же карточек. Дополнительно проверьте, не совпали ли цвет у одного варианта и размер у другого вместо одновременного совпадения у одного.

Сначала согласуйте единицу подсчёта: карточка товара или конкретный вариант. Затем сверяйте состав по этой единице. Нельзя исправлять расхождение простым делением числа вариантов на предполагаемое количество размеров.

3. Части каталога обновились в разное время

Карточка, поисковый индекс и сохранённый ответ фильтра могут обновляться по разным правилам. Поисковый индекс — отдельное представление данных, подготовленное для поиска. В Elasticsearch изменение записи не всегда становится видимым для поиска сразу после записи: это связано с обновлением индекса, которое называется refresh.

На копии измените одно свойство контрольного товара и запишите, когда изменение появилось в карточке, счётчике и списке. Сравните задержку с регламентом обновления конкретного проекта. Если расхождение остаётся после завершения ожидаемого обновления, нужна проверка передачи данных; одно ожидание проблему не решает.

4. После фильтра осталась прежняя страница

Покупатель мог открыть дальнюю страницу каталога, а затем сузить выбор. Если интерфейс сохранил прежнее смещение, список окажется пустым при наличии результатов в начале. В Elasticsearch параметр from задаёт, сколько найденных записей пропустить перед выводом.

Проверьте один набор условий с первой страницы и после перехода со следующей. Если пустота зависит только от прежнего номера страницы, разработчику нужно проверить сброс пагинации при изменении фильтров. Это не доказательство ошибки в характеристиках товаров.

Как принять исправление и не пропустить повтор

Критерии согласуют до правки, чтобы результат не сводился к одному удачному клику:

  • для каждого счётчика определены условия и единица подсчёта;
  • на контрольном наборе совпадают ожидаемые составы товаров, а не только числа;
  • сочетания параметров, снятие условия и возврат на первую страницу дают ожидаемый результат;
  • после обновления свойства на копии данные сходятся в согласованный срок;
  • в проверенных ролях и регионах не появляются скрытые или недоступные позиции;
  • одинаковые действия на компьютере и телефоне сохраняют выбранные условия.

Для большого каталога отдельно уточните точность подсчётов. В Elasticsearch некоторые агрегаты terms могут возвращать приблизительное количество документов. Это повод проверить настройки и требования к интерфейсу; приблизительность нельзя автоматически считать объяснением любой пустой выдачи.

После выпуска повторите контрольные сценарии после штатного обновления каталога. Зафиксируйте время и условия повторной проверки. Исчезновение симптома сразу после очистки кеша ещё не показывает, что устранена причина его возврата.

Что можно проверить самостоятельно, а что передать разработчику

Владелец магазина может собрать воспроизведение через интерфейс, описать смысл счётчиков и выбрать контрольные товары. Если нужный результат появляется после снятия несовместимых условий и интерфейс объясняет это поведение, технический ремонт может не понадобиться.

Изменение запросов, правил доступности и структуры поискового индекса требует разработчика. Массовая переиндексация или очистка всех кешей без установленной причины может затронуть работающий каталог. Такие изменения сначала проверяют на копии, с планом возврата к прежнему состоянию.

OpenStart занимается доработкой каталогов и фильтров. Для оценки достаточно описания шагов, времени наблюдения и обезличенного примера расхождения; пароли в публичной форме не нужны. До работ согласуются задача, оценка и критерии приёмки.

Нужно исправить описанный сценарий на сайте?

Начнём с одной воспроизводимой задачи. Согласуем результат диагностики, состав доработки и критерии приёмки.

Описать задачуСвернуть форму

Оценить доработку

Укажите телефон или почту для ответа и коротко опишите задачу.

Сначала уточним задачу, затем согласуем состав, стоимость и результат первого этапа. Не отправляйте пароли, токены и приватные данные.

Еще по теме