[msdSector] - расчет стоимости доставки с учетом секторов.
msdSector — расчет стоимости доставки с учетом секторов.
Особенности:
Типы доставки:
Можно создать любой тип доставки и задать для нее нужные характеристики
Установка:
После установки компонента доступны 2 метода доставки.
Включите необходимые вам методы.
Подсказки геообъектов реализованы с помощью DaData Api. Нужно зарегистироваться в данном сервисе dadata.ru
и получить ключ dadata.ru/profile/#info
Сектора доставки:
Доступны для редактирования в окне метода доставки на одноименной вкладке.
Обозначиваете требуемый сектор, указываете стоимость и если необходимо описание и время доставки.
Расчет стомости:
За расчет стоимости доставки отвечает класс msdSectorDeliveryHandler. Можно подключить свой кастомный класс унаследовав базовый
и переопределив метод calculateCost.
Логика базового класса проста, берется локация пользователя и выбирается сектор с максимальной ценой включающий данную локацию, если таковой имеются идет расчет доставки.
Вы можете написать кастомный класс расчета согласно вашей логике.
msdSector.Order — расчет стоимости корзины
Сниппет msdSector.Order — для расчет стоимости корзины.
Аналогичен сниппету msOrder, добавлена инициализация основного класса и подгрузка необходимых сриптов.
пример вызова — адрес гранулярный
— компонент предназначен для работы с новым miniShop2 версии >= 2.4.0-beta2
— работа компонента не тестировалась с другими компонентами доставки, возможны конфликты в работе.
— кастомизация подсказок читать — dadata.userecho.com/, есть множество примеров.
Кастомизация
У методов доставки доступны следующие свойства
Особенности:
- работа только с новым miniShop2 (version =>2.4.0-beta2)
- сниппет расчета стоимости корзины
- подсказки и выбор адреса с помощью DaData api
Типы доставки:
Можно создать любой тип доставки и задать для нее нужные характеристики
Установка:
После установки компонента доступны 2 метода доставки.
- Самовывоз
- Курьер
Включите необходимые вам методы.
Подсказки геообъектов реализованы с помощью DaData Api. Нужно зарегистироваться в данном сервисе dadata.ru
и получить ключ 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', ], ], ] ]}
пример вызова — адрес гранулярный
{'!msdSector.Order'|snippet:[
'tpl' => 'msdSector.order2',
'suggestConfig' => [
'token' => '8993f742548398839f83aea5d5e2c75e3630a13f',
'fields' => [
'city' => [
'type' => 'ADDRESS',
'hint' => false,
'setValue' => true,
'value' => 'г Ковров',
'bounds' => 'city-settlement',
'constraints' => [
'label' => '',
'deletable' => true,
'locations' => [
['region' => 'Владимирская'],
['area' => 'Ковровский'],
],
],
],
'street' => [
'type' => 'ADDRESS',
'hint' => false,
'setValue' => true,
'bounds' => 'street',
'constraints' => 'city',
'subject' => [
'msdsector_coords' => 'geo_coords',
],
],
'building' => [
'type' => 'ADDRESS',
'hint' => false,
'setValue' => true,
'fixData' => true,
'bounds' => 'house',
'constraints' => 'street',
'subject' => [
'msdsector_coords' => 'geo_coords',
],
],
'receiver' => [
'type' => 'NAME',
'params' => [
'parts' => [
'NAME',
'PATRONYMIC'
]
]
],
'email' => [
'type' => 'EMAIL'
]
]
]
]}
Важно— компонент предназначен для работы с новым miniShop2 версии >= 2.4.0-beta2
— работа компонента не тестировалась с другими компонентами доставки, возможны конфликты в работе.
— кастомизация подсказок читать — dadata.userecho.com/, есть множество примеров.
Кастомизация
У методов доставки доступны следующие свойства
- hidden — список полей которые необходимо скрыть при активной доставке. Например — msdsector_pickup_info
- msdSector.order — чанк заказа магазина. Взят дефолтный чанки и добавлены блоки с дополнительной информацией.
— адрес подсказка одной строкой
— msdsector_delivery_info — информация о выбранной доставке
- msdSector.order2 — чанк заказа магазина. Взят дефолтный чанки и добавлены блоки с дополнительной информацией.
— адрес гранулярные подсказки
— msdsector_delivery_info — информация о выбранной доставке
- msdSector.block.delivery.info — чанк информации о доставке
PS. Всем праздничного настроения! Спасибо за внимание. Пакет в магазине
Поблагодарить автора
Отправить деньги
Комментарии: 10
Классный компонент, идеально подходит для интернет магазинов с доставкой еды. Особенно круто работает добавление областей на карту! Спасибо за работу!
Спасибо за отзыв!
Спасибо за дополнение! Как его посмотреть в работе?
На сайте msdsector.vgrish.ru при выборе ул Дегтярева, д 162 выпадает г Владимир и модуль пишет, что доставки нет.
На сайте msdsector.vgrish.ru при выборе ул Дегтярева, д 162 выпадает г Владимир и модуль пишет, что доставки нет.
все корректно работает joxi.ru/V2VGOpzCdvknkA
вы можете поставить дополнение на modhost.pro/site/new и протестировать его работу.
вы можете поставить дополнение на modhost.pro/site/new и протестировать его работу.
купил плагин, в dadata зарегистрировался, но он не работает у меня правильно, в заказе в поле адреса ввожу данные, но пишет предупреждение «Укажите адрес доставки».
joxi.ru/BA0Xn5aCP04LqA
вот код вызова
joxi.ru/BA0Xn5aCP04LqA
вот код вызова
[[!msdSector.Order?
&tpl=`msdSector.order`
&suggestConfig=`[
'token' => '6bd91e6e5de617c438ac56b1bbbe436cbb61419f',
'fields' => [
'address' => [
'type' => 'ADDRESS',
'constraints' => [
'label' => '',
'deletable' => true,
'locations' => [
['city' => 'Москва'],
],
],
'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',
],
],
]`
]]
Очень полезный компонент, спасибо.
Но вот документация, как обычно, «на отвали» сделана.
Но вот документация, как обычно, «на отвали» сделана.
Здравствуйте.
Подскажите, можно ли использовать этот компонент совместно с картой во фронтенде — т.е. выбирать точку на карте при оформлении заказа?.. В демо, вроде, такого нет…
Подскажите, можно ли использовать этот компонент совместно с картой во фронтенде — т.е. выбирать точку на карте при оформлении заказа?.. В демо, вроде, такого нет…
Компонент вообще поддерживается ещё?
Установил на тестовый хостинг modhost.pro, что-то не работает ничего… (((
При установке пишет:
PHP notice: Undefined index: guid
Could not load vehicle!
PHP notice: Undefined index: guid
Could not load class: encryptedVehicle from transport.encryptedvehicle.
The specified xPDOVehicle class (transport.encryptedVehicle) could not be loaded.
PHP notice: Undefined index: guid
Успешно установлен пакет msdsector-1.0.6-beta
Установил на тестовый хостинг modhost.pro, что-то не работает ничего… (((
При установке пишет:
PHP notice: Undefined index: guid
Could not load vehicle!
PHP notice: Undefined index: guid
Could not load class: encryptedVehicle from transport.encryptedvehicle.
The specified xPDOVehicle class (transport.encryptedVehicle) could not be loaded.
PHP notice: Undefined index: guid
Успешно установлен пакет msdsector-1.0.6-beta
Всё норм работает, надо только заменить в файле core/components/msdsector/controllers/msdsectordeliveryhandler.class.php
if (!class_exists("msDeliveryInterface")) {
require_once MODX_CORE_PATH . "components/minishop2/model/minishop2/msdeliveryhandler.class.php";
}
наif (!class_exists("msDeliveryInterface")) {
require_once MODX_CORE_PATH . "components/minishop2/handlers/msdeliveryhandler.class.php";
}
видимо пути переделали в свежем минишопе
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.