Раз через гит не получается добавить хук, выношу вопрос на голосование.
Нужен хук для фильтрации любой коллекции товаров точно так же, как это сделано с заказами.
Реализация этого хука есть в Github https://github.com/webasyst/shop-script/pull/214 (прим. для неразработчиков: ссылка будет "битой", если у вас нет доступа).
Применения хука
Не буду говорить, что "это нужно каждому интернет-магазину!!!", но ниже примеры, с которыми лично сталкивался. Думаю, что список может быть дополнен.
1. Фильтрация товаров только в наличии.
Потребность, например вот https://support.webasyst.ru/18793/pravilnye-filtry... но также было и в других темах.
С этим хуком можно учитывать наличие на уровне отдельных артикулов товара.
У меня есть готовое обновление Smart Filters, которое добавит нужную функциональность с учётом этого хука.
2. Произвольное исключение товаров из всех списков на определённой витрине.
Реальный пример, сделанный тоже с этим хуком - фильтрация Outlet товаров по регионам. Каждый товар отображается на витрине/в поиске/в категории только если покупатель просматривает сайт из региона, в который этот товар может быть доставлен.
Как частный случай такого исключения - исключение товаров из подкатегории категории в родительской категории.
Т.е. есть категория со включённой опцией "Включить товары из подкатегорий", но возникают ситуации, когда нужно "Включить товары не из всех подкатегорий"... Сейчас это можно сделать только вручную.
19 комментариев
Да, очень нужно сие, особенно для магазинов с десятками тысяч товаров, как в моём случае.
Ну или хотя бы перенести хук product_collection чтобы он мог решать и эту задачу. https://github.com/webasyst/shop-script/pull/258
Лично мне не очень нравитсяя идея менять уже существующие хуки, т.к. они уже используются в плагинах.
Да и по описанию product_collection служит для создания новых коллекций, а не для изменения существующих.
плагины как работали так и будут работать - вначале смотрите код, а потом пишите.
формирование != создание, я вообще слабо понимаю зачем он нужен при создании коллекции - объект и так доступен, а каких-то доп.возможностей хук не дает.
Что-то у тебя день не задался, коллега :) проблемы с модерацией? Это пройдёт.
Я бы тоже посоветовал посмотреть код, а потом писать.
Произвольные коллекции - весьма удобная штука как минимум, в своих проектах. Но и в маркете используется. Примеры плагинов
https://www.webasyst.ru/store/plugin/shop/rootcategory/
https://www.webasyst.ru/store/plugin/shop/unclaimed/
https://www.webasyst.ru/store/plugin/shop/backendfilter/
Также можно обратить внимание на пару других хуков
https://developers.webasyst.ru/hooks/shop/orders_collection/
https://developers.webasyst.ru/hooks/shop/orders_collection.filter/
в которых тоже разделена функциональность. Первый - для создания новых коллекций, а второй - для изменения существующих.
приведите примеры
коллекция создается в самом плагине, зачем ему обращаться к ней через хук?
по факту оба метода предоставляют доступ к одному тому же объекту т.ч.разделение весьма условное - второй хук может тоже самое что и первый
Ну вот вроде и на одной стороне, а всё-равно диалога не выходит. Предлагаю резюме:
1. Старый хук нужен.
2. Новая функциональность нужна.
Как она будет реализована мне не принципиально. Я выразил лишь личное мнение, что меняя старый хук можно сломать старые плагины.
Ну и orders_collection разделены, было бы логично и products_* разделять
Вы не можете аргументировать свои слова, поэтому и диалога нет. Какой может быть диалог когда оппонент на просьбу примера пишет в духе "ой ну все"? :)
ой всё
Ветка вышла в духе "отрицание, осознание, признание"
Пользуясь случаем: перекиньте код для страниц из https://webasyst.ru/store/plugin/menu/ensosite/ в свой плагин меню для магазина - не хватает функционала для публичной темы.
P.S. Пока не занялся загрузкой этого плагина, я и не подозревал что тут свои кибер сквоттеры есть, кто-то занял menu/site, а плагин не загрузил :)
Ветка вышла в духе: я не знаю как это работает, не пользуюсь, докажите что оно мне надо.
Можно было бы продолжать, но не думаю, что это приблизит хоть какую-то реализацию фильтрации.
Это не понял. Ты писал о PR со страницами в само приложение. Это не оно?
Сквоттеры? Я штоле?
PR - это потом как-нибудь как дойдут руки, пока что реализовал функцию наподобие wa_print_tree непосредственно в шаблоне.
Я говорил о твоем плагине menu/plugins/shop, там код для вывода страниц не дописан, можно перенести его из моего плагина - различия минимальны.
Попался хомяк :)
Это нужно всем
Не так уж и всем, но сегодня придумал ещё одну хитрую сортировку товаров, которую тоже мог бы с хуком сделать :)
UP. Проблема актулаьная. Когда планируется реализация?
Сделал свой фильтр по маркам и моделям без использования множественных характеристик. Тоже с этим хуком.
Ещё пример использования.
Необходимо сделать так, чтобы товары, которых нет в наличии, не выводились [только] в эти блоки:- Перекрестные продажи (Cross-selling)
- Схожие и альтернативные товары (Upselling)
Очень нужна фильтрация по наличию. У меня два сайта детской одежды, стоят фильтры выбор по размеру, клиент выбирает а ему сайт вываливает кучу товара и только зайдя в карточки товара, кликнув на нужный размер можно увидеть доступно к покупке или нет. В мобильный версиях это вообще треш.
Просьба разработчикам подумать о столь нужном фильтре и как можно быстрее его внедрить.
Подтверждаю, нет никакого смысла в блоке Схожие и альтернативные товары (Upselling) выводить товары, которых нет в наличии. Это только вредит сайту.