Вывод товаров из произвольных категорий



  • Доброго дня. В первую очередь позвольте выразить благодарность за вашу отличную работу. Пока продукт вызывает только положительные эмоции, мне очень нравится.
    Подскажите пожалуйста, как правильно вывести товары из определенной категории? Если использовать contentList функцию, то какой вид должен быть у запроса к mongoDB? Скажем мне нужно вывести товары из определенной категории, название которой совпадает со значением поля tags на текущей странице. Как подставить в фильтр значение поля текущей страницы?
    В шаблоне категории, где идет вывод товаров {% for item in items %}, как я понимаю это вывод массива всех товаров именно текущей страницы. Можно-ли установить глубину просмотра, чтобы получить страницы из других дочерних категорий?

    И еще, по поводу категорий. В режиме редактирования товара, если выбрать несколько категорий для одного товара, скажем родительскую и дочернюю, то при выборе родительской выбираются автоматически все дочерние. Как отключить эту функцию?
    2.png
    Возможно-ли отображать вместо id категорий их Названия в таблице админки?
    1.png
    При сохранении поля в типах контента (Категории - categories) появляется ошибка:
    3.png



  • @whatislove

    Подскажите пожалуйста, как правильно вывести товары из определенной категории? Если использовать contentList функцию, то какой вид должен быть у запроса к mongoDB? Скажем мне нужно вывести товары из определенной категории, название которой совпадает со значением поля tags на текущей странице. Как подставить в фильтр значение поля текущей страницы?

    Какое значение в поле "tags", только одно название категории или массив? Я думаю для такого функционала лучше создать второе поле с типом ввода "Категории". Для тегов есть пример запроса в стандартном шаблоне главной страницы. А для категорий будет так:

    {% if currentPage.categoriesTags is defined %}
    
        {{ contentList(
            'list_simple',
            'products',
            {"isActive": true, "_id": {"$ne": currentPage.id}, "categoriesTags": {"$elemMatch": {"$in": currentPage.categoriesTags}}},
            {"_id": "desc"},
            20
        ) }}
    
    {% endif %}
    

    В шаблоне категории, где идет вывод товаров {% for item in items %}, как я понимаю это вывод массива всех товаров именно текущей страницы. Можно-ли установить глубину просмотра, чтобы получить страницы из других дочерних категорий?

    Такого функционала пока нет.

    И еще, по поводу категорий. В режиме редактирования товара, если выбрать несколько категорий для одного товара, скажем родительскую и дочернюю, то при выборе родительской выбираются автоматически все дочерние. Как отключить эту функцию?

    Можете пояснить в чём смысл? Сейчас, если выбираете "Обувь", имеется ввиду вся обувь, а если нужна какая-то отдельная, то не нужно выбирать родителя. По умолчанию это именно дополнительные категории для товара. Если Вы хотите это поле использовать для другого (как упомянутые выше теги), то можете добавить второе поле с типом ввода "Категории", его сможете использовать вместо поля "tags".

    Возможно-ли отображать вместо id категорий их Названия в таблице админки?

    Нет. Но учту для будущих версий.

    При сохранении поля в типах контента (Категории - categories) появляется ошибка

    Какая версия Шопкера? Я думаю это не критично, можно не обращать внимание, просто нажать кнопку второй раз.



  • Можете пояснить в чём смысл?

    Вывести на странице все товары в текущей категории и во всех ее вложенных категориях.
    Хочется структурировать каталог, прежде всего для менеджера магазина. Я понял, про родительскую и дополнительную категорию, спасибо. Но в этом случае менеджеру не очевидно, какой дополнительной категории принадлежит тот или иной товар, так как в таблице админки нет названий категорий, только ID.
    Хотелось, чтобы при выборе категории «Обувь» выводился весь список товаров. Я понимаю, что для этого их можно просто оставить в родительской категории. Но, опять же, менеджер будет видеть эти товары все разом, а дополнительные папки останутся пустыми папками.

    Кстати, когда я выбираю несколько категорий в редакторе товара, галки не отображаются при повторном редактировании. Если очистить кэш, - появляются при первом открытии редактора вновь, и далее их снова нет. Таким образом довольно сложно рассортировать товары и контролировать в каких они категориях отображаются.

    Какая версия Шопкера?

    4.1.6



  • Кстати, когда я выбираю несколько категорий в редакторе товара, галки не отображаются при повторном редактировании. Если очистить кэш, - появляются при первом открытии редактора вновь, и далее их снова нет.

    Да, это я тоже заметил. Будет исправлено. Пока можно просто обновлять страницу в браузере.

    Хотелось, чтобы при выборе категории «Обувь» выводился весь список товаров. Я понимаю, что для этого их можно просто оставить в родительской категории. Но, опять же, менеджер будет видеть эти товары все разом, а дополнительные папки останутся пустыми папками.

    Это относится к параметру "глубина", о котором Вы писали? К сожалению, пока этого функционала нет. Позже напишу как это можно реализовать.



  • Кстати, когда я выбираю несколько категорий в редакторе товара, галки не отображаются при повторном редактировании.

    Нужно обновиться на последнюю версию. Там этого нет.

    Но лучше немного подождать и обновиться на 4.2.1, там будет исправлена ошибка, которая появляется при сохранении типа контента.


Авторизуйтесь, чтобы ответить