msDeliveryOnMap

Выбор адреса расчет доставки кликом по карте.
Автор дополнения
Павел
Пакетов
18
Закачек
5 650
Автор дополнения
Пакетов
18
Закачек
5 650
Версия 1.0.9-beta
Дата выпуска 24.06.2017
Загрузки 33
Просмотры 737
Внимание, этот компонент требует версию PHP 5.3 или выше! Если ваш сайт использует PHP ниже требуемого, установка этого дополнения может его сломать.
Внимание, этот компонент требует версию MODX не ниже 2.3 !


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

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

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

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

  • или Область на карте:
    Интересный момент:
    Область на карте указывается в режиме редактирования и позволяет нарисовать любой требуемый многоугольник, потратив лишь немного времени. Однако, если у вас уже есть координаты многоугольника, то их можно ввести в поле «Координаты», и он мнгновенно добавится на карту.
    Также, есть возможность указать 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.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