msdSector

Расчет стоимости доставки с учетом секторов
Автор дополнения
Володя Володин
Пакетов
41
Закачек
15 322
Обычно отвечает в течение 4 часов
Автор дополнения
Пакетов
41
Закачек
15 322
Обычно отвечает в течение 4 часов
Версия 1.0.3-beta
Дата выпуска 13.11.2018
Загрузки 5
Просмотры 1 648
Внимание, этот компонент требует версию PHP 5.4 или выше! Если ваш сайт использует PHP ниже требуемого, установка этого дополнения может его сломать.
Внимание, этот компонент требует версию MODX не ниже 2.4 !

msdSector — расчет стоимости доставки с учетом секторов.



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

  • работа только с новым miniShop2 (version =>2.4.0-beta2)
  • сниппет расчета стоимости корзины
  • подсказки и выбор адреса с помощью DaData api

Демо: msdsector.vgrish.ru


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

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



Установка:

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


  • Самовывоз
  • Курьер

Включите необходимые вам методы.
Подсказки геообъектов реализованы с помощью DaData Api. Нужно зарегистироваться в данном сервисе dadata.ru
и получить ключ dadata.ru/profile/#info


Сектора доставки:

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




Обозначиваете требуемый сектор, указываете стоимость и если необходимо описание и время доставки.


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

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


Вы можете написать кастомный класс расчета согласно вашей логике.



msdSector.Order — расчет стоимости корзины

Сниппет msdSector.Order — для расчет стоимости корзины.
Аналогичен сниппету msOrder, добавлена инициализация основного класса и подгрузка необходимых сриптов.


  • tpl — Чанк оформления
  • elements — Список сниппетов через запятую, которые нужно запустить
  • processBlocks — JSON строка содержащая блоки необходимые для обработки

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


{'!msdSector.Order'|snippet:[
'tpl' => 'msdSector.order',
'suggestConfig' => [
	'token'  => '8993f742548398839f83aea5d5e2c75e3630a13f',
		'fields' => [
			'address'  => [
				'type' => 'ADDRESS',
				'constraints' => [
					'label'     => '',
					'deletable' => true,
					'locations' => [
						['city' => 'Ковров'],
						['city' => 'Мелехово'],
						['area' => 'Ковровский', 'settlement' => 'Первомайский'],
						['area' => 'Ковровский', 'settlement' => 'Новый'],
						['area' => 'Ковровский', 'settlement' => 'Заря']
					],
				],
				'subject'        => [
					'msdsector_coords' => 'geo_coords',
					'city'             => 'settlement,city',
					'street'           => 'street',
					'building'         => 'house',
					'room'             => 'flat',
				],
				'formatSelected' => 'formatAddressSelected',
				'formatResult'   => 'formatAddressResult',
			],
			'receiver' => [
				'type'   => 'NAME',
				'params' => [
					'parts' => [
						'NAME',
						'PATRONYMIC',
					],
				],
			],
			'email'    => [
				'type' => 'EMAIL',
			],
		],
	]
]}

Важно

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



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

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


  • hidden — список полей которые необходимо скрыть при активной доставке. Например — msdsector_pickup_info

Чанки
  • msdSector.order — чанк заказа магазина. Взят дефолтный чанки и добавлены блоки с дополнительной информацией.
    — адрес подсказка одной строкой
    — msdsector_delivery_info — информация о выбранной доставке
  • msdSector.order2 — чанк заказа магазина. Взят дефолтный чанки и добавлены блоки с дополнительной информацией.
    — адрес гранулярные подсказки
    — msdsector_delivery_info — информация о выбранной доставке
  • msdSector.block.delivery.info — чанк информации о доставке

1.0.3-beta (13.11.2018)

  • Fix autocomplete="off" [chunk]

1.0.2-beta (14.03.2018)

  • Improved "getSectorsCriteria" [msdSector]

1.0.1-beta (26.12.2017)

  • Add "formatBoundSelected" [js]

1.0.0-beta

  • Initial

Последние обсуждения в сообществе MODX.pro