понеділок, 17 лютого 2014 р.

OpenCart — модуль «Быстрый заказ»

«Быстрый заказ» — нужен он в интернет-магазине или нет?  Кто-то считает, что без него никак, другие же не приемлют данный функционал в своем магазине. Каждый сам решает — устанавливать ли быстрый заказ в свой магазин или нет. Плюсом данного усовершенствования является то, что магазин может удержать большее количество потенциальных покупателей, тех, которые не хотят или не могут пройти стандартное оформление заказа. Что ж, вот для такой категории людей и подойдет быстрое оформление заказа, практически в пару кликов.
Речь пойдет не о том, чтобы усовершенствовать стандартное оформление заказа: убрать лишние шаги или свести заполнение полей до минимума. Об этом мы говорили ранее. Сегодня же мы рассмотрим модуль «Быстрый заказ» от RGB.


Модуль прост в установке, настройке и использовании. Подходит для версий 1.5.1.3, 1.5.2.1 и 1.5.4.1, по словам автора, должен работать и на более ранних/новых версиях. Суть модуля в том, чтобы на ряду со стандартным заказом, покупатель мог воспользоваться быстрым заказом. Под понятием «быстрый заказ», в данном конкретном случае, подразумевается действительно быстрый заказ — пользователю будет необходимо, в pop up окне,  заполнить лишь три поля: имя, телефон и комментарий, никаких доставок, оплат или любой другой информации покупателю вписывать или выбирать не придется.

Вид всплывающего окна модуля "Быстрый заказ"

Теперь подробнее:
1. Скачиваем модуль «Простой быстрый заказ».

2. В скачанном архиве имеются два варианта модуля: для версий 1.5.3.1 и ниже? которые используют fancybox и вариант для более новых версий, которые используют colorbox. Выбираем нужный нам вариант и закачиваем его содержимое в корневую папку нашего магазина.

3. Открываем файл catalog\view\javascript\fast_order.js и в самом начале 10 строки  настраиваем путь к файлу модуля — fast_order.php, который мы закинули в корневую папку. По умолчанию у нее вот такой путь

