mscZone

Расчет стоимости доставки для minishop2
Автор дополнения
Володя Володин
Пакетов
45
Закачек
23 472
Обычно отвечает в течение нескольких дней
Автор дополнения
Пакетов
45
Закачек
23 472
Обычно отвечает в течение нескольких дней
Версия 2.0.17-beta
Дата выпуска 24.12.2018
Загрузки 110
Просмотры 9 386
Внимание, этот компонент требует версию PHP 5.4 или выше! Если ваш сайт использует PHP ниже требуемого, установка этого дополнения может его сломать.
Внимание, этот компонент требует версию MODX не ниже 2.3 !

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