Купить в один клик

Купить в один клик для Shop-Script

Быстрое оформление покупки в один клик

93 оценки

Ваш отзыв
Установок
3400+
Разработчик
Поддержка
Содержание:
1.1. Встраивание кнопки "Купить в 1 клик" в категорию (список товаров)
1.2. Встраивание кнопки в категорию для темы "Удобная покупка": файл products.list.html
2. Полное скрытие кнопки "Купить в 1 клик", когда товара нет в наличии
3. Настройки стилей
4. Расположение кнопки
5. Настройка целей (Яндекс-Метрика, Google-Analytics)
6. Добавление галки-подтверждения ("О персональных данных" №152-ФЗ)


1.1. Встраивание кнопки "Купить в 1 клик" в товарную категорию (список товаров):
так как в Shop-Script нет стандартной программной возможности (нет хука) для влияния на список товаров, то необходимо это делать вручную
для этого нужно открыть шаблон products.list.html (products-list.html) или list.thumbs.html (list-thumbs.html), возможны и другие вариации названия
найти код, цикл вывода самих продуктов:

{foreach $products as $p}
<li>
...
</li>
{/foreach}


и внутри, между тегами <li> ... </li>
нужно разместить код {shopStorequickorderPlugin::product_button()}

<li> ... {shopStorequickorderPlugin::product_button()} ... </li>


код кнопки желательно размещать после вывода основной кнопки "Купить", которая обычно выводится кодом:

<input type="submit" value="{$add2cart_label}">
<input type="submit" value="[`Add to cart`]">




1.2. Встраивание кнопки в категорию для темы "Удобная покупка": файл products.list.html:
Вам нужно зайти в файл темы дизайна, это делается из админ. панели: для приложения Магазин, в модуле Витрина, слева есть вкладка Дизайн, которая открывает список файлов. В нем есть файл products.list.html
Найти строчки в этом шаблоне:

<div class="description{if $wa->shop->settings('ignore_stock_count')} no-available{/if}" itemprop="description" >{if $p.summary}{strip_tags($p.summary)}{/if} </div>
{if $wa->shop->settings('ignore_stock_count') || $p.count === null || $p.count > 0}
{*
<div class="available"><span class="bold">[`Availability`]:</span><span class="preorder"> [`expected`]</span></div>
<link itemprop="availability" href="http://schema.org/PreOrder" />
*}
{if !$wa->shop->settings('ignore_stock_count')}<div class="available"><span class="bold">[`Availability`]:</span><span class="instock"> [`in stock`]</span></div>{/if}
<form class="addtocart" method="post" action="{$wa->getUrl('/frontendCart/add')}"{if $p.sku_count > 1} data-url="{$p.frontend_url}{if strpos($p.frontend_url, '?')}&{else}?{/if}cart=1"{/if}>
<input type="hidden" name="product_id" value="{$p.id}">
<input type="submit" value="[`Add to cart`]">
</form>

И перед </form> добавить {shopStorequickorderPlugin::product_button()} , в итоге получится так:

<div class="description{if $wa->shop->settings('ignore_stock_count')} no-available{/if}" itemprop="description">{if $p.summary}{strip_tags($p.summary)}{/if}</div>
{if $wa->shop->settings('ignore_stock_count') || $p.count === null || $p.count > 0}
{*
<div class="available"><span class="bold">[`Availability`]:</span><span class = "preorder" > [`expected`] </span > </div >
<link itemprop="availability" href="http://schema.org/PreOrder" />
*}
{if !$wa->shop->settings('ignore_stock_count')}<div class="available"><span class="bold">[`Availability`]:</span><span class="instock"> [`in stock`]</span></div>{/if}
<form class="addtocart" method="post" action="{$wa->getUrl('/frontendCart/add')}"{if $p.sku_count > 1} data-url="{$p.frontend_url}{if strpos($p.frontend_url, '?')}&{else}?{/if}cart=1"{/if}>
<input type="hidden" name="product_id" value="{$p.id}">
<input type="submit" value="[`Add to cart`]">
{shopStorequickorderPlugin::product_button()}
</form>





