msDeliveryOnMap

Выбор адреса расчет доставки кликом по карте.
Автор дополнения
Павел
Пакетов
32
Закачек
44 671
Обычно отвечает в течение нескольких дней
Автор дополнения
Пакетов
32
Закачек
44 671
Обычно отвечает в течение нескольких дней
Версия 1.3.10-beta
Дата выпуска 04.08.2023
Загрузки 184
Просмотры 11 584
Внимание, этот компонент требует версию PHP 5.4 или выше! Если ваш сайт использует PHP ниже требуемого, установка этого дополнения может его сломать.
Внимание, этот компонент требует версию MODX не ниже 2.3 !
Внимание! Для сохранения возможности бесплатного использования API Яндекс.Карт пользователи должны соблюдать ряд условий — tech.yandex.ru/maps/jsapi/doc/2.1/terms/index-docpage/#index__conditions




Пакет считает стоимость доставки по имеющимся в базе автомобилям и зонам, в которые эти автомобили доставляют.

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

Для того, чтобы компонент работал и считал стоимость доставки до определённого места, нам нужно добавить на странице компонента зоны доставки.
Зона содержит название, которое во фронтенде нигде не выводится и необходимо только для обозначения зоны в бекенде. А также из обязательного:

  • Расстояние от склада:

  • или Область на карте:
    Интересный момент:
    Область на карте указывается в режиме редактирования и позволяет нарисовать любой требуемый многоугольник, потратив лишь немного времени. Однако, если у вас уже есть координаты многоугольника, то их можно ввести в поле «Координаты», и он мнгновенно добавится на карту.
    Также, есть возможность указать properties и options у многоугольника. Здесь можно почитать о том, какие возможности они дают. Указываются эти поля в JSON формате, например так:

    {"fillColor":"#6699ff","strokeColor":"#487cab","strokeWidth":2,"interactivityModel":"default#transparent","opacity":0.4}


Автомобили:

Следующим шагом будет добавление автомобилей, которые есть у нас в распоряжении.
У автомобиля есть обязательное название, объём и длина. При желании, для автомобиля можно добавить изображение. После добавления автомобиля у нас есть возможность привязать зоны доставки к нему из ранее добавленных нами:



Привязка зоны к автомобилю:

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

Полная инструкция по настройке:

  1. Устанавливаем компонент и включаем способ доставки в настройках miniShop2.
  2. Заходим в системные настройки и указываем всё, что нам нужно.
    Важным параметром является msdom_address_field. Он отвечает за поле, которое будет использовано в качестве полного адреса на странице корзины. По-умолчанию, для записи полного адреса задействовано поле city, которое в ms2 есть «из коробки». Можно заменить лексиконы бекенда/фронтенда для данного поля и оно вполне подойдёт для записи адреса при заказе.
  3. Создаём необходимые зоны на странице компонента.
  4. Создаём необходимые автомобили на странице компонента. После чего привязываем к каждому из автомобилей, зоны, в которые он будет доставлять.
  5. Заполняем товары так, чтобы в итоге можно было вычислить объём и длину единицы каждого товара. Можно добавить сразу объём/длину в товар, чтобы не вычислять их впоследствии «на ходу».
  6. В форму form.ms2_form, где находится наша кнопка «Добавить в корзину», добавляем 2 hidden поля, которые будут содержать информацию об объёме и длине:
    <input type="hidden" name="options[volume]" value="[[+tv_volume]]">
    <input type="hidden" name="options[length]" value="[[+tv_length]]">
    Обратите внимание, что я указал объём и длину в виде ТВ полей, но у вас они могут быть указаны в виде ms2 свойств/опций. Либо вы можете вычислить объём на ходу, если у вас есть необходимые для этого данные (длина, ширина, высота).
  7. Добавляем на страницу корзины или сразу в чанк tpl.msOrder.outer вызов сниппета:
    [[!msDom?inCart=`1`]]
  8. При желании, можно добавить вывод карты со списком автомобилей на любую другую страницу. Это удобно использовать на странице «Оплата и доставка», тем самым дав пользователю ознакомиться с примерными ценами на доставку в его район. Вот вывод сниппета:
    [[!msDom]]

1.3.10-beta (04.08.2023)

  • Исправлена проблема с отображением полного списка зон автомобилей в combobox

1.3.9-beta (31.05.2023)

  • Исправлена проблема с расчётом стоимости доставки при нулевом расстоянии

1.3.8-beta (01.03.2023)

  • Добавлена системная настройка msdom_delivery_time_field
  • Добавлена обработка поля delivery_time в default.js
  • Добавлена обработка поля delivery_time в msDeliveryOnMap::getCar

1.3.7-beta (10.02.2023)

  • Исправлен баг выборки CarZone при указании обратного диапазона времени

1.3.6-beta (06.02.2023)

  • Добавлена возможность указать время применения стоимости доставки (полезно для времени час-пик, ночной доставки, итп)

1.3.5-beta (09.12.2021)

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

1.3.4-beta2 (28.06.2020)

  • Исправлен баг с передачей опции zIndex типа String

1.3.4-beta (14.05.2020)

  • Добавлена поддержка отрицательных значений в поле "Надбавочная стоимость"

1.3.3-beta (22.03.2020)

  • Добавлен zIndex в опции области при добавлении на карту

1.3.2-beta (08.02.2020)

  • Добавлена ручная сортировка перетаскиванием зон

