mscZone

Расчет стоимости доставки для minishop2
Автор дополнения
Володя Володин
Пакетов
45
Закачек
24 401
Обычно отвечает в течение нескольких дней
Автор дополнения
Пакетов
45
Закачек
24 401
Обычно отвечает в течение нескольких дней
Версия 2.0.17-beta
Дата выпуска 24.12.2018
Загрузки 110
Просмотры 10 965

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