Этот виджет вы можете встроить в любой сайт, подключить к любой CMS.
Гибкие возможности по настройке функционала позволяют встроить виджет в корзину сайта учитывая вашу логику, и не зависеть от модулей CMS (которые работают только если нет кастомизации чекаута), а также использовать в тех CMS, для которых у нас нет модулей.
Поведение страницы с виджетом можно гибко настроить через js, а внешний вид - с помощью css под конкретный сайт.
У этого виджета нет выбора города и блока с оплатами. Его удобно использовать для встройки в сайты, где все это есть на стороне CMS.
По клику на выбор ПВЗ или службу доставки данные возвращаются на сайт для использования в штатных механиках CMS.
Если же вам нужен выбор города или оплата на стороне виджета (например, у вас самописный сайт без CMS), используйте
виджеты встраиваемый в страницу
или во всплывающем в окне.
Можно вывести ПВЗ конкретной службы, или отобразить их все с возможностью поиска ближайших по адресу. Адрес вашего ПВЗ/склада добавляется через настройку своей службы доставки. Он так же будет на общей карте, на этой странице для примера добавлен склад самовывоза для Москвы.
Источником данных весо-габаритных характеристик может быть ваш сайт или настройки в нашем кабинете.
На этой странице для примера при выборе DPD с оплатой Наличными при получении добавляется 100% наценка к стоимости доставки. Так же через правила можно сделать коррекцию в зависимости от любых других параметров заказа.
Если у транспортной компании есть разные тарифы, то в настройках виджета вы можете разрешить выбор тарифа для пользователей. На этой странице включен выбор тарифа для Сдэк и Почты России.
Если у транспортной компании есть дополнительные услуги, такие как обрешетка, страховка, подъем на этаж и т.п., в настройках виджета вы можете разрешить выбор дополнительных услуг, изменить их названия и вывести ваш комментарий, а также включить нужные вам по умолчанию. На этой странице выбор дополнительных услуг разрешен для Сдэк и Деловых Линий
Настроить внешний вид можно с помощью css под дизайн конкретного сайта (цвета, шрифт, форма и расположение блоков)
Доступные события смотрите ниже в блоке Подключение и настройка.
Ниже представлен макет корзины со встроенным виджетом. Выбор населенного пункта и способа оплаты реализованы на стороне сайта.
Состав корзины
| Наименование | Цена | Количество | Сумма | ||
|---|---|---|---|---|---|
|
Кроссовки Вес: 2.5кг |
6 400 р | 6 400 р | ||
|
Мягкая игрушка Вес: 0.5кг |
820 р | 1 640 р | ||
|
Набор для путешествий Вес: 1кг |
1 652 р | 1 652 р |
Выберите тип доставки (настраиваемый заголовок виджета)
1. Создайте и настройте аккаунт в сервисе eShopLogistic. Порядок действий описан здесь.
2. Выполните подключение виджета к сайту по документации ниже.
Если что-то не получается - напишите нам через Telegram или в раздел «Поддержка» в нашем кабинете, мы обязательно поможем!
Помимо параметров настройки виджета в личном кабинете, некоторые настройки можно применять прямо при установки виджета.
Это позволяет переопределять указанные в личном кабинете базовые настройки (например, в зависимости от каких-то условий на сайте).
Обязательным параметром, который должен быть указан и не может быть изменён, является ключ виджета - data-key.
| Параметр | Описание |
|---|---|
| data-key | Ключ виджета. Указан в настройках виджета на вкладке «Подключение на сайте». |
| data-lazy-load |
Установите значение Пример:
|
| data-door-delivery-default |
Код службы курьерской доставки по умолчанию После запуска виджета автоматически будет определён вариант указанной службы (если он доступен) Доступные коды служб:
|
| data-terminal-delivery-default |
Код службы доставки до пункта самовывоза по умолчанию После запуска виджета автоматически будет определён вариант указанной службы (если он доступен) |
| data-controller |
URL контроллера Если необходимо как-то обрабатывать запросы (например, логгировать), укажите URL своего контроллера. Например: data-controller="/assets/delivery/action.php" |
Параметры, отмеченные , - обязательны.
Доступно 10 функций обратного вызова для каждого ключевого события или ошибки:
Пример использования:
<script>
document.addEventListener('DOMContentLoaded', () => {
const root = document.getElementById('eShopLogisticWidgetCart');
root.addEventListener('eShopLogisticWidgetCart:onLoadApp', (event) => {
console.log('Событие onLoadApp', event.detail)
});
root.addEventListener('eShopLogisticWidgetCart:onSelectedService', (event) => {
console.log('Событие onSelectedService', event.detail)
})
root.addEventListener('eShopLogisticWidgetCart:onAllServicesLoaded', (event) => {
console.log('Событие onAllServicesLoaded', event.detail)
})
root.addEventListener('eShopLogisticWidgetCart:onSelectTypeDelivery', (event) => {
console.log('Событие onSelectTypeDelivery', event.detail)
})
root.addEventListener('eShopLogisticWidgetCart:onInvalidSettlementCode', () => {
console.log('Неверный код населенного пункта')
})
root.addEventListener('eShopLogisticWidgetCart:onInvalidName', () => {
console.log('Неверный name города')
})
root.addEventListener('eShopLogisticWidgetCart:onInvalidServices', () => {
console.log('Неверный массив служб')
})
root.addEventListener('eShopLogisticWidgetCart:onInvalidPayment', () => {
console.log('Не передана оплата')
})
root.addEventListener('eShopLogisticWidgetCart:onInvalidOffers', () => {
console.log('Не передан offers')
})
</script>
После регистрации на нашей платформе добавьте ключ доступа и нужные вам службы доставки.
Добавьте к ключу виджет типа Расчет доставки для корзины (Специальный для модулей CMS и разработчиков).
Настройте параметры и функционал виджета по документации.
Общий порядок действий для подключения сервиса eShopLogistic на ваш сайт или в МойСклад описан здесь. Подключайтесь по документации и используйте все возможности интеграции со службами доставки для вашего бизнеса.
Установка на сайт
Для установки виджета на сайт необходимо вставить в код страницы контейнер для виджета и подключить js-скрипт для расширенной или компактной версии:
<div id="eShopLogisticWidgetCart" data-lazy-load="false" data-key="000000-0-0"></div>
<script src="https://api.esplc.ru/widgets/cart/app.js">
/*
для компактной версии виджета:
https://api.esplc.ru/widgets/cartCompact/app.js
*/
</script>
Параметр data-key должен содержать ключ виджета, указанный в настройках виджета в личном кабинете.
Как использовать виджет на странице оформления заказа
Для включения виджета в работы в состав страницы оформления заказа сайта необходимо передать виджету:
Определить НП при загрузке страницы оформления заказа:
если на сайте установлена система определения города посетителя и у вас есть название города, а лучше ФИАС-код, то можно воспользоваться методом
/locality/search.
В противном случае, можно использовать метод /locality/geo.
Выбор НП посетителем сайта: используйте метод /locality/search.
JSON-представление массива товаров в корзине.
Обратите внимание: необходимо связать варианты оплаты, настроенные на сайте с зарезервированными кодами в нашейм сервисе:
card (карта)
cash (наличные)
cashless (безналичный расчёт)
prepay (специальный тип: предоплата)
upon_receipt (специальный тип: оплата при получении).
При обновлении любого из указанных выше параметра необходимо обновлять виджет, перезапуская событие eShopLogisticWidgetCart:updateParamsRequest с новыми данными.
JS-код запуска:
<script>
document.addEventListener('DOMContentLoaded', () => {
const root = document.getElementById('eShopLogisticWidgetCart'),
// объект settlement должен содержать массив services, а также один из элементов code или fias
// данные получаются посредством методов /locality/search или /locality/geo
settlement = {
"code": 120935,
"name": "Тверь",
"fias": "c52ea942-555e-45c6-9751-58897717b02f",
"services": [
"sdek",
"yandex",
"boxberry",
"energija"
]
},
// массив товаров корзины
cart = [{
"article":"001",
"name":"Товар 1",
"count":1,
"price":6400,
"weight":2.5,
"dimensions":"15*10*5"
}, {
"article":"002",
"name":"Товар 2",
"count":2,
"price":1500,
"weight":0.5,
"dimensions":"10*5*5"
}]
// собыите onLoadApp запускается только один раз - при первом запуске виджета
// для того, чтобы передать в виджет новые параметры, используйте только updateParamsRequest
root.addEventListener('eShopLogisticWidgetCart:onLoadApp', (event) => {
const params = {
offers: JSON.stringify(cart),
payment: 'card',
// При необходимости можно задать ПВЗ отправления груза
// Актуально, если ПВЗ используются разные и на них есть доплаты, например у ПЭК и DPD)
fromTerminal: {
dpd: 'BBK'
},
// Указанием здесь ФИАС-кода можно изменить город-отправитель, заданный по умолчанию в настройках ключа доступа (в личном кабинете)
from: '8dea00e3-9aab-4d8e-887c-ef2aaa546456'
}
root.dispatchEvent(new CustomEvent('eShopLogisticWidgetCart:updateParamsRequest', {
detail: {
settlement: settlement,
requestParams: params
}
}))
})
})
</script>
В результате работы виджета доступны следующие данные, которые необходимо передать в объект заказа:
Используйте функцию обратного вызова eShopLogisticWidgetCart:onSelectedService.
В event.detail также могут содержаться другие необходимые данные, в зависимости от конкретной службы доставки.
Например, «код тарифа» для СДЭКа, который необходим для выгрузки заказа на доставку в кабинет сдека.
Используйте функцию обратного вызова eShopLogisticWidgetCart:onSelectTypeDelivery.
Используйте функцию обратного вызова eShopLogisticWidgetCart:onSelectedPvz.
Пример:
<script>
document.addEventListener('DOMContentLoaded', () => {
const root = document.getElementById('eShopLogisticWidgetCart')
// Событие «Выбор варианта доставки»
root.addEventListener('eShopLogisticWidgetCart:onSelectedService', (event) => {
console.log('Событие onSelectedService', event.detail)
})
})
</script>
В случае, если не найдено ни одного варианта доставки, вызывается eShopLogisticWidgetCart:onNotAvailableServices.