$.post('http://mysite.com/fast_order.php', ...
 
мы же изменим mysite.com на доменное имя нашего магазина.
4. Теперь укажем тот почтовый ящик, на который должны приходить сообщения о заказах. В файле можно прописать два адреса: для обычных заказов и для быстрых заказов. На мой взгляд, более удобным является вариант, когда заказы приходят на один ящик, соответственно, необходимо дважды прописать один и тот же адрес. Для этого откроем вышеупомянутый fast_order.php и в строках 10и 11 пропишем нужный адрес(а):

$store_email = "info@mysite.com";
$fast_order_email = "fastorder@mysite.com";
 
Если в вашем магазине установлен vqmod, вышеперечисленных действий достаточно, для того, чтобы модуль заработал. В админке модуль не появится, но будет функционировать в магазине. Если же хотите использовать модуль без vqmod, то предстоит внести еще несколько изменений в пару файлов.

5. Открываем файл catalog/view/theme/default/template/common/header.tpl и между тегами <head></head>, где располагаются подключения скриптов и стилей, непосредственно после строки

<script type="text/javascript" src="catalog/view/javascript/common.js"></script>
 
добавляем подключение скрипта нашего модуля

<script type="text/javascript" src="catalog/view/javascript/fast_order.js"></script>

Также после строки с подключением стилей шаблона

<link rel="stylesheet" type="text/css" href="catalog/view/theme/fancycart/stylesheet/stylesheet.css" />

подключим стили модуля
 
<link rel="stylesheet" type="text/css" href="catalog/view/theme/default/stylesheet/fast_order.css" />

6. Добавим вывод кнопки «Быстрый заказ» на странице товара. Открываем файл catalog/view/theme/default/template/product/product.tpl и после строки с выводом кнопки «Купить»

<input type="button" value="<?php echo $button_cart; ?>" id="button-cart" />
 
добавляем код

<a id="fast_order" href="#fast_order_form" class="button" />Быстрый заказ</a><div style="display:none">
<div id="fast_order_form">
<input id="product_name" type="hidden" value="<?php echo $heading_title; ?>">
<input id="product_price" type="hidden" value="<?php echo ($special ? $special : $price); ?>">
<div class="fast_order_center"><?php echo $heading_title; ?> — ваш заказ</div>
<div class="fast_order_left">
<p>Имя:</p>
<p>Телефон:</p>
<p>Комментарий:</p>
</div>
 
<div class="fast_order_right">
<p><input type="text" id="customer_name"/></p>
<p><input type="text" id="customer_phone"/></p>
<p><input type="text" id="customer_message"/></p>
</div>
 
<div class="fast_order_center">
<p id="fast_order_result">Пожалуйста, укажите ваше имя и телефон, чтобы мы могли связаться с вами</p>
<button class="fast_order_button"><span>Оформить заказ</span></button>
</div>
</div>
</div>
 
В итоге получаем дополнительный функционал в своем магазине — быстрый заказ.

"Быстрый заказ" 
 
P.S. Уберем активную кнопку после совершения заказа.
Одним из недочетов модуля является момент с кнопкой «Оформить заказ», которая остается активной даже после совершения заказа. То есть покупатель нажал кнопку «Быстрый заказ», заполнил поля с именем, телефоном и комментарием, и нажал кнопу «Оформить заказ», тем самым отправляя запрос на покупку товара. Соответственно, владельцу магазина, на указанный электронный адрес, придет сообщение о новом быстром заказе, приблизительно следующего содержания:
Сообщение о новом быстром заказе. 
 
 Покупатель же, после оформления заказа, видит следующее сообщение:

Быстрый заказ совершен. Кнопка активна. 
 
При этом, кнопка «Оформить заказ» осталась активной, что позволяет пользователю на нее снова нажать, даже не собираясь заказывать данный товар повторно (мало ли кто и на что любит понажимать…), а владельцу придет еще одно письмо о заказанном товаре. В общем, необходимо избавиться от подобного недочета, дабы не искушать покупателей и не засорять свой ящик ненужными и недействительными заказами. Для этого открываем catalog\view\javascript\fast_order.js и меняем 10 строку

$.post('http://mysite.com/fast_order.php',  
{ 'product_name': product_name, 'product_price': product_price,  
'customer_name': customer_name, 'customer_phone': customer_phone,  
'customer_message': customer_message }, function (data) { if (data == 'empty')  
{ $('#fast_order_result').html('<span class="fast_order_error">
Обязательно укажите ваше имя и телефон, иначе мы не сможем вам перезвонить!</span>');  
} else { $('#fast_order_result').html('
<span class="fast_order_success">Ваш заказ успешно оформлен!</span><br />
<span>Мы перезвоним вам в течение дня. <a onclick="$(window).colorbox.close();">Закрыть</a> это окно?
</span>'); } });

на
 
$.post('http://mysite.com/fast_order.php',  
{ 'product_name': product_name, 'product_price': product_price, 'customer_name':
  customer_name, 'customer_phone': customer_phone, 'customer_message': 
customer_message }, function (data) { if (data == 'empty') { $('#fast_order_result').html(
 '<span class="fast_order_error">
Обязательно укажите ваше имя и телефон, иначе мы не сможем вам перезвонить!</span>'); 
 } else { $('.fast_order_button').css('display','none'); $('#fast_order_result').html('
<span class="fast_order_success">Ваш заказ успешно оформлен!</span><br />
<span>Мы перезвоним вам в течение дня. <a onclick="$(window).colorbox.close();">Закрыть</a>
 это окно?</span>'); } });

Мы прописали кнопке свойство display:none, тем самым скрыв ее после первичного использования. Также не забудьте сменить mysite.com на доменное имя своего магазина!
В итоге получили вот такое подтверждение о совершенном заказе, но уже без кнопки:

быстрый заказ - окончательный результат.
  • Дополнение:

Модулю добавлено весьма полезное усовершенствование пользователем Tom c форума Opencartforum.ru. Данная версия модуля содержит форму предзаказа вместо кнопки «Быстрого заказа» и «Купить». То есть, если какого-либо товара в магазине нет в наличии, то на странице товара не будет вышеупомянутых кнопок, лишь кнопка «Предзаказ» (назвать можете как Вам понадобится). Скачать модуль можно все по той же ссылке. что дана в посте выше, необходимо скачивать preorder-fastorder-1551.zip.


Купить запчасти на китайцев по лучшим ценам

1 коментар:

  1. Подскажите почему после установки через VQMod Нажимаю на кнопку "Быстрый заказ" и ничего не происходит.

    ВідповістиВидалити