1.3.1-beta (29.01.2020)

  • Добавлено форматирование цены доставки на фронте
  • Добавлен параметр &cars в сниппет msDom для указания списка автомобилей
  • Добавлен параметр &startPoint в сниппет msDom для указания properties и options для точки склада
  • Добавлен параметр &finishPoint в сниппет msDom для указания properties и options для точки доставки
  • Добавлен параметр &route в сниппет msDom для указания params и options для маршрута

1.3.0-beta (27.01.2020)

  • Добавлен тип расчёта цены для зоны автомобиля
  • Добавлен процент от стоимости заказа для зоны автомобиля
  • Добавлена надбавочная цена для зоны автомобиля
  • Добавлена обработка поля "Бесплатная от суммы заказа" при договорной цене для зоны автомобиля
  • Добавлено текстовое примечание для зоны автомобиля
  • Исправлен вывод зон автомобиля для более компактного вида

1.2.6-beta (15.07.2019)

  • Исправлен баг в запросе выборки автомобилей

1.2.5-beta (11.07.2019)

  • Добавлено jQuery событие msdom_calculate в JS файл, срабатывающее при вычислении данных доставки

1.2.4-pl (02.07.2019)

  • Поправлено округление объёма, длины и веса не опираясь на локаль

1.2.4-beta (14.06.2019)

  • Добавлена грузоподъёмность в чанк списка автомобилей

1.2.3-pl (13.06.2019)

  • Добавлено округление объёма, длины и веса до сотых

1.2.2-pl (11.06.2019)

  • Исправлена выборка автомобиля

1.2.2-beta (11.06.2019)

  • Добавлены дополнительные вычисления в запрос на подбор автомобиля для выборки более подходящего авто

1.2.1-pl (09.06.2019)

  • Поправлен вывод в лог в методе msDeliveryOnMap::getCost

1.2.1-beta (09.06.2019)

  • Добавлено событие плагина msDomOnGetCost с параметрами: msDeliveryOnMap $msdom, array $data
  • Поправлено присвоение miniShop2 колбэков в JS

1.2.0-pl (08.06.2019)

  • Поправлена поддержка чисел разных типов в методе msDeliveryOnMap::getChainFieldValue
  • Поправлена ошибка нахождения автомобиля при локали, в которых в типе float используется запятая

1.2.0-beta (02.06.2019)

  • Добавлена опция "Вес" для автомобиля
  • Добавлена дополнительная сортировка в выборку автомобиля для подбора наилучшего варианта
  • Поправлено указание типа переменной передаваемой из PHP в JS у объекта msDomZone в бек-энде
  • Рефакторинг кода основного класса msDeliveryOnMap

1.1.2-beta (30.05.2019)

  • Добавлено расширенное поле для указания координат области
  • Поправлена совместимость с MySQL 5.7
  • Поправлен вызов метода fitToViewport() на карте в msDeliveryOnMap.ux.MapPolygonEditor

1.1.1-beta (05.06.2018)

  • Исправлен косяк с неотображением области на карте при повторном открытии окна редактирования зоны в бек-энде

1.1.0-beta (27.04.2018)

  • Добавлена функция "Бесплатная доставка от суммы заказа" для каждой зоны при привязке к автомобилю
  • Поправлена работа с контекстами

1.0.11-beta (08.02.2018)

  • Добавлена подгрузка библиотеки ymaps скрипта в бек-энде из настроек системы
  • Исправлена проблема с подгрузкой области при редактировании зоны в бек-энде

1.0.10-beta (11.12.2017)

  • Добавлена функция "Непогода" для способа доставки

1.0.9-beta3 (01.12.2017)

  • Исправлен косяк с неправильной установкой cookie, при установке добавлена опция path

1.0.9-beta2 (01.12.2017)

  • Исправлен косяк с некорректным формированием массива с зонами в методе msDeliveryOnMap::getCar()

1.0.9-beta (24.06.2017)

  • Исправлена проблема с двойным добавлением маршрута при инициализации карты, если поле "Адрес" заполнено

1.0.8-beta (10.09.2016)

  • Добавлена обработка доп. стоимости доставки

1.0.7-pl (15.07.2016)

  • В default.js поправлена совместимость с miniShop2 версии 2.4

1.0.7-beta (20.06.2016)

  • Поправлен SQL запрос выборки областей из базы при клике по карте

1.0.6-beta (01.06.2016)

  • Добавлена настройка указания ссылки на API Яндекс карт
  • Исправлена ошибка в консоли на страницах, где не инициализируется miniShop2

1.0.5-beta (31.05.2016)

  • Налажена работа JS при использовании на сайте библиотеки Mootools или PrototypeJS

1.0.4-pl (30.05.2016)

  • Восстановлена совместимость с PHP 5.3

1.0.4-beta (24.05.2016)

  • Масштаб карты по-умолчанию и масштаб при установке точки доставки - разделены

1.0.3-beta (24.05.2016)

  • Центр карты и координаты точки старта - разделены

1.0.2-beta (23.05.2016)

  • Добавлена возможность вывести сниппет msDom не на странице корзины
  • Добавлено изображение для автомобилей

1.0.1-beta (20.05.2016)

  • Добавлено удаление точки доставки и маршрута, при удалении вручную адреса из поля
  • Добавлен прелоадер при построении маршрута

1.0.0-beta2 (19.05.2016)

  • Поправлен подсчёт кол-ва рейсов

1.0.0-beta (19.05.2016)

  • Start

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