2. Полное скрытие кнопки "Купить в 1 клик", когда товара нет в наличии:
Для этого нужно зайти в настройки плагина -> вкладка:форма заказа
в поле дополнительные скрипты добавить следующие строчки:

function storequickorder_event_set_visibility_button_true(vis) {
$('.storequickorder-button').show();
}

function storequickorder_event_set_visibility_button_false(vis) {
$('.storequickorder-button').hide();
}





3. Настройки стилей

Стили кнопки правятся в настройках плагина во вкладке "Форма заказа"->поле "Дополнительные стили":

/* Стиль кнопки "Купить в 1 клик" */
.storequickorder-button {

}

/* Стиль отвечающий за кнопку "Заказать" в диалоговом окне */
#storequickorder input.submit-button {
/*width: 100px; закомментирован */
}


4. Расположение кнопки Кнопка выводится в шаблоне product.html с помощью хука следующими строчками:

{* @event frontend_product.%plugin_id%.cart *}
{foreach $frontend_product as $_}{$_.cart}{/foreach}


либо вручную при вставке кода: {shopStorequickorderPlugin::product_button()}

В корзине кнопку можно вывести в желаемом месте с помощью кода: {shopStorequickorderPlugin::cart_button()}


5. Настройка целей (Яндекс-Метрика, Google-Analytics)

для настройки метрики, вам нужно зайти на сайт яндекс.метрики, создать цель на javascript-событие, а Идентификатор цели указать имя события латинскими заглавными буквами, например такое ORDER_SUCCESS
~ так:

затем нужно зайти в админку / магазин / плагины / Купить в 1 клик / и включить "Отправку события в яндекс-метрику", затем указать ID-своего счётчика и Идентификатор цели
~так

доп. информация по цели яндекс-метрики находится тут: http://help.yandex.ru/metrika/objects/reachgoal.xml
------------------------------------------------------------------------------------
GA настраивается почти аналогично,
в настройках плагина нужно указать, например, ORDER_SUCCESS

а в настройках аналитики, тоже ~ так

в качестве Категории и Действия необходимо указать одинаковый идентификатор, указанный в настройках плагина
и самое главное про тип цели не забыть

6. Добавление галки-подтверждения вам нужно зайти в админку / магазин / плагины / Купить в 1 клик
1. во вкладке "Форма заказа", в поле "Дополнительные скрипты"
нужно вставить код (при условии что в это поле еще ниразу ничего не вставлялось, не делались какие-либо доработки):

function storequickorderCheckTerms() {
if (!$('#storequickorder form div.wa-form [name="terms"]').length) {
$('#storequickorder form div.wa-form').append('<label><input type="checkbox" id="storequickorder_terms" name="terms" value="1"> Я ознакомился (ознакомилась) с <a href="/checkout/confirmation/?terms=1" target="_blank">Условиями предоставления услуг</a> и принимаю их</label>')
}

if ($('#storequickorder [name="terms"]').length) {
if ($('#storequickorder [name="terms"]').prop('checked')) {
$('#storequickorder [type="submit"]').prop('disabled',false);
} else {
$('#storequickorder [type="submit"]').prop('disabled',true);
}
}
}

$('body').on('click', '#storequickorder [name="terms"]', function(){
storequickorderCheckTerms();
})
window.storequickorder_cart_but_init = false;
function storequickorder_event_dialog_show(response, dialog, p) {
if (!window.storequickorder_cart_but_init) {
window.storequickorder_cart_but_init = true;
$('body').on('click', '#storequickorder [name="terms"]', function(){
storequickorderCheckTerms();
})
}
dialog.appendTo('body');
dialog.show();
storequickorderCheckTerms();
}


2. возможно в данном коде нужно будет заменить ссылку на свою, например с
/checkout/confirmation/?terms=1 на /shop/checkout/confirmation/?terms=1