msdSector — расчет стоимости доставки с учетом секторов.
Особенности:
- работа только с новым miniShop2 (version =>2.4.0-beta2)
- сниппет расчета стоимости корзины
Демо: msdsector.vgrish.ru
Типы доставки:Можно создать любой тип доставки и задать для нее нужные характеристики
Установка:После установки компонента доступны 2 метода доставки.
- Самовывоз
- Курьер
Включите необходимые вам методы. Подсказки геообъектов реализованы с помощью DaData Api. Нужно зарегистироваться в данном сервисе https://dadata.ru и получить ключ https://dadata.ru/profile/#info
Сектора доставки:
Доступны для редактирования в окне метода доставки на одноименной вкладке.
Обозначиваете требуемый сектор, указываете стоимость и если необходимо описание и время доставки.
Расчет стомости:За расчет стоимости доставки отвечает класс msdSectorDeliveryHandler. Можно подключить свой кастомный класс унаследовав базовый и переопределив метод calculateCost. Логика базового класса проста, берется локация пользователя и выбирается сектор с максимальной ценой включающий данную локацию, если таковой имеются идет расчет доставки.
Вы можете написать кастомный класс расчета согласно вашей логике.
msdSector.Order - расчет стоимости корзины
Сниппет msdSector.Order - для расчет стоимости корзины. Аналогичен сниппету msOrder, добавлена инициализация основного класса и подгрузка необходимых сриптов.
- tpl - Чанк оформления
- elements - Список сниппетов через запятую, которые нужно запустить
- processBlocks - JSON строка содержащая блоки необходимые для обработки
пример вызова
{'!msdSector.Order'|snippet:[
'tpl' => 'msdSector.order',
'suggestConfig' => [
'token' => '8993f742548398839f83aea5d5e2c75e3630a13f',
'fields' => [
'address' => [
'type' => 'ADDRESS',
'constraints' => [
'label' => '',
'deletable' => true,
'locations' => [
['city' => 'Ковров'],
['city' => 'Мелехово'],
['area' => 'Ковровский', 'settlement' => 'Первомайский'],
['area' => 'Ковровский', 'settlement' => 'Новый'],
['area' => 'Ковровский', 'settlement' => 'Заря']
],
],
'subject' => [
'msdsector_coords' => 'geo_coords',
'city' => 'settlement,city',
'street' => 'street',
'building' => 'house',
'room' => 'flat',
],
'formatSelected' => 'formatAddressSelected',
'formatResult' => 'formatAddressResult',
],
'receiver' => [
'type' => 'NAME',
'params' => [
'parts' => [
'NAME',
'PATRONYMIC',
],
],
],
'email' => [
'type' => 'EMAIL',
],
],
]
]}
Важно
- компонент предназначен для работы с новым miniShop2 версии >= 2.4.0-beta2
- работа компонента не тестировалась с другими компонентами доставки, возможны конфликты в работе.
Кастомизация
У методов доставки доступны следующие свойства
- hidden — список полей которые необходимо скрыть при активной доставке. Например - msdsector_pickup_info
Чанки
- msdSector.order — чанк заказа магазина. Взят дефолтный чанки и добавлены блоки с дополнительной информацией.
- адрес подсказка одной строкой - msdsector_delivery_info - информация о выбранной доставке - msdSector.order2 — чанк заказа магазина. Взят дефолтный чанки и добавлены блоки с дополнительной информацией.
- адрес гранулярные подсказки - msdsector_delivery_info - информация о выбранной доставке - msdSector.block.delivery.info — чанк информации о доставке