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

У вас есть интернет-магазин на Joomla 3 + Virtuemart 3, и вы хотите изменить или отредактировать какой-то блок на страницах магазина? В этой статье я расскажу, как это сделать.

В данной статье описаны все макеты страниц Virtuemart 3, а также приведены их изображения для более удобного ориентирования по ним.

Информация из данной статьи на 95% применима и для Virtuemart 2.

Шесть лет назад (Боже, неужели прошло 6 лет !?) я уже писал мега-статью с описанием всех макетов Virtuemart. Та статья была разбита на 3 части. Вы и сейчас сможете найти ее в серии статей Virtuemart – интернет-магазин на Joomla. В той статье были описаны макеты Virtuemart 1.1.x для Joomla 1.5.

Зачем нужна новая статья? Дело в том, что макеты в Virtuemart 2 и Virtuemart 3 совершенно другие. Сам я, по роду деятельности, так часто делаю интернет-магазины на Virtuemart, что выучил почти все макеты наизусть. Но если вы не зашли столь же далеко, то информация о том, где какая страница Virtuemart 3 редактируется, может быть очень полезной.

В этот раз я не буду разбирать описание всех макетов на несколько статей. Вся выжимка по макетам с изображениями представлена для вас в этой мега-статье.

Оглавление

Основные макеты Virtuemart 3

Подмакеты Virtuemart 3 (блоки, которые могут встречаться на разных страницах)

Переопределение макетов и подмакетов Virtuemart 3. Важно!

Не вносите изменения непосредственно в макеты Virtuemart, которые находятся в директории components/com_virtuemart/views/.Такие изменения будут потеряны при первом же обновлении Virtuemart. Чтобы не потерять изменения, необходимо вносить их в макеты, которые переопределены в используемый вами шаблон Joomla.

Общее правило переопределения макетов

Чтобы переопределить макет в шаблон Joomla, скопируйте файл:

components/com_virtuemart/views/КАТЕГОРИЯ_МАКЕТА/ tmpl/НАЗВАНИЕ_МАКЕТА.php

в директорию:

templates/ВАШ_ШАБЛОН/html/com_virtuemart/КАТЕГОРИЯ_МАКЕТА/

Пример переопределения макетов:

Для переопределения макета карточки товара нужно скопировать файл:

components/com_virtuemart/views/productdetails/ tmpl/default.php

в директорию:

templates/ВАШ_ШАБЛОН/html/com_virtuemart/productdetails/

Общее правило переопределения подмакетов

Чтобы переопределить подмакет в шаблон Joomla, скопируйте файл:

components/com_virtuemart/sublayouts/НАЗВАНИЕ_МАКЕТА.php

в директорию:

templates/ВАШ_ШАБЛОН/html/com_virtuemart/sublayouts/

Пример переопределения подмакетов:

Для переопределения подмакета цен товара нужно скопировать файл:

components/com_virtuemart/sublayouts / prices.php

в директорию:

templates/ВАШ_ШАБЛОН/html/com_virtuemart/sublayouts/

Основные макеты Virtuemart 3. Главная страница (virtuemart)

components/com_virtuemart/views/virtuemart/default.php – основной макет главной страницы. Содержит описание магазина, список категорий верхнего уровня вложенности, и список товаров в зависимости от настроек в админке.

1

components/com_virtuemart/views/virtuemart/feed.php – макет RSS-фида товаров VM.

components/com_virtuemart/views/virtuemart/off_line.php – макет страницы выключенного магазина.

Основные макеты Virtuemart 3. Страница категории товаров  (category)

components/com_virtuemart/views/category/default.php – основной макет категории товаров Virtuemart. Содержит описание категории, список дочерних категорий, список товаров категории.

components/com_virtuemart/views/category/categories.php – макет списка дочерних категорий заданной категории.

2

Основные макеты Virtuemart 3. Страница товара (productdetails)

