Сколько лет прошло, а стандартная корзина в virtuemart по-прежнему не работает нормально. Да, в virtuemart 3 в настройках появилась опция одностраничной корзины, но все равно для заполнения данных покупателя нужно переходить на отдельную страницу, что во многих случаях нежелательно.
Конечно, есть сторонние плагины:
- VP One Page Checkout - лучший, на мой взгляд, плагин корзины.
- One Page Checkout - тяжеловесный, но тоже хороший плагин.
- VirtueMart One Page Checkout - бесплатный, но мало настроек.
Если есть возможность используйте один из перечисленных плагинов, а если нет, то давайте разбираться со стандартной корзиной.
Основные настройки для корзины находятся в Virtuemart > Настройки > Оформление заказа.
С такими настройками стандартная корзина будет выглядеть примерно так.
Начнем по-порядку разбираться где и как можно изменить каждый блок корзины.
Все шаблоны корзины находятся в папке /components/com_virtuemart/views/cart/tmpl/. Если ниже не будет указан полный путь к файлу, значит он находится в этой папке. Как обычно, чтобы все изменения сохранились при обновлении, нужно скопировать все измененные шаблоны в папку /templates/имя_шаблона/html/com_virtuemart/cart/.
defaulp.php - это основной шаблон корзины, в котором подключаются все остальные шаблоны.
Форма для ввода логина и пароля
Данная форма появляется если в настройках активна опция Регистрация во время оформления заказа. Подключается в default.php с помощью кода
1 |
echo shopFunctionsF::getLoginForm ($this->cart, FALSE,$uri); |
Шаблон формы находится в файле /components/com_virtuemart/sublayouts/login.php
Кнопка Продолжить покупки
Выводится в файле defaulp.php с помощью кода
1 2 3 4 5 6 |
<div class="width50 floatleft right vm-continue-shopping"> <?php // Continue Shopping Button if (!empty($this->continue_link_html)) { echo $this->continue_link_html; } ?> </div> |
Блок с контактными данными
Подключается в default.php с помощью
1 |
echo $this->loadTemplate ('address'); |
Сам шаблон находится в файле default_address.php.
Шаблон страницы с добавлением данных покупателя находится в файле /components/com_virtuemart/views/user/tmpl/edit_address.php. Шаблон полей для ввода данных находится в /components/com_virtuemart/views/user/tmpl/edit_address_userfields.php.
Настроить показ полей в корзине можно в Virtuemart > Настройки > Поля, заполняемые пользователем.
Список товаров
Список товаров подключается в defaulp.php с помощью
1 |
echo $this->loadTemplate ('pricelist'); |
Сам шаблон находится в файле default_pricelist.php. Для отключения показа налогов в корзине Virtuemart > Настройки > Формирование цен нужно отключить Показать налог в корзине.
Поле для ввода купона
Отключить можно в Virtuemart > Настройки > Внешний вид опция Использовать купоны.
Выводится в файле default_pricelist.php с помощью
1 2 3 4 5 6 |
if (VmConfig::get ('coupons_enable')) { ?> <tr class="sectiontableentry2"> ... </tr> <?php } ? |
Шаблон формы для ввода находится в файле default_coupon.php.
Выбор способа доставки
Выводится в файле default_pricelist.php кодом
1 2 3 4 5 |
<tr class="sectiontableentry1" style="vertical-align:top;"> <?php if (!$this->cart->automaticSelectedShipment) { ?> ... </tr> |
Сам шаблон выбора способа находится в файле select_shipment.php.
Выбор способа оплаты
Выводится в default_pricelist.php кодом
1 2 3 4 |
<tr class="sectiontableentry1" style="vertical-align:top;"> <?php if (!$this->cart->automaticSelectedPayment) { ?> ... </tr> |
Сам шаблон выбора находится в select_payment.php.
Примечания и условия обслуживания
Это поля, показ которых настраивается в Virtuemart > Настройки > Поля, заполняемые пользователями. Подключаются в default.php с помощью
1 |
echo $this->loadTemplate ('cartfields'); |
Сам шаблон находится в default_cartfields.php.
Кнопка Оформить заказ
Выводится в default.php с помощью кода
1 2 3 |
<div class="checkout-button-top"> <?php echo $this->checkout_link_html; ?></div> |
Мы рассмотрели самую общую структуру корзины. Этого должно хватить для того, чтобы понять в каком файле нужно искать элемент для изменения. По всем конкретным вопросам редактирования внешнего вида корзины постараюсь ответить в комментариях.
Александр
Можете подсказать, как выводить полное название товара в корзине? у нас установлен плагин "cartproduct", сейчас у нас заказ товара берется из дочерних товаров, которые имеют вид «Парфюмированная вода 50 мл». А как выводить название дочернего товара + его родитель «Acqua di Parma Парфюмированная вода 50 мл»?
admin
Для стандартной корзины в файле /components/com_virtuemart/views/cart/tmpl/default_pricelist.php перед
добавьте
чтобы название родителя выводилось после дочернего замените
на
Александр
Скажите, пожалуйста, а как это код применить для компонента RuposTel One Page? он у нас выводит корзину https://parfume-deluxe.ru/cart/
admin
Точно не скажу, под рукой нет One Page от Rupostel. Пришлите ссылку на архив с файлом, который выводит список товаров в корзине, попробуем разобраться.
Александр
Александр, не по теме вопрос... У вас на сайте есть модуль вывода производителей по буквам. Не подскажете, как называется? Очень нужен такой
Vladimir
Приветствую!
Расскажите лучше как отредактировать корзину - чтобы не было лишних переходов. А так, статья не имеет практического применения.
admin
Полноценную одностраничную корзину можно сделать только с помощью сторонних плагинов, ссылки на которые есть в начале статьи.
Дмитрий
При оформлении товара, не приходит письмо на мою почту. Она прописана в джумле общие настройки - сервер - E-mail сайта. Может где-то в вирумарте надо прописать, но я не нашел. Не подскажете?
admin
Посмотрите в начале этой статьи.
Дмитрий
Спасибо, почитал. Тестовое письмо приходит, но когда заказываешь товар через корзину, все проходит гладко, система выдает : Спасибо за Ваш заказ, а письмо на почту, о том что товар заказали, не приходит.
В настройках ставил галочку на "Использовать адрес эл.почты продавца" и убирал, результат один и тот же.
У меня стоит компонент OnePage Checkout, может это как-то с ним связанно?
admin
Используется почта на домене?
Не могу найти товар, который можно добавить в корзину, пожалуйста, пришлите ссылку.
Дмитрий
Почту была на мэйл.ру, потом на gmail. Клиентам письма тоже не приходят. Сайт разместил временно на поддомене shop.art-plane.ru/kategorii/nabory. Может из-за того, что на поддомене?
admin
Создайте почту на домене, это, чаще всего, помогает.
Алексей
Добрый день!
Уважаемый админ, можете подсказать в чем причина: в модуле корзины всего две строчки
Товаров:
Сумма:
При добавлении товара в корзину они меняются местами
Как сделать чтобы оставались на месте?
Посмотреть можно на демо домене bebimart.ru
Алексей
Всё, спасибо! Пока ждал, нашел решение сам!
admin
Здравствуйте!
Посмотрел корзину, все на месте, проблема решена?
bssz
снова приветствую создателя этого отличного ресурса. вопрос следующий - как убрать доп поля "кому" и "куда" в настройках поля Заполняемые пользователями такого нет. нет могу разобраться.
admin
Здравствуйте!
Вы имеете ввиду эти блоки?

Если да, то самый просто вариант скрыть их с помощью css
Если не получится, то пришлите ссылку на сайт.
Kirill
Скажите, а в каком файле (и где он) можно поменять сам текст внутри корзины? При оформлении заказа хочу изменить текст внутри кнопки "Изменить контактную информацию"
admin
Нужно создать новую языковую константу в Расширения > Менеджер языков > Переопределение констант
С помощью поиска найдите нужную константу и замените ее содержимое.
TYMON_krot
После установки модуля версии 5.8, теперь подтверждая заказ, выводит сообщение об оформлении заказа, но не чистый, а слева отображается фильтр, а ссылка теперь становится category/cart/orderdone, получается пересылается в категорию как можно исправить?
admin
Для корзины создан пункт меню с типом Virtuemart > Корзина?
Alexvip
Добрый день!
В блоке "кому доставить счет"
перечисляются данные покупателя:
емайл
фамилия
имя
отчество
...
не могу найти, где можно отредактировать отображение этого списка. Конкретнее - нужно вставить после некоторых пунктов, ПЕРЕНОС СТРОКИ. а кое где убрать.
сейчас это выглядит так :
email
Фамилия
Имя Отчество Страна
Область
индекс город
улица дом квартира
телефон
А нужно так:
email
Фамилия Имя Отчество
Страна
Область
индекс
город
улица дом квартира
телефон
Спасибо!
admin
Здравствуйте!
Нужно править с помощью css. Пришлите ссылку на сайт.
Alexvip
https://kartavskiy.ru
admin
Попробуйте добавить эти стили
Alexvip
ВОЛШЕБНО!
Б Л А Г О Д А Р Ю!
Очень признателен Вашей помощи! 😉
Покупатель
Здравствуйте, как сделать форму прикрепить файл в корзине virtuemart 3
sanek2281
Присоединяюсь к вопросу, очень актуально.
admin
Готового решения предложить не могу. Если найдете решение, пожалуйста, поделитесь.
MIkhail1001
Здравствуйте!
Спасибо Вам за столь полезный мануал!
Вопрос:
Что можно сделать с таблицей корзины (без покупки платных плагинов), чтоб она корректно отображалась на смартфонах(половина таблицы не влезает)
?
admin
Здравствуйте!
Готового решения не подскажу, не тестировал именно для корзины.
Для других таблиц использовал плагин stacktable.js, работало нормально.
В этой статье есть несколько дополнительных вариантов.
MIkhail1001
Спасибо!,
Еще вопрос,
Где можно вместо ВыбраннЫ метод доставки"
Ввести Доставка"
?
MIkhail1001
Точнее,. Вместо
Ввести:
?
Не могу найти где заменить и отредактировать сами тексты в таблице корзины
admin
В Расширения > Менеджер языков > Переопределение констант создайте новую языковую константу с нужным текстом
MIkhail1001
Как можно создать такую же удобную платежку, как на вашем сайте в разделе "Поддержать"?
admin
На сайте используется форма от Яндекс Денег. В магазине можно поставить плагин от Яндекс Кассы.
Дмитрий
Помогите справиться, пожалуйста. Своим умом и поиском не дойду.
Как сделать переход с кнопки “Продолжить покупки” в корзине на главную страницу сайта. По умолчанию перебрасывает на страницу магазина.
Главная страница у меня на SP Page Builder, поэтому главной страницу магазина не могу сделать.
Спасибо!
admin
Попробуйте в файле /components/com_virtuemart/views/cart/tmpl/default.php заменить
на
Анна
здравствуйте.
подскажите пожалуйста, как можно отключить или удалить столбец "Статус товара"и"скидка" в письме по заказу. в корзине удалила, а самом письме они болтаются.
admin
Здравствуйте!
Таблица вывода товаров находится в файле /components/com_virtuemart/views/invoice/tmpl/mail_html_pricelist.php.
Попробуйте удалить
удалить
удалить
удалить
и заменить все
на
LiZa
Приветствую всех! Коллеги, а кто-нибудь реализовал страницу вывода товара с использованием SP Page Builder? Можете поделить опытом?
Alexvip
Доброго времени суток!
Не могу разобраться, как можно вывести chekbox в одну строчку с ссылкой на условия обслуживания?
admin
Здравствуйте!
Добавьте этот стиль
Alexvip
)))
CSS - творит волшебство!
СПАСИБО!
olimpikzav
Добрый день.
Подскажите пожалуйста как исправить - после нажатия кнопки оформить заказ переходит на другую страницу и показывает сообщение:
Такой страницы не существует.
В процессе обработки вашего запроса произошла ошибка.
Вы не можете посетить текущую страницу по одной из причин:
просроченная закладка/избранное
неправильный адрес
кэш поисковой системы ссылается на несуществующий документ
у вас нет права доступа на эту страницу
Домашняя страница
Если проблема повторится, пожалуйста, обратитесь к системному администратору сайта и сообщите об ошибке, описание которой приведено ниже.
#1054 Unknown column 'invoice_locked' in 'field list'
admin
Здравствуйте!
Если версия старая, то проще всего будет обновить virtuemart до последней версии.
Перед обновлением обязательно сделайте бэкап.
Также можно попробовать этот бесплатный плагин для корзины.
olimpikzav
Спасибо. Попробовал поставить плагин который Вы предложили.
Ошибки нет, но при нажатии кнопки подтвердить заказ, переходит на эту же страницу с предупреждением:
Отсутствует значение Информация о покупателе
Что это за значение и где его прописать непонятно...
admin
Скорее всего, проблема в настройках полей, заполняемых пользователями.
Пришлите ссылку на сайт и скрин с настройками страницы Virtuemart > Настройки > Поля, заполняемые пользователями.
olimpikzav
Добрый день.
Настройки выложил, вот ссылка https://yadi.sk/d/NNGwaVX0RGiPQg
Сайт отключен, чтобы не шла индексация в поисковых системах. Могу открыть на время, напишите когда.
Спасибо за помощь.
admin
Попробуйте отключить поле Информация о покупателе.
olimpikzav
Отключил все галки у этого поля, помогло но не до конца.
Предупреждение пропало, теперь после нажатия на кнопку оформить заказ, страница обновляется с сообщением заказ оформлен. Теперь нужно нажать кнопку подтвердить заказ. После нажатия открывается страница как раньше в стандартной корзине с ошибкой:
#1054 Unknown column 'invoice_locked' in 'field list'
вот скрин
https://yadi.sk/i/VumETTA5egrpKQ
Я вот думаю, может нужно создать страницу корзина.html ?
Если да то где и как?
admin
Попробуйте советы из этой темы.
Если не поможет, то нужно смотреть на сайте, напишите на admin@virtuemart.su
olimpikzav
Добрый день. Спасибо, помогло, ошибки нет, но в конце выводит сообщение
Notice: Undefined index: username in /home/aann/aann.nichost.ru/components/com_virtuemart/models/user.php on line 565
admin
Это предупреждение, которое никак не должно влиять на работу сайта.
Отключить его можно в Система > Общие настройки > Сервер, выбрав для опции Сообщение об ошибках настройку Нет.
SMolodoy
Добрый день! Подскажите, пожалуйста, как временно отключить один из методов оплаты. То есть, необходимо, чтобы он был виден, но его нельзя было выбрать. Я понимаю, что это , но в файлах шаблона не могу найти вывод данного элемента, соответственно не могу поставить ему disabled) Буду очень благодарен за помощь!
admin
Можно отключить с помощью css
Если не получится, то пришлите ссылку на сайт.
SMolodoy
Спасибо большое! Все получилось.
admin
Хорошо.
Наталья
Здравствуйте! Подскажите пожалуйста где изменить текст ошибки-предупреждения "This field is required." , которая появляется при оформлении заказа, если поле для заполнения обязательно.
admin
Здравствуйте!
Попробуйте заменить в файле /components/com_virtuemart/assets/js/jquery.validation.js.
Наталья
Спасибо за направление. В моём случае помогло изменение в файле /templates/мойшаблон/js/jquery.validate.min.js
Влад
здравствуйте подскажите пож как увеличить размер поля ввода кол-ва товара в корзине.
admin
Здравствуйте!
Если используется стандартная корзина, то поможет этот стиль
Если не поможет, то пришлите ссылку на сайт.
Garry
В общем всем ищущим мб будет интересно, потому что долго искала бесплатный модуль для одностраничного заказа: https://prowebber.ru/joomla-cat/joomla-modules/21548-vp-one-page-checkout-odnostranichnyy-zakaz-virtuemart-3.html
ps не реклама, рада буду если кому то пригодится.
Igoralmaty
Подскажите как на страницу вывести поля заполняемые пользователем, адрес плательщика и адрес доставки?
admin
На какую страницу?
Igoralmaty
На страницу "одностраничной корзины"
admin
Если в качестве одностраничной корзины используется плагин One Page, то для совместимости с последними версиями virtuemart плагин нужно обновить.
Igoralmaty
Как я понимаю он платный? Нужен бесплатный вариант. Если есть бесплатный, дайте плиз ссылку. А так хотелось бы реализовать данный функционал без плагинов, стандартными методами.
admin
Т.е. сейчас на сайте используется стандартная одностраничная страница?
Попробуйте этот плагин.
Igoralmaty
Отлично! Плагин подошел. Было бы вообще хорошо если бы можно было добавить рекапчу
admin
Попробуйте написать автору плагина, может быть у него есть решение с капчей.
Igoralmaty
СПАСИБО!!!
Дмитрий
Добрый день!
Прошу помочь с включением выбора оплаты в стандартной корзине.
Нужно чтоб выбор отображался постоянно, даже при пустой корзине.
krainik_d
Добрый день!
Нужна помощь по подключению способов оплаты в корзине, так, чтоб выбор находился постоянно, даже если товара нету в наличии
Aleksander
Может быть есть у Вас статьи по оформлению страницы благодарности, после оформления заказа?
Спасибо за Ваш заказ!
Сейчас выводится только информация с номером заказа, суммой и вариантом оплаты. Хотелось бы добавить больше информации.
Вариант доставки, наименование товара, фото... и т.д.
admin
Отдельной статьи нет, но сам шаблон страницы благодарности за заказ находится в файле /components/com_virtuemart/views/cart/tmpl/orderdone.php
Константин
Здравствуйте! Как можно вставить html-форму для кнопки подтвердить заказ при оплате картой на сайте?
Наталья
У меня информация со страницы благодарности с номером заказа, суммой и вариантом оплаты находится /www/plugins/vmpayment/standard/standard/tmpl