Изменить логику фильтра?
Добрый день! Подскажите пожалуйста почему у шоп скрипта такая логика фильтра и можно ли её изменить с или на жесткое и, то есть если выбраны определенные параметры то и показывать товары у которых это есть, а не показывать как щас?
6 ответов
Это будет неправильно. Человек, выбирая два размера экрана хочет увидеть мониторы разных размеров, а не монитор с изменяемыми размерами. Все фильтры так работают! Посмотрите на Яндекс маркет или любой другой крупный магазин.
Но если конечно у вас специфика магазина такая, то править придется системный файл shopProductsCollection или поискать плагин, а если такого нет, всегда можно заказать!
Фильтр должен уметь делать выбор и "ИЛИ" - для бренда, например и "И" для конкретных характеристик. Конечно, выбор большинства характеристик (производитель, размер, разрешение, память, ядра процессора, ОС и т.п. действительно нужны по "ИЛИ". А вот "И" требуется для разъемов, например, для слотов карт памяти или сим-карт и т.п. Это будет правильно для выбора любой техники от ноутбуков до сотовых телефонов или фотоаппаратов:
Иду на Яндекс-маркет: Хоу выбрать ноутбук чтобы в нем был "И" порт Thunderbolt 3 "И" порт USB 2.0:
Поставил на галку напротив Thunderbolt 3
получил результат 723 модели. Ок
Далее хочу сузить поиск и из них отобрать только те, в которых ЕЩЕ присутствует порт USB 2.0 - остальные модели меня не интересуют:
Ого! Получаю 5867 моделей И? Что дальше? Как быть? Как теперь найти где И Thunderbolt 3 И USB 2.0? Зачем этот фильтр? Чем он мне помог сузить поиск?
Вывод: не стоит слепо смотреть на всех и говорить: "Да у всех так сделано!" Если у всех так сделано, то зачем тогда вы вообще делаете еще один такой же посредственно-скопированный с других движок?! Где здравый смысл, где инновации, где забота о пользователе, в конце-концов, который потом этим будет пользоваться? А написать одно предложение в фильтрах с разъяснением что значит "И" и "ИЛИ" разве великая проблема?
P.S. Ну и раз уж вы любители смотреть на крупные интернет-магазины обратите внимание на Ситилинк (citilink.ru) там как сделана правильная логика (всего из 1647 вариантов мне 5 из ноутбуков осталось выбрать с Thunderbird-3 и USB 2.0:
ну или notik.ru (та же логика, действительно уменьшение выборки, а не вывод всего подряд где это есть)
Коллеги, прошу прокомментировать.
Это же элементарно! Вы сами можете легко сделать хоть так, хоть так. В первом примере (про интерфейсы) ОДНА характеристика и много вариантов для неё. Во 2 и 3 примере - МНОГО характеристик со значениями да/нет. Соответственно просто создайте на нашем движке не одну характеристику с многими вариантами, а много характеристик с вариантом да/нет (или на ваше усмотрение) и получите желаемый эффект. Логика у всех(!) движков одна:
- при выбранном значении характеристики выбор ещё одного варианта значения этой же характеристики - расширяет выборку;
- при выбранном значении характеристики выбор значения другой характеристики - сужает выборку;
Так работает на всех трёх приведённых вами в пример сайтах, так же и работает и у нас. У вас есть полная свобода создания правильной структуры характеристик! И менять в движке ничего не нужно.
Более того, поскольку на агрегаторах (типа Яндекс.Маркет) эта структура характеристик может отличаться от вашей, то вы можете создать и по своему и как у них - ОДНОВРЕМЕННО! Для этого свои варианты делаете как обычно, а варианты характеристик для Маркета делаете скрытыми. Затем эти скрытые характеристики выгружаете в фиде куда вам надо (можно для каждой площадки свой вариант сделать) и у ваши товары там начинают фильтроваться по их фильтру, даже если эти фильтры совсем не такие, как у вас на сайте.
Vaslav, благодарю за ответ. Логику Ситилинка и Нотика понял, спасибо. Но там все это очень компактно сделано. Для сравнения. Слева 10 характеристик с чекбоксами, а справа эти же 10 характеристик с Да/Нет. Получится вот такая простыня на два экрана. И это список только из десяти характеристик, которые, необходимо фильтровать. А их же больше. Разве это нормально?
Я себе не представляю сколько должно быть нагенерировано разных вариаций всех возможных комбинаций, например, из представленных интерфейсов:
Я понял, что мы не договоримся, а каким-то рабочим костылем реально И и ИЛИ настроить?
Ну, внешний вид фильтров - это уже вопрос вёрстки. Его надо решать с разработчиком вашей темы и/или заказывать индивидуальную доработку дизайна, к движку это вообще отношения не имеет.
Связался с разработчиком моей темы (ProfitShop), но он сообщил, что не знает как реализовать данную задачу.
"Ну только нанять программиста который вам переделает код движка и потом менять постоянно после обновления, как то так" - но это же не нормально. Подскажите, пожалуйста, есть более гуманные способы решения, где можно найти исполнителя?