components/com_virtuemart/views/productdetails/default.php – основной макет страницы товара. Содержит всю информацию о товаре, а также вызывает большинство макетов страницы товара, описанных ниже.

3

components/com_virtuemart/views/productdetails/default_images.php –макет основного изображения на странице текущего товара Virtuemart. Содержит также скрипты, обрабатывающие основное и дополнительные изображения.

components/com_virtuemart/views/productdetails/default_images_additional.php – макет дополнительных изображений текущего товара Virtuemart.

components/com_virtuemart/views/productdetails/default_manufacturer.php – макет содержит блок со списком производителей текущего товара Virtuemart.

components/com_virtuemart/views/productdetails/default_pdf.php –макет отображения текущего товара в формате PDF.

components/com_virtuemart/views/productdetails/default_reviews.php – макет отзывов о текущем товаре Virtuemart.

components/com_virtuemart/views/productdetails/default_showcategory.php – макет, показывающий дочерние категории той категории, в которой содержится текущий товар на странице этого товара.

components/com_virtuemart/views/productdetails/mail_html_notify.php – макет уведомления покупателей, которые подписались на ожидание информации о поступлении товара, в формате HTML.

components/com_virtuemart/views/productdetails/mail_raw_notify.php php – макет уведомления покупателей, которые подписались на ожидание информации о поступлении товара, в формате RAW.

components/com_virtuemart/views/productdetails/notify.php – макет формы подписки на уведомления о поступлении товара. Показывается в случае, когда товара нет в наличии и выставлены соответствующие настройки в конфигурации Virtuemart.

4

Основные макеты Virtuemart 3. Корзина товаров (cart)

Макеты корзины сложные. Я советую заниматься их редактированием только тем, кто может хорошо читать код PHP и HTML. Для всех остальных проще купить готовое расширение одностраничного оформления заказа Virtuemart.

components/com_virtuemart/views/cart/default.php – основной макет корзины. Содержит всю информацию, отображающуюся в корзине, а также вызывает большинство макетов корзины, описанных ниже.

5

components/com_virtuemart/views/cart/default_address.php – макет блока адресов «Кому»/ «Куда», которые показаны над списком товаров в корзине.

components/com_virtuemart/views/cart/default_cartfields.php – макет, содержащий поля «Примечания и специальные запросы», согласие с условием обслуживания, а также дополнительные поля, заполняемые пользователем в корзине.

components/com_virtuemart/views/cart/default_coupon.php – макет формы добавления купона в корзине.

components/com_virtuemart/views/cart/default_pricelist.php – макет таблицы товаров в корзине.

components/com_virtuemart/views/cart/default_shopperform.php – макет изменения покупателя заказа. Используется только если в настройках VM на вкладке «Оформление заказа» активирована соответствующая опция.

components/com_virtuemart/views/cart/mini_cart.php – на текущий момент нигде не используется.

components/com_virtuemart/views/cart/order_done.php – макет страницы оформленного заказа, на которую попадает покупатель после подтверждения заказа/оплаты.

components/com_virtuemart/views/cart/padded.php – макет всплывающего окна «Товар добавлен в корзину».

6

components/com_virtuemart/views/cart/perror.php – макет страницы всплывающего окна с ошибкой о невозможности добавления в корзину. Такое бывает в некоторых случаях.

components/com_virtuemart/views/cart/select_payment.php – макет способов оплаты в корзине.

components/com_virtuemart/views/cart/select_shipment.php – макет способов доставки в корзине.

Основные макеты Virtuemart 3. Страница производителя (manufacturer)

components/com_virtuemart/views/manufacturer/default.php – основной макет страницы производителя. Содержит список производителей магазина. Этот макет будет показан для типа пункта меню Joomla Virtuemart –> Производители.

7

components/com_virtuemart/views/manufacturer/default.php – макет страницы отдельного производителя. Содержит изображение производителя, описание производителя  и ссылку на товары производителя. Этот макет будет показан для типа пункта меню Joomla Virtuemart –> Производитель.

8

