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

Опубликовано: 1 Октябрь, 2018
Категория: Настройка VirtueMart
Комментариев: 19

В предыдущей статье было рассмотрено настраиваемое поле с типом Общий дочерний вид, которое выводит товары в виде выпадающего списка.

Но что если нужно выводить дочерние товары автоматически, не прикрепляя никаких полей, по аналогии с похожими товарами?

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

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

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

Скачать шаблон

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

Для настройки внешнего вида можно использовать свои стили, для примера я использовал такой css.

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

В шаблоне childproduct.php кроме изображения и названия также добавлен вывод цены и кнопки Купить.

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

Надеюсь, что статья окажется полезной и пригодится в работе.

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

    vskuchmak

    покажете на живом сайте?

      admin

      admin

      Демо нет, все тестировалось на локальном сервере. Если при работе возникнут какие-то проблемы, то пишите, разберемся.

    vskuchmak

    например у меня кнопка Купить под каждым дочерним товаром
    https://kindercomfort.ru/avtokresla/avtokresla-gruppa-1-9-18kg/avtokreslo-britax-roemer-king-ii-detail
    у вас при выборе цвета подразумевается полная перезагрузка страницы? не так сделано https://beru.ru/product/100210224057 ?

      admin

      admin

      Для скрытия цены и кнопки Купить удалите из шаблона

      Контент обновляется с перезагрузкой страницы.
      Если нужно дополнительно выделять выбранный товар, то добавить это можно, напишите на admin@virtuemart.su

    spro1

    Добрый день!

    Спасибо за статью, на последней версии VM работает отлично, сделал за пару минут.

    У меня задача сделать карточку товара, как тут https://myscent.ru/brands/kenzo/men/l_eau_par_kenzo_pour_homme/
    Получается есть товар с характеристиками, в карточке выводятся дочерние товары со своей ценой и контролем остатков.

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

    Это возможно?

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

      admin

      admin

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

      Чтобы скрыть дочерние товары в Virtuemart > Настройки > Внешний вид отключите опцию Показывать дочерние товары без категорий в результатах поиска и модулях.

      Чтобы скрыть цену у родительского товара в файле /components/com_virtuemart/sublayouts/prices.php после

      добавьте

      и в конце файла добавьте

      После правок нужно переопределить файл в папке /templates/t3_bs3_blank/html/com_virtuemart/sublayouts/, чтобы все изменения сохранились при обновлении.

      Чтобы скрыть кнопку Купить у родительского товара в файле /components/com_virtuemart/sublayouts/addtocart.php после

      добавьте

      и в конце файла добавьте

      После правок нужно переопределить файл в папке /templates/t3_bs3_blank/html/com_virtuemart/sublayouts/.

    vladimirwk

    Как можно вывести краткое описание и настраиваемые поля?

      admin

      admin

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

      Настраиваемые поля можно вывести с помощью кода из этой статьи. Если не получится, то уточните какая позиция вывода у полей, которые нужно вывести.

        vladimirwk

        Краткое описание и общий заголовок вывел. Настраиваемое поле не выводится. Вывожу в своей позиции под названием "magazin", вывод осуществляю по той статье на которую вы дали ссылку, в карточке товара и в модуле выводится нормально, а в дочерних товарах почему-то нет. Вывожу область текста.

          admin

          admin

          Небольшое уточнение по по поводу вывода настраиваемых полей. Чтобы все работало правильно в шаблоне после

          добавьте

    vladimirwk

    И еще один вопрос. Можно ли как-то вставить заголовок, чтобы дочерние товары были с общим заголовком, к примеру таким "Другие цвета"?

      admin

      admin

      В шаблоне chilproduct.php перед

      добавьте

    vladimirwk

    Можно сделать так чтобы если дочерние товары закончились и у меня стоит не показывать отсутствующие товары, то вместо дочерних товаров выводился бы текст "Товары с другим цветом закончились"? Чтобы не висел заголовок "Другие цвета", а под ним ничего нет.

      admin

      admin

      Попробуйте в шаблоне заменить

      на

    vladimirwk

    Супер! Все работает. Спасибо.

    vskuchmak

    array_unshift($childIds, $parentId); // добавляем id родительского товара
    зачем при просмотре дочернего товара в список добавляете родительский? какова идея использования родителя?

      admin

      admin

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

    vskuchmak

    я правильно понимаю, что предлагаете использовать схему работы с дочерними товарами:
    pen red
    - pen blue
    - pen green
    а не
    pen
    - pen red
    - pen blue
    - pen green

      admin

      admin

      В случае с цветами да, так будет удобнее.

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

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

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

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

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

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

×