msDeliveryOnMap

Выбор адреса расчет доставки кликом по карте.
Автор дополнения
Павел
Пакетов
33
Закачек
45 554
Обычно отвечает в течение нескольких дней
Автор дополнения
Пакетов
33
Закачек
45 554
Обычно отвечает в течение нескольких дней
Версия 1.3.10-beta
Дата выпуска 04.08.2023
Загрузки 186
Просмотры 13 468
Внимание! Для сохранения возможности бесплатного использования 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