Вы можете спросить: «А где же макет списка товаров производителей?». Его нет. Роль данного макета выполняет макет категории. По-моему, это очень спорное решение. Отличие URL товаров заданного производителя от товаров категории только в том, что в первом случае передается параметр virtuemart_manufacturer_id вместо ID категории.

Основные макеты Virtuemart 3. Выписанный счет/Страница просмотра информации о заказе (invoice)

Данные макеты очень похожи на макеты из директории orders. Не путайте их! Инвойсы служат для отображения информации о сделанном заказе в браузере. Это та страница, где нужно ввести номер заказа и секретный ключ, та страница, что задействована в письме и может использоваться для его редактирования: Просмотр письма с подтверждением заказа по ссылке в браузере. Также инвойс генерирует выписанный счет в PDF. Ордеры же используются в личном кабинете для отображения заказов.

components/com_virtuemart/views/invoice/invoice.php – основной макет счета. Содержит параметры и позиции заказа, а также вызывает большинство макетов счета, описанных ниже.

components/com_virtuemart/views/invoice/invoice_order.php – содержит подробности заказа, статус заказа, информацию о доставке.

components/com_virtuemart/views/invoice/invoice_items.php – содержит позиции заказа.

components/com_virtuemart/views/invoice/invoice_history.php – содержит историю движения заказа (смены статусов заказа).

Основные макеты Virtuemart 3. Письма с подробностями заказов, отправляемые продавцу и покупателю (invoice mail)

Макеты писем сложные. Я советую заниматься их редактированием только тем, кто может хорошо читать код PHP и HTML. Для всех остальных проще купить Virtuemart Email Manager Plus.

Все макеты писем представлены в двух форматах: html-письмо и raw-письмо (обычное текстовое). Ниже описаны макеты только для формата html. Макеты писем raw имеют точно тот же смысл. Выбрать формат писем можно в общих настройках Virtuemart.

components/com_virtuemart/views/invoice/mail_html.php – основной макет письма. Содержит всю информацию, отображающуюся в письме, а также вызывает большинство макетов письма, описанных ниже.

components/com_virtuemart/views/invoice/mail_html_header.php – шапка письма. Содержит изображение магазина и информацию о магазине.

components/com_virtuemart/views/invoice/mail_html_footer.php – подвал письма.

components/com_virtuemart/views/invoice/mail_html_pricelist.php – таблица заказанных товаров, их цен и статусов в письме.

components/com_virtuemart/views/invoice/mail_html_shopper.php – информация о покупателе в письме.

components/com_virtuemart/views/invoice/ mail_html_shopper_more.php – пустой макет.

components/com_virtuemart/views/invoice/mail_html_shopperaddresses.php – адрес доставки товара, указанный при оформлении заказа, в письме.

components/com_virtuemart/views/invoice/mail_html_vendor.php – расширенный формат письма для продавцов. Если вы не используете функционал мультипродавцов в VM, а скорее всего так и есть, данный макет вам не нужен.

components/com_virtuemart/views/invoice/mail_html_vendor_more.php – пустой макет.

9

Основные макеты Virtuemart 3. Список заказов в личном кабинете (orders)

components/com_virtuemart/views/orders/list.php – макет списка заказов в личном кабинете. Отображает перечень заказов, подробности каждого из которых выводит следующий макет.

10

components/com_virtuemart/views/orders/details.php – основной макет отдельного заказа в личном кабинете. Содержит всю информацию, отображающуюся в заказе, а также вызывает большинство макетов письма, описанных ниже.

11

components/com_virtuemart/views/orders/details_order.php – основная информация о заказе в личном кабинете.

components/com_virtuemart/views/orders/details_items.php – позиции заказа в личном кабинете.

components/com_virtuemart/views/orders/details_history.php – история изменения статусов заказа в личном кабинете.

12

components/com_virtuemart/views/orders/details_pdf.php – пустой макет.

Основные макеты Virtuemart 3. Редактирование данных пользователя в личном кабинете (user)

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

