Вывод дочерних товаров в категории virtuemart

Опубликовано: 14 Февраль, 2019
Категория: Настройка VirtueMart
Комментариев: 18

Эта статья является логическим продолжением статьи про вывод дочерних в карточке товара.

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

Для решения этой задачи в шаблоне вывода товаров /components/com_virtuemart/sublayouts/products.php нужно просто подключить файл childproduct_category.php.

Скачать

Сам файл childproduct_category.php нужно скопировать в папку /components/com_virtuemart/sublayouts/.

По умолчанию кроме картинки будет выводиться и дополнительная информация о товаре. Чтобы ее убрать удалите childproduct_category.php

Для стилизации добавьте в css файл шаблона

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

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

18 комментариев

    artemiy

    Спасибо за статью.
    На ее основании сделал вывод всех размеров обуви в обувной категории магазина.
    Но есть дополнительный вопрос, который меня мучает:
    Использую Custom Filters в паре Stockable Custom Fields. Вывод списка размеров это еще пол беды.

    Реально ли сделать подобное:
    Отфильтровать все модели у которых в наличии есть, к примеру, 40 размер и чтобы ссылка на карточку товара вела на 40 размер всех отфильтрованных товаров?

    У ребят из Розетки такое вот уже давно реализовано (см. скриншот по ссылке)
    https://prnt.sc/mzdwws

      admin

      admin

      Если дочерние выводятся в категории, то после фильтрации по идеи все будет работать также как на скрине.

        artemiy

        Нет, только родительские.

          admin

          admin

          Тогда сложнее. В настройках фильтра есть опция показа дочерних товаров?

            artemiy

            Да, такое имеется. Только что активировал. Было Parent Product
            См. скрин

            http://prntscr.com/mznwzq

            admin

            admin

            Попробуйте выбрать All и потестировать.

    artemiy

    Протестировал, есть пара вариантов поведения, но ни один не подходит.

    Итак: при выборе All подтягиваются все кастомфилды, которые свойственны товарам этой категории. Но хотелось бы их контролировать. Есть кастомфилды которые хотело бы показывать в категории.

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

    Выбрав к примеру Adidas, получаем список всех дочерних товаров. А в каждом материнском у меня по 20-25 размеров. Умножаем это на количество материнских и получаем "ужас, летящий на крыльях ночи". Вроде бы покупатель видел 10-15 моделей кроссовок, а отфильтровав по производителю, получает в результате 250+ товаров.
    Такое поведение вроде и логично, но совершенно никого не устраивает.

    Опять же, смотрю на Розетку, у них такая логика: если отфильтровал по производителю, то получается один рандомный товар одной модели.

    Как можно такое реализовать? Смотрю в код Custom Filters и глаза слезами наливаются. Моих знаний РНР явно не хватает. Единственное что надо нарыть где формируется запрос в базу и его "погипнотизировать" взглядом.

    Пока есть мысль что запрос формируется тут
    components\com_customfilters\models\products.php, но как раз упираюсь в лимит своих познаний.

      admin

      admin

      Запрос в базу для вывода товаров в категории (без фильтрации и с фильтрацией) формируется в /administrator/components/com_virtuemart/models/product.php в методе sortSearchListQuery.

    Александр

    Пример категории товара https://камешки-колечки.рф/garnitur/garnitury-a052. Вот если зайти в категории и выбрать размер кольца, то автоматом перекидывает в карточку товара с выбранным размером кольца. И вот уже в карточке нужно добавлять в корзину. Хочу сделать, чтобы добавить в корзину появлялась в самой категории и при этом можно было выбрать размер кольца, то есть отметили нужный размер и не перекидывало в карточку товара, а появлялась просто кнопка "Добавить в корзину" на странице категории товара. То есть не нужен вывод дополнительных фотографий или описаний в категории, нужно, чтобы были перечислены только размеры из поля мультивариант и покупатель мог выбирать размер не заходя в карточку товара.

      admin

      admin

      Данный функционал должен работать. Пример на официальном демо-сайте.
      Попробуйте отключить модуль фильтра, возможно, проблема в нем.

        OutLaw123

        А нельзя вывести только определенные дочерки, например выводить только одну вариацию в каждом цвете, просто когда в каждом цвете много дочерних размеров много одинаковых миниатюр...И родителя чтобы не выводило.
        Пробовал вывести именно мультивариант как на офф сайте, но ajax плохо отрабатывает и выглядит не так красиво как миниатюра с фото дочернего товара 🙁
        Ждем модуль для вывода мультиварианта в категории 🙂 было бы супер! Чтобы примерно как на wildberries работало, это лучший пример витрины для товаров с одеждой.

          admin

          admin

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

    Виталий

    Добрый день! Решение отличное.
    Есть вопрос:
    при выборе дочерки, происходит переход в карточку товара.
    А можно сделать так, чтобы происходила замена в товара внутри категории, смена товара, а не переход?

      admin

      admin

      Здравствуйте!

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

    Ирина

    Добрый день
    Для virtuemart 2 есть такое что то? очень надо, так как товаров более двух с половиной тысяч и конечно уже стало их долго выбирать, что не полезно для продаж, но просто сделать выбор дочерних без вывода как у вас под картинкой мелких картинок расцветок, будет просто не понятно и естественно не лучше чем сейчас, на тройку перейти не могу - рушится весь сайт, все шаблоны, плагины, все геолакации... всё ... всё шо нажито непосилным трудом 🙂
    а между тем в категории уже порой по 49 страниц, это точно не хорошо

      admin

      admin

      Здравствуйте!

      Попробуйте этот же код для vm2.
      Думаю, что должно сработать.
      Если не получится, то пишите на admin@virtuemart.su, что-нибудь придумаем.

        Ирина

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

          admin

          admin

          Пришлите доступ к админке и ftp на admin@virtuemart.su, что-нибудь придумаем.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*
Для вставки кода заключите его в теги [php] [/php]
*

С 15-18 июня admin в отпуске.

Ответы на все вопросы и ссылки на товары будут присланы 19 июня.

Спасибо за понимание и хороших выходных.

×