mscZone — расчет стоимости доставки

mscZone — расчет стоимости доставки с учетом зон доставки.

Особенности:

Демо: msczone.vgrish.ru

Типы доставки:

Можно создать любой тип доставки и задать для нее нужные характеристики

Установка:

После установки компонента доступны 2 метода доставки.

Включите необходимые вам методы. Поиск геообъектов реализован с помощью GeoNames Api. Нужно зарегистироваться в данном сервисе http://www.geonames.org/login и активировать http://www.geonames.org/manageaccount


Зоны доставки:

Доступны для редактирования в окне метода доставки на одноименной вкладке.

Набирате в поисковой строке название локации, выбираете из подсказок нужный вам геообъект, задаете нужный ключ. Ключем может выступать любое доступное поле, по умолчнию это

Назначаете каждой зоне свои цены и время доставки.

Расчет стомости:

За расчет стоимости доставки отвечает класс mscZoneCalculateHandler. Можно подключить свой кастомный класс унаследовав базовый и переопределив метод calculateCost. Логика базового класса проста, берется локация пользователя и согласно настройке geonames_zone_keys Ищутся схождения по имеющимся зонам, если таковые имеются идет расчет доставки. Приоритет зон обратный порядку ключей заданных в настройке. То есть мы ищем города, области, страны, континенты.

Для расчета доступны данные корзины, локации, габаритов и стоимости продуктов. Вы можете написать кастомный класс расчепта согласно вашей логике.



mscZone.Settlement - точки доставки

Сниппет mscZone.Settlement - для выбора населенного пункта доставки. По умолчанию активен населенный пунк - Москва. Можно вывести поповер с выбором населенного пункта. Список стран доставки регулируется настройкой geonames_country

поповер с выбором населенного пункта

[[!mscZone.Settlement?
	&tpl=`mscZone.Settlement.popover`
	]]

Результат:

Москва

mscZone.Order - расчет стоимости корзины

Сниппет mscZone.Order - для расчет стоимости корзины. Практически сниппет обертка, выполняет необходимые действия, данные выставляет в плейсходеры, затем запускает поочередно сниппеты из списка elements. Последним необходимо указать родной сниппет msOrder.

пример вызова

[[!mscZone.Order?
	&processBlocks=`{
	"delivery-info" => "mscZone.block.delivery.info",
	}`
	]]


сниппет mscZone.Product.cost — расчет стоимости продукта

пример вызова


	
[[!AjaxSnippet? &snippet=`mscZone.Product.cost` &delivery=`2` &as_target=`.msczone-product-cost-mail` ]]]

Результат:



События Важно

- компонент предназначен для работы с новым miniShop2 версии >= 2.4.0-beta2
- работа компонента не тестировалась с другими компонентами доставки, возможны конфликты в работе.



Кастомизация

У методов доставки доступны следующие свойства



Чанки