Перейти к содержанию
Форум поддержки пользователей VamShop

Максимально упрощаем оформление заказа в VamShop 2!


Рекомендуемые сообщения

По умолчанию в VamShop 2 оформление заказа выглядит на смартфоне/десктопе вот так:
vamshop2-fast-checkout8.thumb.png.49d362vamshop2-fast-checkout6.thumb.png.19e698

В данной заметке расскажу как сделать на смартфоне/десктопе вот так:
 

vamshop2-fast-checkout9.thumb.png.9e14a6vamshop2-fast-checkout7.thumb.png.1d6de5

Максимально упростим оформление заказа в магазине, даже со смартфонов/планшетов можно быстро и удобно оформить заказ.

Что мы будем делать:
1. Уберём обязательное поле email, обязательными будут только Имя и Телефон.
2. Уберём все остальные лишние поля.
3, Из модулей доставки оставим только курьерскую доставку.
4. Из модулей оплаты оставим только оплату наличными курьеру.

Приступим:

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

Для этого в Админке - Расширения - Тэги выбираем тэг checkout.
vamshop2-fast-checkout1.thumb.png.13d91c

Внизу страницы нажимаете кнопку - Создать микро шаблон из тэга.

vamshop2-fast-checkout2.thumb.png.9145a7

На следующей странице создания микро шаблона в опции Псевдоним указываем название нашего нового шаблона, например my-checkout и нажимаем Продолжить.

vamshop2-fast-checkout3.thumb.png.cee1c9

Шаблон создан для страницы оформления заказа.

2. Теперь нам нужно указать движку, что б страница оформления заказов отрисовывалась нашим шаблоном my-checkout, а не шаблоном по умолчанию.

Для этого в Админке - Содержание - Страницы редактируем страницу Оформление и меняем {checkout} на {checkout template='my-checkout'}

vamshop2-fast-checkout4.thumb.png.128adf

т.е. мы указали, что страница оформления заказа должна отрисовываться нашим шаблоном my-checkout.

Нажимает кнопку Продолжить.

Всё, мы указали, что страница офомления заказа теперь отрисовывается нашим шаблоном my-checkout.

Осталось лишь отредактировать наш микро шаблон my-checkout и убрать всё лишнее.

3. Заходим в Админку - Оформление - Микро шаблоны и нажимаем на нашем шаблоне my-checkout, откроется страница редактирования шаблона.

vamshop2-fast-checkout5.thumb.png.81c612

Удаляем всё лишнее, в поле Шаблон должен остаться только вот этот код:

<script type="text/javascript">
$(function () {

  $("#contentform :input:text:visible:enabled:first").focus();

  $("form#contentform :input").change(function() {
    $("input[id='" + this.id + "']").addClass("modified");
    $("radio[id='" + this.id + "']").addClass("modified");
    $("select[id='" + this.id + "']").addClass("modified");
    $("checkbox[id='" + this.id + "']").addClass("modified");
    $("textarea[id='" + this.id + "']").addClass("modified");
  });
      	
$("label.shipping-method").click(function(){
$("label.shipping-method").parent().removeClass("selected");
$(this).parent().addClass("selected");
});

$("label.payment-method").click(function(){
$("label.payment-method").parent().removeClass("selected");
$(this).parent().addClass("selected");
});
	
  // validate form
  $("#contentform").validate({
    rules: {
      bill_name: {
        required: true,
        minlength: 2      
     },
      phone: {
        required: true,
        minlength: 10,
     },
    },
    messages: {
      bill_name: {
        required: "{lang}Required field{/lang}",
        minlength: "{lang}Required field{/lang}. {lang}Min length{/lang}: 2"
      },
      phone: {
        required: "{lang}Required field{/lang}",
        minlength: "{lang}Required field{/lang}. {lang}Min length{/lang}: 10"
      }
    }
  });

  });
