Улучшить поведение СS-Cart при фильтрации

Думаю, стоит приподнять тему, особенно с учетом того, что разработчики не реагируют. Согласен, сегодняшнее поведение фильтров из коробки — ад для покупателя :frowning:

7 лайков

Плохой пример. Если откроете с мобильного телефона, то будет понятно почему. У них нет просто адаптации под мобилу.

Намек ясен, теперь будем реагировать за день до создания темы)

1 лайк

Важно понять один момент с кнопкой фильтрации “Показать” и количеством вариантов. Из коробки сделать это довольно проблематично, так как у многих будет тормозить, это то отчего мы ушли несколько лет назад, банально потому что жалоб на тормоза фильтров была масса, все из за того что при отображении фильтров для каждого варианта просчитывалось количество доступных товаров. И что логично при выборе одного значения в фильтре, количество для всех остальных надо пересчитывать, т.е. оно просто не отображалось.

Опять же важно понимать, что есть два варианта кнопки показать:

  1. Быстрый: Клиент прокликивает все варианты которые хочет выбрать. У него не отображается количество в каждом из вариантов и не перестраиваются фильтры (например какого-то бренда нет синего цвета, а мы выбрали только этот бренд, в таком случае синий должен задизейблится, чтобы его нельзя было выбрать).
  2. “Правильный”, я так понимаю многие ожидают именно этого поведения, как было сделано раньше на Яндекс.Маркете. Ты нажимаешь фильтр он показывает количество вариантов и кнопку показать. Кстати, сейчас вот оказалось что Яндекс Маркет поменял эту логику и они сразу ищут на десктопе. А вот на мобилке у них эта логика осталась.

Так вот про вариант 2. “правильный” надо понимать, что подсчет количества - это операция полностью идентичная поиску, т.е. в реальном времени показывать количество продуктов у этой характеристики довольно трудоемкая операция для сервера.

Мне нравятся фильтры на ozon, яндекс маркет, там решены основные проблемы

  1. Не блокируется страница фильтров и не перегружается, удобно выбирать несколько значений.
  2. При выборе фильтров страница не скачет на результаты поиска, опять же удобно выбрать несколько вариантов
  3. На мобилке вообще нет автоматической фильтрации, только через кнопку.

@imac, посмотрите, пожалуйста, как работают фильтры в этом магазине https://santehnika-online.ru/smesiteli/

Работают по “правильному” варианту (с подсчетом кол-ва товаров и блокировкой недоступных комбинаций), но при этом все очень быстро. Каким образом это достигается? Кэшируют все возможные поиски?

Да, стандартная схема это отдельная таблица, вьюха с кешированием всех основных фильтров
и результатов, либо вьюха заточенная под фильтры т.е. денормальзация данных. Зачастую это делается вообще отдельной логикой, возможно даже на другом стеке. Ну как пример, вы меняете данные товара, или его характеристики а ночью по крону запускается задача, которая обновляет все варианты фильтров за текущий день. В общем на текущий момент делать это массово и на всех более менее php хостингах не особо просто.
Кстати одна из старых проблем в CS-Cart была с разростающимся кешом, долго ее ловили, как раз там с фильтрами была история.

1 лайк

Есть ещё лучше пример, как мне кажется, т.к. он сделан на cs-cart. И тут тоже всё работает как нужно.

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

Этот пример не лучше, потому что не блокируются недоступные варианты после каждого выбора и пользователь часто натыкается на сообщение “Нет товаров”. Это минус в карму.

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

@imac Я прошу Вас отнестись очень серьёзно к проблеме фильтров и заняться этим вопросом, как можно скорее.
У нас более 100 000 товаров на сайте. Для скорость работы поиска и фильтров - это боль.
По вебвизору видно, что клиенты уходят в момент выбора товаров по фильтрам.
Над решением с поиском через Sfinx AlexBranding работает сейчас.
Сделайте фильтры и будет уже полегче.

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

это не нужно! Неплохо конечно, но можно и без этого.
%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5

с этим вариантом нам уже @ecomlabs подсказал
файле js/tygh/product_filters.js закомментируйте строчку

scroll: '.ty-mainbox-title',

Но к сожалению у нас сервера послабее тех что в Ямаркете и Озоне.
И перестроение страницы происходит не быстро… А вот на кнопочке число найденного явно быстрее бы появлялось.

_topsto-crimea.ru именно тот вариант который делали АБ
этот магазин уже весь Крым захватил, он оооочень крупный

и написали вот это

%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5

Не надо блокировать пустые значения!
Пусть будет просто надпись на кнопке Нет товаров. Нам этого вполне достаточно, т.к. все равно удобнее чем то что сейчас. Хотя кстати ЦС-Кодинг как то засунул это в свой модуль.
Клиенту все сразу ясно и понятно и он кликает что-то другое.

%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5

Сделайте это опционально пожалуйста, чтобы ключевые игроки не расстроились.

1 лайк

Это поведение более, чем понятно

.
Не показывать пустые значение - круто, но в сегодняшних реалиях решение topsto-crimea.ru - это уже очень хорошо!
Вариант @ecomlabs с прокруткой тоже можно внедрить опционально.

2 лайка

да его надо вообще внедрить из коробки, а опционально это уже прыжки вверх.
Благо эту строчку уж каждый поправить сможет.

2 лайка

Я про прыжки вверх и писал, как опцию. А так конечно из коробки.

1 лайк

Был бы очень рад если бы была возможность включить режим как на https://topsto-crimea.ru/ - это лучшее из того что есть. Не всем подойдет - в ряде проектов надо сразу показывать, как сейчас, но часто нужно дать выбрать и отфильтровать по кнопке. Это же нормальное хорошее решение, когда надо выбрать несколько возможных вариантов.

3 лайка

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

4 лайка

Мы выпустили версию 2.0 модуля

  • добавлен подсчет кол-ва товаров (учтите, что используются стандартные поисковые алгоритмы cs-cart)
  • убран скроллинг после выбора
  • в настройках модуля можно включить динамическое изменения блока с фильтрами после выбора варианта (т.к. фильтр меняется по высоте, кнопка иногда может оказаться за пределами фильтра)

Кто уже использует наш модуль, просто скачайте новую версию со страницы заказа

https://www.ecom-labs.ru/cs-cart-multi-vendor-moduli/cs-cart-modul-filtry-s-knopkoy.html

5 лайков

Огромное спасибо, что включились в решение проблемы.

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

Можно как то сделать эти процессы параллельно?
Вот тут попробуйте выбрать сразу несколько значений - получается.

%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%20%D1%84%D0%B8%D0%BB%D1%8C%D1%82%D1%80%D0%B0%D1%86%D0%B8%D0%B8

2 лайка