components/com_virtuemart/views/user/edit.php – основной макет страницы редактирования данных пользователя Virtuemart 3. Может быть получен путем добавления в меню пункта типа Virtuemart –> Учетная запись. Содержит всю информацию о пользователе в полях, позволяющих ее изменить, а также его заказы и другие элементы. Вызывает большинство макетов письма, описанных ниже.

components/com_virtuemart/views/user/edit_address.php – макет редактирования адреса доставки авторизованного пользователя в личном кабинете и при оформлении заказа неавторизованного пользователя Virtuemart 3. Макет сложный. Реализован крайне неоднозначно.

components/com_virtuemart/views/user/edit_address_addshipto.php – макет выбора адреса доставки из существующих адресов.

components/com_virtuemart/views/user/edit_address_userfields.php – макет полей пользовательских данных адреса.

components/com_virtuemart/views/user/edit_orderlist.php – макет списка заказов пользователя в личном кабинете при редактировании полей. Реализован в отдельной вкладке. Зачем он нужен, когда есть список components/com_virtuemart/views/orders/list.php, мне непонятно.

components/com_virtuemart/views/user/edit_shopper.php – макет полей пользовательских данных.

components/com_virtuemart/views/user/edit_vendor.php – редактирование данных продавца. Только для пользователей с правами продавца.

components/com_virtuemart/views/user/edit_vmshopper.php – макет полей пользовательских данных.

components/com_virtuemart/views/user/login.php – форма авторизации пользователя в корзине и личном кабинете.

components/com_virtuemart/views/user/mail_html_reguser.php – макет отправки письма после регистрации покупателя.

components/com_virtuemart/views/user/mail_html_regvendor.php – макет отправки письма после регистрации продавца.

Основные макеты Virtuemart 3. Форма всплывающего окна «Задать вопрос по товару» (askquestion)

components/com_virtuemart/views/askquestion/form.php – основной макет страницы формы «Задать вопрос по этому товару» Virtuemart 3. Показывается во всплывающем окне на странице товара, когда пользователь нажимает соответствующую кнопку.

components/com_virtuemart/views/askquestion/mail_confirmed.php – макет с подтверждением отправки запроса (не письмо!).

components/com_virtuemart/views/askquestion/mail_html_question.php – письмо с запросом.

13

Подмакеты Virtuemart 3 (блоки, которые могут встречаться на разных страницах)

В Virtuemart 3 появились так называемые «подмакеты» или «sublayouts». Подмакеты представляют собой элементы магазина, которые могут встречаться на разных страницах. Самый яркий пример подмакета – блок цен товара. Он одинаков и в категории и в карточке товара. Теперь, если вы хотите изменить что-то в блоке цен, вам не нужно редактировать несколько макетов в разных местах. Достаточно отредактировать один подмакет и изменения появятся сразу на всех страницах. Рассмотрим подмакеты, которые предлагает нам Virtuemart 3:

components/com_virtuemart/sublayouts/addtocart.php – подмакет блока добавления товара в корзину. Включает в себя подмакеты addtocartbar, addtocartbtn, customfields. Почему так сложно? Форма добавления товара в корзину может содержать в себе дополнительные поля, являющиеся атрибутами корзины. И не просто поля, а такие, которые могут иметь несколько значений, одно из которых выбирает покупатель перед добавлением товара в корзину. Чтобы все работало правильно должно быть так, как есть.

components/com_virtuemart/sublayouts/addtocartbar.php – подмакет кнопки добавления товара в корзину с формой ввода количества товара.

components/com_virtuemart/sublayouts/addtocartbtn.php – подмакет кнопки добавления товара в корзину.

components/com_virtuemart/sublayouts/askrecomjs.php – подмакет, содержащий скрипты всплывающего окна «Задать вопрос по этому товару» и «Рекомендовать другу». Если у вас какие-либо проблемы со скриптами этих окон, то вы можете подправить их в данном подмакете.