</script>
<div id="checkout">
<form action="{$checkout_form_action}" method="post" id="contentform" class="form-horizontal">
  <div id="bill_information">
    <div>
      <h3>{lang}Billing Information{/lang}</h3>
    </div>
	<div class="form-group">
		<label class="col-sm-3 control-label" for="bill_name">{lang}Name{/lang}:</label>
		<div class="col-sm-9">
			<input type="text" class="form-control" name="bill_name" id="bill_name" value="{if $customer.AddressBook.ship_name}{$customer.AddressBook.ship_name}{else}{$order.bill_name}{/if}"/>
		</div>
	</div>
	<div class="form-group">
		<label class="col-sm-3 control-label" for="phone">{lang}Phone{/lang}:</label>
		<div class="col-sm-9">
			<input type="text" class="form-control" name="phone" id="phone" value="{if $customer.AddressBook.phone}{$customer.AddressBook.phone}{else}{$order.phone}{/if}" />
		</div>
	</div>
  </div>
  <div id="shipping_method">
    <div>
      <h3>{lang}Shipping Method{/lang}</h3>
    </div>  
  <div class="clearfix">
	<ul class="shipping-methods">
    {foreach from=$ship_methods item=ship_method}
		<li class="item col-sm-6 col-md-4{if $ship_method.id == $order.shipping_method_id} selected{/if}">
      <label class="shipping-method">
      <span class="title">
        <input type="radio" name="shipping_method_id" value="{$ship_method.id}" id="ship_{$ship_method.id}" 
        {if $ship_method.id == $order.shipping_method_id}
          checked="checked"
         {/if}
        />
		<span class="name">{lang}{$ship_method.name}{/lang}</span>
		</span>
		<span class="image text-center">
				{if $ship_method.icon}<img src="{base_path}/img/icons/shipping/{$ship_method.icon}" alt="{$ship_method.name}" title="{$ship_method.name}" /> {/if}
		</span>
		{if $ship_method.cost_plain > 0}<span class="description">{$ship_method.cost}</span>{/if}
		{if $ship_method.description}<span class="description">{$ship_method.description}</span>{/if}
		</label>	
		</li>
    {/foreach}
	</ul>
	</div>
  </div>

  <div id="payment_method">
    <div>
      <h3>{lang}Payment Method{/lang}</h3>
    </div>    

  <div class="clearfix">
	<ul class="payment-methods">
    {foreach from=$payment_methods item=payment_method}
		<li class="item col-sm-6 col-md-4{if $payment_method.id == $order.payment_method_id} selected{/if}">
      <label class="payment-method">
      <span class="title">
        <input type="radio" name="payment_method_id" value="{$payment_method.id}" id="payment_{$payment_method.id}" 
        {if $payment_method.id == $order.payment_method_id}
          checked="checked"
         {/if}        
        />
		<span class="name">{lang}{$payment_method.name}{/lang}</span>
		</span>
		<span class="image text-center">
				{if $payment_method.icon}<img class="text-center" src="{base_path}/img/icons/payment/{$payment_method.icon}" alt="{$payment_method.name}" title="{$payment_method.name}" /> {/if}
		</span>
		{if $payment_method.description}<span class="description">{$payment_method.description}</span>{/if}
		</label>	
		</li>
    {/foreach}
	</ul>
  </div>
	    
  </div>

	<div class="form-group">
	  <div class="col-sm-offset-3 col-sm-9">
	    <button class="btn btn-warning" type="submit" value="{lang}Continue{/lang}"><i class="fa fa-check"></i> {lang}Continue{/lang}</button>
	  </div>
	</div>
</form>
</div>

Всё, сохраняем наш микро шаблон my-checkout.

Теперь наше оформление заказа в магазине максимально простое.

Нужно лишь заполнить поля Имя и Телефон, больше никаких лишних данных, кучи форм, полей, кликов.

Обратите внимание, что нам не пришлось копаться в php коде, подключаться по ftp, скачивать файлы и прочее-прочее, всё делается прямо в админке, никаких лишних программ, нет лишней траты времени, всё удобно и легко.

Спасибо за внимание.

Изменено пользователем VaM
Ссылка на сообщение
Поделиться на другие сайты
×
×
  • Создать...