[mscZone] - расчет стоимости доставки Minishop2
mscZone — расчет стоимости доставки с учетом зон доставки.
Особенности:
Типы доставки:
Можно создать любой тип доставки и задать для нее нужные характеристики
Установка:
После установки компонента доступны 2 метода доставки.
Включите необходимые вам методы.
Поиск геообъектов реализован с помощью GeoNames Api. Нужно зарегистироваться в данном сервисе www.geonames.org/login
и активировать www.geonames.org/manageaccount
Зоны доставки:
Доступны для редактирования в окне метода доставки на одноименной вкладке.
Набирате в поисковой строке название локации, выбираете из подсказок нужный вам геообъект, задаете нужный ключ.
Ключем может выступать любое доступное поле, по умолчнию это
Расчет стомости:
За расчет стоимости доставки отвечает класс mscZoneCalculateHandler. Можно подключить свой кастомный класс унаследовав базовый
и переопределив метод calculateCost.
Логика базового класса проста, берется локация пользователя и согласно настройке geonames_zone_keys
Ищутся схождения по имеющимся зонам, если таковые имеются идет расчет доставки. Приоритет зон обратный порядку ключей заданных в настройке.
То есть мы ищем города, области, страны, континенты.
Для расчета доступны данные корзины, локации, габаритов и стоимости продуктов. Вы можете написать кастомный класс расчепта
согласно вашей логике.
mscZone.Settlement — точки доставки
Сниппет mscZone.Settlement — для выбора населенного пункта доставки. По умолчанию активен населенный пунк — Москва.
Можно вывести поповер с выбором населенного пункта. Список стран доставки регулируется настройкой
geonames_country
поповер с выбором населенного пункта
Сниппет mscZone.Order — для расчет стоимости корзины.
Практически сниппет обертка, выполняет необходимые действия, данные выставляет в плейсходеры, затем запускает
поочередно сниппеты из списка elements. Последним необходимо указать родной сниппет msOrder.
сниппет mscZone.Product.cost — расчет стоимости продукта
пример вызова
Важно
— компонент предназначен для работы с новым miniShop2 версии >= 2.4.0-beta2
— работа компонента не тестировалась с другими компонентами доставки, возможны конфликты в работе.
Кастомизация
У методов доставки доступны следующие свойства
Чанки
Особенности:
- работа только с новым miniShop2 (version =>2.4.0-beta2)
- сниппет локации города доставки
- сниппет расчета стоимости корзины
- сниппет расчета стоимости продукта
Типы доставки:
Можно создать любой тип доставки и задать для нее нужные характеристики
Установка:
После установки компонента доступны 2 метода доставки.
- Почта
- Курьер
Включите необходимые вам методы.
Поиск геообъектов реализован с помощью GeoNames Api. Нужно зарегистироваться в данном сервисе www.geonames.org/login
и активировать www.geonames.org/manageaccount
Зоны доставки:
Доступны для редактирования в окне метода доставки на одноименной вкладке.
Набирате в поисковой строке название локации, выбираете из подсказок нужный вам геообъект, задаете нужный ключ.
Ключем может выступать любое доступное поле, по умолчнию это
- continentCode — код континента
- countryCode — код страны
- adminId1 — идентификатор области
- geonameId — идентификатор город
Расчет стомости:
За расчет стоимости доставки отвечает класс mscZoneCalculateHandler. Можно подключить свой кастомный класс унаследовав базовый
и переопределив метод calculateCost.
Логика базового класса проста, берется локация пользователя и согласно настройке geonames_zone_keys
Ищутся схождения по имеющимся зонам, если таковые имеются идет расчет доставки. Приоритет зон обратный порядку ключей заданных в настройке.
То есть мы ищем города, области, страны, континенты.
Для расчета доступны данные корзины, локации, габаритов и стоимости продуктов. Вы можете написать кастомный класс расчепта
согласно вашей логике.
mscZone.Settlement — точки доставки
Сниппет mscZone.Settlement — для выбора населенного пункта доставки. По умолчанию активен населенный пунк — Москва.
Можно вывести поповер с выбором населенного пункта. Список стран доставки регулируется настройкой
geonames_country
поповер с выбором населенного пункта
[[!mscZone.Settlement? &tpl=`mscZone.Settlement.popover` ]]mscZone.Order — расчет стоимости корзины
Сниппет mscZone.Order — для расчет стоимости корзины.
Практически сниппет обертка, выполняет необходимые действия, данные выставляет в плейсходеры, затем запускает
поочередно сниппеты из списка elements. Последним необходимо указать родной сниппет msOrder.
- tpl — Чанк оформления
- elements — Список сниппетов через запятую, которые нужно запустить
- processBlocks — JSON строка содержащая блоки необходимые для обработки
[[!mscZone.Order? &processBlocks=`{ "delivery-info" => "mscZone.block.delivery.info", }` ]]
сниппет mscZone.Product.cost — расчет стоимости продукта
- tpl — Чанк оформления
- product — Идентификатор продукта
- delivery — Идентификатор доставки
пример вызова
<div class="msczone-product-cost-mail"></div> [[!AjaxSnippet? &snippet=`mscZone.Product.cost` &delivery=`2` &as_target=`.msczone-product-cost-mail` ]]]События
- mscZoneOnGetProductOption — получение опций продукта
Важно
— компонент предназначен для работы с новым miniShop2 версии >= 2.4.0-beta2
— работа компонента не тестировалась с другими компонентами доставки, возможны конфликты в работе.
Кастомизация
У методов доставки доступны следующие свойства
- hidden — список полей которые необходимо скрыть при активной доставке. Например — index,region,city,street,building,room,delivery_address,msczone_delivery_info
Чанки
- mscZone.Settlement.popover — чанк выбора населенного пункта в поповере
- mscZone.order — чанк заказа магазина. Взят дефолтный чанки и добавлены блоки с дополнительной информацией.
— msczone_delivery_info — информация о выбранной доставке
- mscZone.block.delivery.info — чанк информации о доставке
p.s. Всем спасибо за внимание. Компонент в магазине modstore.pro/packages/delivery/msczone
Поблагодарить автора
Отправить деньги
Комментарии: 1
Добрый день. Хочу купить дополнение для miniShop2. Рассматриваю пакеты mscZone и mscDistance. Подскажите, какой из пакетов подойдёт лучше для реализации динамического поиска города в корзине и установки соответствующей стоимости доставки после выбора города?
Заранее спасибо)
Заранее спасибо)
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.