Система обработки заказов Чекаут Shiptor отличается простотой интеграции с любой CMS клиента. Это связано с тем, что для работы с ней достаточно иметь доступ к файлам с расширениями .html и .js. Более подробная информация о возможностях и функциях Чекаута Shiptor есть в нашем блоге.
Посмотреть пример работы заказного виджета можно в демо-версии.
Для установки виджета необходимо подключить файл, который находится по адресу: https://checkout.shiptor.ru/embed/order.js.
Не копируйте и не сохраняйте файл! Это может привести к нарушению работоспособности виджета в дальнейшем.
Сделать это можно в теге body желаемой страницы следующим образом:
<script type="text/javascript" src="https://checkout.shiptor.ru/embed/order.js"></script>
Так же необходимо создать контейнер виджета и указать в нем виджет-ключ для авторизации с сервисом Чекаута Shiptor.
Корзина виджета выглядит следующим образом:
После нажатия на кнопку «Оформить заказ» покупатель попадает в форму оформления заказа.
Здесь он заполняет необходимые поля, выбирает желаемый способ оплаты и нажимает кнопку «Оформить заказ». Заказ будет создан в кабинете Чекаута Shiptor. Если была выбрана оплата онлайн, то система сразу перенаправляет на страницу оплаты заказа. Оплата осуществляется через платежный сервис, выбранный в кабинете Чекаута Shiptor. При работе с некоторыми из них доступно автоматическое получение данных об успешно оплаченных заказах с установкой им статуса «Оплачен». Для всех остальных требуется ручная проверка и подтверждение.
Виджет опирается на HTML-контейнер вида
<div id="shiptor_widget" class="_shiptor_widget"></div>
Через него можно передать все стартовые параметры, которые, в свою очередь, могут быть:
Параметр | Описание | Пример |
---|---|---|
data-wk | Виджет-ключ, который предназначен для авторизации всех запросов виджета. Получить его можно в кабинете Чекаута, в разделе Настройки > Общие. | data-wk="XXXXXXXXXXXXXXX" |
data-weight | Вес для расчета доставки, если данный параметр у товаров не заполнен. В зависимости от настроек в кабинете Чекаута может быть использован как вес для всей посылки или как вес для одного товара. Задается в килограммах. Вес можно указать в настройках кабинета Чекаута. | data-weight="2" |
data-dimensions | Габариты для расчета доставки, если у товаров не заполнены соответствующие поля. В зависимости от настроек в кабинете Чекаута могут быть использованы габариты всей посылки или отдельного товара. Значения задаются в сантиметрах. Для этого используются JSON-запросы, где length - длина, width - ширина и height - высота. Габариты можно указать в кабинете Чекаута. | data-dimensions='{"length":25, "width":10, "height":20}' |
data-cod | Признак наложенного платежа. Определяет алгоритм выполнения первичного расчета доставки: с наложенным платежом или без него. Задается числом, где 1 - наложенный платеж, 0 - наложенный платёж отсутствует. Значение по умолчанию - 1. | data-cod="1" |
data-kladr | КЛАДР-код населенного пункта по умолчанию. Задается 11-значным числом. По умолчанию будет взят КЛАДР код Москвы. | data-kladr="77000000000" |
data-city | Отображение названия населённого пункта в строке местоположения. Параметр обязателен к вводу, если указан data-kladr. | data-city="Москва" |
data-basketShowOnAdd |
Настройка работы корзины. Параметр позволяет управлять ее всплыванием при добавлении туда очередного товара. Задается числом, где 1 - да, 0 - нет. При -1 сразу открывается форма оформления заказа. Значение по умолчанию - 1. |
data-basketShowOnAdd="0" |
data-country | Страна по умолчанию. Возможны варианты: Беларусь, Россия или Казахстан. Все остальные страны задаются двухбуквенным символьным кодом. | data-country="Беларусь" |
data-linkYmaps | Подключение Яндекс.Карт в виджете. Если на странице с ним сервис уже используются, отключите его, чтобы избежать ошибок с отображением карты. Значение параметра задаётся цифрами: 1, если сервис нужно подключить, и 0, если нет. Значение по умолчанию - 1. | data-linkYmaps= "0" |
data-yk | Позволяет указать API-ключ Яндекс.Карт для подключения поисковой строки по карте. Получить его можно в «Кабинете разработчика»: нажмите «Получить ключ», выберите JavaScript API и HTTP Геокодер. | data-yk = "XXXXX" |
data-basketPos |
Положение иконки корзины. Доступно два возможных варианта: right (справа квадратом с пиктограммой корзины) и bottom (полосой в нижней части окна браузера). Значение по умолчанию - right. |
data-basketPos="bottom" |
data-payment-redirect-delay |
Автоматическая переадресация для заказов с онлайн-оплатой. Определяется путём задания временного интервала между успешным оформление заказа и переадресацией на страницу оплаты. |
data-payment-redirect-delay="4000" |
data-domain | Адрес сайта интернет-магазина, настройки которого используются при расчете доставки. Если data-domain не задан, используются настройки магазина по умолчанию. | data-domain="test45.ru" |
Чтобы виджет имел возможность работать с товарами конкретного сайта, их надо предварительно выгрузить в номенклатуру личного кабинета Shiptor. В этом случае для создания кнопки добавления в корзину достаточно будет воспользоваться любым html-узлом, корректно обрабатывающим событие click.
Лучше всего для этого подходит тег a. Чтобы сделать такую кнопку для товара, нужно создать следующий html-код:
<a href="#" data-role="shiptor_widget_add_basket"
data-id="артикул товара (варианта 1)" data-q="1"
data-product="артикул товара">Добавить в корзину 1шт товара</a>
Здесь критичны следующие параметры:
При каждом нажатии на кнопку товар добавляется в корзину с предварительным запросом на получение информации из ЛК Shiptor. В качестве стоимости используется поле «Розничная цена» (retailPrice).
Если реализовано поле, позволяющее выбрать количество товаров, виджет может отслеживать изменения в автоматическом режиме. Чтобы он синхронизировал их с кнопкой добавления в корзину, необходимо в поле количества добавить 2 следующих параметра
<input type="text" name="quantity" value="1" data-role="shiptor_widget_change_quantity"
data-target="артикул товара(родителя)"/>
Если у товара есть несколько вариаций, то используйте параметр, который отслеживает артикул в каждом конкретном случае.
<select name="variation" data-role="shiptor_widget_variant_change"
data-target="артикул родителя">
<option value="артикул варианта 1">Носки зеленые</option>
<option value="артикул варианта 2">Носки красные</option>
<option value="артикул варианта 3">Носки синие</option>
</select>
В обоих случаях синхронизация выполняется путём отслеживания события change на соответствующих полях.
Чтобы транслировать действия пользователей, виджет использует механизм браузерных событий. Для получения необходимой информации установите их обработчик. События срабатывают только на контейнере виджета. В обработчик передаётся один аргумент, у которого в поле detail содержатся передаваемые данные. Список поддерживаемых событий следующий:
Название события | Описание | Доступные в detail данные |
---|---|---|
onBasketAdd | Вызывается на добавление новой товарной позиции в корзину. | Информация о товаре. |
onBasketUpdate | Вызывается на изменение количества товара в корзине. | Информация о товаре. |
onBasketRemove | Вызывается на удаление товарной позиции из корзины. | Информация о товаре. |
onBasketClean | Вызывается, когда покупатель пользуется кнопкой «Очистить корзину». | пустой объект |
onWidgetInit | Вызывается, когда подключены все необходимые обработчики на странице. Срабатывает однократно на загрузке виджета. | пустой объект |
onWidgetBasketShow | Вызывается, когда завершается отрисовка корзины виджета. Срабатывает на каждой отрисовке корзины виджета. | пустой объект |
onWidgetOrderShow | Вызывается, когда завершается отрисовка оформления заказа виджета. Срабатывает на каждый вызов процедуры. | пустой объект |
onOrderSend | Вызывается, когда создается новый заказ. | Информация о заказе |
Создать обработчик можно следующим образом
var shiptorWidget = document.querySelector('#shiptor_widget');
shiptorWidget.addEventListener('onBasketAdd',function(customEvent){
console.log(customEvent.detail);
});
Чтобы использовать свои стили, подключите файл .css после инициализации виджета. Как это сделать показано на примере.
var shiptorWidget = document.querySelector('#shiptor_widget');
shiptorWidget.addEventListener('onWidgetInit',function(){
var fileref = document.createElement("link");
fileref.setAttribute("rel", "stylesheet");
fileref.setAttribute("type", "text/css");
fileref.setAttribute("href", '/pat/to/your/custom/style.css'); //Путь к вашему css файлу
if(typeof fileref !== "undefined"){
document.getElementsByTagName("head")[0].appendChild(fileref)
}
});
Результат работы такого кода выглядит следующим образом:
Примеры интеграции виджета Чекаута с популярными CMS подробно описаны в инструкции. Для доступа к интересующей системе выберите соответствующий пункт в правом навигационном меню.