[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. Подскажите, какой из пакетов подойдёт лучше для реализации динамического поиска города в корзине и установки соответствующей стоимости доставки после выбора города?
Заранее спасибо)
                    Заранее спасибо)
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.