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

Установка Buyme
После скачивания распаковываем архив со скриптом и копируем его содержимое любое место сайта. Для примера я скопирую в папку с шаблоном
/templates/ваш_шаблон/buyme
Далее в теге шаблона подключим сам скрипт. Для этого в файл /templates/ваш_шаблон/tpls/blocks/head.php (для других шаблонов этот путь будет отличаться) добавим
<script type="text/javascript"charset="utf-8"src="/templates/ваш_шаблон/buyme/js/buyme.js"></script>
На этом установка закончена.
Настройка Buyme
Для вывода кнопки Купить в 1 клик в файле /components/com_virtuemart/views/productdetails/tmpl/default_addtocart.phpсразу после закрывающего тега добавим
<button class="b1c">Купить за 1 клик</button>
Так же в файле /com_virtuemart/productdetails/default.phpдобавим несколько дополнительных классов блокам.
Заменим
<h1><?php echo $this->product->product_name?></h1>
На
<h1 class="b1c-name"><?php echo $this->product->product_name?></h1>
Заменим
<class="productdetails-view productdetails">
На
<div class="productdetails-view productdetails b1c-good">
Для настройки почты, на которую будет приходить информация о заказе, в файле /templates/ваш_шаблон/buyme/lib/send.php заменим адрес в строке
$to="yourMail";
Это минимально необходимые настройки для правильной работы скрипта.
После этого в карточке товара появится кнопка быстрого заказа.

После оформления заказа на почту придет следующее письмо.

Для изменения данных во всплывающем окне нужно редактировать файл /templates/ваш_шаблон/buyme/js/config.js.
varbmeData={
"caption.description":"Чтобы оформить заказ, заполните форму. В течение пары часов с вами свяжется менеджер и уточнит детали заказа, а также время доставки.",// описание в форме"caption.title":"Купить",// заголовок формы
"caption.button":"Оформить заказ",// надпись на кнопке
"caption.sending":"Отправка",// отправка
"caption.error":"Заполните все поля",// заполните все поля
"txt.yes":"Да",
"txt.no":"Нет",
// укажите названия полей через запятую
// чтобы добавить textarea, перед названием добавьте минус (-)
// выпадающий список: !Название!Вариант1!Вариант2...
// checkbox: ?Вопрос
"fields":"Ваше имя(Укажите имя), Телефон (Номер телефона)*, -Адрес доставки(Укажите город и адрес доставки)*, !Доставка!Самовывоз!Курьерская доставка, ?Подарочная упаковка",
"template":"default",// template name (default)
"license":"0",// ключ лицензии (можно купить на get.nazartokar.com)
"showCopyright":"0"// показывать ли копирайт?
}
Для добавления данных из настраиваемых полей в письмо заказа полям нужно добавить атрибут
data-bme="Имя поля"
P.S.
Buyme - прекрасное бесплатное решение для реализации заказа в 1 клик, единственное - данные о заказе не передаются в базу. Поэтому если вы ведете статистику заказов в VirtueMart, то их придется добавлять вручную.
Чтобы в письме приходила также стоимость товара, перед вставкой код кнопки покупки в 1 клик добавьте
<script>
jQuery('span.PricesalesPrice').attr('data-bme','bc1-price');
</script>
Если запрос отправляется долго, то в файле /templates/имя_шаблона/buyme/lib/send.php закомментируйте строки
$ip=$_SERVER['REMOTE_ADDR'];
$geo=@file_get_contents("http://freegeoip.net/json/".$ip);
$geo=@json_decode($geo,true);
$mess.=addToMess("IP",$ip);
$mess.=addToMess("Откуда запрос",(($geo['city'])." (".($geo['country_name']).")"));