components/com_virtuemart/sublayouts/categories.php – подмакет списка дочерних категорий родительской категории.

components/com_virtuemart/sublayouts/customfield.php – PHP-класс, генерирующий отображение настраиваемых полей. Вынесен сюда, как я понимаю, не случайно, а для того, чтобы каждый сайт мог переопределить этот класс и подправить его под особенности бизнеса. Иногда это бывает необходимо.  Решение не очень правильное с точки зрения Joomla и MVC, но наиболее простое.

components/com_virtuemart/sublayouts/customfields.php – подмакет настраиваемых полей Virtuemart.  

components/com_virtuemart/sublayouts/prices.php – подмакет цен товара Virtuemart 3.

components/com_virtuemart/sublayouts/products.php – подмакет списка товаров категории Virtuemart 3.

components/com_virtuemart/sublayouts/products_horizon.php – подмакет списка товаров категории Virtuemart 3 в другом формате.

components/com_virtuemart/sublayouts/rating.php – подмакет рейтинга товара.

components/com_virtuemart/sublayouts/related.php – подмакет похожего товара. 1 штука.  

components/com_virtuemart/sublayouts/snippets.php – подмакет сниппетов микроразметки Schema.org.

components/com_virtuemart/sublayouts/stockhandle.php – подмакет остатков товара.

components/com_virtuemart/sublayouts/tos.php – подмакет условий обслуживания товара.

Примерно вот такое количество файлов нужно обработать, чтобы создать качественный шаблон интернет-магазина Virtuemart. Не стоит удивляться тому, что они стоят дорого, а интернет-магазин с уникальным дизайном еще дороже.

Отсюда же вытекает, что бесплатные шаблоны Virtuemart в 99% случаев либо некачественные, либо не бесплатные.

Надеюсь, данная статья поможет вам самостоятельно отредактировать оформление Virtuemart 3, а также сэкономит сотню другую зеленых енотов =).

Понравилась статья? Сохраните себе на стену:

Ваша оценка материала очень важна для нас. Просим вас оценить статью или оставить отзыв в комментариях ниже.

4.9571428571429 1 1 1 1 1 4.96

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

Для отправки комментария введите код с картинки:
Защитный код
Обновить

Комментарии  

0 # Вывод "Уведомить меня"Дмитрий 22.11.2016 10:32
Здравствуйте! Подскажите в каком файле выводится кнопка "Уведомить меня", когда товар заканчивается на складе? Буду очень признателен за ответ!
Ответить | Ответить с цитатой | Цитировать
0 # RE: Вывод "Уведомить меня"Wedal 23.11.2016 06:06
Дмитрий, components/com_virtuemart/sublayouts/addtocartbar.php
Ответить | Ответить с цитатой | Цитировать
0 # RE: Вывод "Уведомить меня"Дмитрий 23.11.2016 18:34
Цитирую Wedal:
Дмитрий, components/com_virtuemart/sublayouts/addtocartbar.php

Большое Вам спасибо!
Подскажите, возможно еще узнать в каком файле генерируется pdf-файл счета заказа?
Ответить | Ответить с цитатой | Цитировать
+3 # RE: Вывод "Уведомить меня"Wedal 24.11.2016 05:24
Дмитрий, можно. Вы узнаете это, если внимательно прочитаете данную статью.
Ответить | Ответить с цитатой | Цитировать
+4 # Огромное спасибо!!!!Алексей 15.09.2016 13:59
Огромное спасибо, исчерпывающая статья. Ничего лишнего, все то что "доктор прописал".
Ответить | Ответить с цитатой | Цитировать
+2 # RE: Настройка шаблона Virtuemart 3Вадим 13.09.2016 06:39
Огромное спасибо за статью! Добавил в закладки и на стену вконтакте, чтобы не дай бог не потерять! :-) Теперь больше не придётся каждый раз лихорадочно перерывать папки в поисках нужного документа!
Ответить | Ответить с цитатой | Цитировать

Вверх