- Проверено Modstore
- Бесплатные будущие обновления
- Работа на тестовом и публичном домене
- 12 месяцев тех. поддержки
mscZone — расчет стоимости доставки с учетом зон доставки.
Особенности:
- работа только с новым miniShop2 (version =>2.4.0-beta2)
- сниппет локации города доставки
- сниппет расчета стоимости корзины
- сниппет расчета стоимости продукта
Демо: msczone.vgrish.ru
Типы доставки:
Можно создать любой тип доставки и задать для нее нужные характеристики
Установка:
После установки компонента доступны 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 — чанк информации о доставке
2.0.17-beta (24.12.2018)
- Improved "mscZoneCalculateHandler"
2.0.16-beta (23.12.2018)
- Change "mscZoneZoneGetListProcessor" processor
- Change "SettlementPopover, SettlementField" [js]
2.0.15-beta (20.11.2018)
- Change "mscZoneZoneKeysProcessor" processor
- Change "updateOrderFields" [js]
- Change "msczone.grid.Zone" [js]
2.0.14-beta (20.11.2018)
- Add "geonames_lang" setting
2.0.13-beta (06.06.2018)
- Change "methodActions" [js]
- Change "mscZoneSettlementGetProcessor, mscZoneSettlementGetListProcessor, mscZoneSettlementSaveProcessor" processor
- Add "mscZoneZoneGetListProcessor" processor
2.0.12-beta (14.04.2018)
- Change "formatNumber" [mscZone]
2.0.11-beta (15.02.2018)
- Add "geonames_inquiry" setting
- Improved "mscZoneSettlementGetListProcessor" processor
- Change "mscZoneConfig" [mscZone]
- Change "suggestion" data [js]
2.0.10-beta (14.02.2018)
- Change "formatNumber" [mscZone]
- Change "calculateCost" [mscZoneCalculateHandler]
- Add "updateDeliveries" [js]
2.0.7-beta - 2.0.8-beta (13.02.2018)
- Fix "setSettlement" [mscZone]
- Change "methodActions" (add "onInitialize" - autocomplete fix) [js]
2.0.7-beta (06.02.2018)
- Fix "setSettlement" [mscZone]
2.0.6-beta (03.02.2018)
- Change "SettlementPopover, SettlementField" [js]
2.0.5-beta (17.12.2017)
- Add "bootstrap-popover" [css]
- Change "SettlementPopover" [js]
- Change "suggestSettlement" [mscZoneGeoNamesApi]
2.0.4-beta (14.09.2017)
- Change "initialize,runProcessor" [mscZone]
2.0.3-beta (04.09.2017)
- Change "setAction" [js]
- Add "nanosleep" [mscZoneSettlementSaveProcessor]
2.0.2-beta (11.08.2017)
- Add "SettlementField" [js]
2.0.1-beta (11.08.2017)
- Fix "alternateNames" [mscZone]
2.0.0-beta
- Initial
1.0.5-beta
- improved installation script for MODX 2.4.
1.0.4-beta
- fix difference_cost
1.0.3-beta (09.07.2015)
- Added MiniShop2 events: "msOnBeforeGetOrderCost" and "msOnGetOrderCost"
1.0.2-beta (03.03.2015)
- add class Entry
- add delivery free the percentage of the total_cost
Последние обсуждения в сообществе MODX.pro