[msDeliveryOnMap] Выбор адреса и подсчёт стоимости доставки одним кликом по карте
Пакет считает стоимость доставки по имеющимся в базе автомобилям и зонам, в которые эти автомобили доставляют.
Демо-сайт компонента msDeliveryOnMap
Купить компонент в Modstore
Зоны доставки:
Для того, чтобы компонент работал и считал стоимость доставки до определённого места, нам нужно добавить на странице компонента зоны доставки.Зона содержит название, которое во фронтенде нигде не выводится и необходимо только для обозначения зоны в бекенде. А также из обязательного:
- Расстояние от склада:
- или Область на карте:
Интересный момент:
Область на карте указывается в режиме редактирования и позволяет нарисовать любой требуемый многоугольник, потратив лишь немного времени. Однако, если у вас уже есть координаты многоугольника, то их можно ввести в поле «Координаты», и он мнгновенно добавится на карту.
Также, есть возможность указать properties и options у многоугольника. Здесь можно почитать о том, какие возможности они дают. Указываются эти поля в JSON формате, например так:
{"fillColor":"#6699ff","strokeColor":"#487cab","strokeWidth":2,"interactivityModel":"default#transparent","opacity":0.4}
Автомобили:
Следующим шагом будет добавление автомобилей, которые есть у нас в распоряжении.У автомобиля есть обязательное название, объём и длина. При желании, для автомобиля можно добавить изображение. После добавления автомобиля у нас есть возможность привязать зоны доставки к нему из ранее добавленных нами:
Привязка зоны к автомобилю:
При привязке зоны доставки мы можем указать различные варианты цены, либо вообще выставить договорную стоимость за данную зону у данного автомобиля:Пояснять, за что отвечает каждый вариант цены, я думаю не нужно.
Полная инструкция по настройке:
- Устанавливаем компонент и включаем способ доставки в настройках miniShop2.
- Заходим в системные настройки и указываем всё, что нам нужно.
Важным параметром является msdom_address_field. Он отвечает за поле, которое будет использовано в качестве полного адреса на странице корзины. По-умолчанию, для записи полного адреса задействовано поле city, которое в ms2 есть «из коробки». Можно заменить лексиконы бекенда/фронтенда для данного поля и оно вполне подойдёт для записи адреса при заказе.
- Создаём необходимые зоны на странице компонента.
- Создаём необходимые автомобили на странице компонента. После чего привязываем к каждому из автомобилей, зоны, в которые он будет доставлять.
- Заполняем товары так, чтобы в итоге можно было вычислить объём и длину единицы каждого товара. Можно добавить сразу объём/длину в товар, чтобы не вычислять их впоследствии «на ходу».
- В форму form.ms2_form, где находится наша кнопка «Добавить в корзину», добавляем 2 hidden поля, которые будут содержать информацию об объёме и длине:
Обратите внимание, что я указал объём и длину в виде ТВ полей, но у вас они могут быть указаны в виде ms2 свойств/опций. Либо вы можете вычислить объём на ходу, если у вас есть необходимые для этого данные (длина, ширина, высота).<input type="hidden" name="options[volume]" value="[[+tv_volume]]"> <input type="hidden" name="options[length]" value="[[+tv_length]]">
- Добавляем на страницу корзины или сразу в чанк tpl.msOrder.outer вызов сниппета:
[[!msDom?inCart=`1`]]
- При желании, можно добавить вывод карты со списком автомобилей на любую другую страницу. Это удобно использовать на странице «Оплата и доставка», тем самым дав пользователю ознакомиться с примерными ценами на доставку в его район. Вот вывод сниппета:
[[!msDom]]
Спасибо Михаилу Воеводскому за спонсорскую поддержку!
Поблагодарить автора
Отправить деньги
Комментарии: 40
Гениально!
Давно пора, давно ждали. Павел в своем стиле ) и каждый раз все круче и круче
Я наверное первый бета-тестер)
Не сохраняются параметры
Версия PHP 5.4
Подскажите, куда копать?
Не сохраняются параметры
Версия PHP 5.4
Подскажите, куда копать?
В лог сервера — все ошибки 500 только там.
При клике на /assets/components/msdeliveryonmap/connector.php Failed to load
{"success":false,"message":"\u0414\u043e\u0441\u0442\u0443\u043f \u0437\u0430\u043f\u0440\u0435\u0449\u0451\u043d.","total":0,"data":[],"object":{"code":401}}
В error.log на хосте, нет ошибок.
Напиши в личку данные от бекенда, пожалуйста.
Спасибо, готово! Была утрачена совместимость с ранними версия PHP, относительно 5.5. Обновил пакет на твоём сайте.
Я наверное первый бета-тестер)Пакет тестировался на сайте заказчика пакета. Так что нет, ты не первый бета-тестер. Ты первый тестер с PHP 5.4. :)
Спасибо!
Координаты центра карты не передаются из параметров в бекенд, каждый раз при добавлении зоны, центр Москвы.
Это как совет, для будущих исправлений.
Это как совет, для будущих исправлений.
Кхм. Какие «теплые» воспоминания о временах, когда это пилилось, до Максима...) Жаль итогового варианта проекта со всеми красотами не дождалась, что бы «красиво» сдать)
А я совершенно не понял, о чём речь.
О том, откуда появился данный доп изначально ;-)
Настя, никакого Максима, насколько мне известно, рядом с данной задачей не было )
Павел, Настя принимала участие в работе по данной задаче, прежде чем задача добралась до тебя.
Павел, Настя принимала участие в работе по данной задаче, прежде чем задача добралась до тебя.
Миша, виновата, каюсь!!! Телефон гадский Макса, видимо, любит больше)) Конечно, я имела в виду тебя)
Всё встало на свои места. :)
После обновления minishop до версии 2.4.0-rc7. Перестала работать карта в корзине.
Такие ошибки:
Uncaught TypeError: msDom.tmp.ms2CallbacksClone.Order.add.response.success is not a function
default.js: 163
и
Uncaught TypeError: msDom.tmp.ms2CallbacksClone.Order.getcost.response.success is not a function
default.js: 180
Подскажите пожалуйста решение.
Такие ошибки:
Uncaught TypeError: msDom.tmp.ms2CallbacksClone.Order.add.response.success is not a function
default.js: 163
и
Uncaught TypeError: msDom.tmp.ms2CallbacksClone.Order.getcost.response.success is not a function
default.js: 180
Подскажите пожалуйста решение.
Спасибо, скоро решу проблему. А вообще лучше писать в поддержку дополнения в modStore.pro.
Поправил совместимость.
Спасибо большое, работает! )
А вообще лучше писать в поддержку дополнения в modStore.pro.Я думал там только отзывы можно писать.
Подскажите, пожалуйста. Планируется интернет-магазин по доставке блюд из ресторана и нужно рассчитывать стоимость в зависимости от расстояния. Ресторанов несколько.
Данный плагин подойдет?
Данный плагин подойдет?
По первому впечатлению — да. Вообще советую перечитать пост повнимательнее, ибо там описано, что требуется добавить для расчёта доставки, а именно:
1) Список автомобилей,
2) Список зон доставки,
3) Далее привязать зоны к автомобилям.
4) И важно то, чтобы у товаров были указаны длина и объём.
Но!.. В вашем случае, я думаю, длина и объём будет не важен. У вас стоимость доставки фиксированная для любого кол-ва заказанных блюд, верно? Вам нужно формировать цену только в зависимости от расстояния от точки старта? В таком случае, добавляете один автомобиль с заведомо большим объёмом и длиной (например: 999999). И добавляете зоны доставки (расстояния, по которым будет формироваться стоимость доставки). Далее привязываете эти расстояния к ранее добавленному автомобилю и выставляете необходимые параметры стоимости доставки (за км, либо фиксированную). Вот и всё, вроде как. Если что-то будет не ясно — пишите в службу поддержки компонента в modStore.pro.
1) Список автомобилей,
2) Список зон доставки,
3) Далее привязать зоны к автомобилям.
4) И важно то, чтобы у товаров были указаны длина и объём.
Но!.. В вашем случае, я думаю, длина и объём будет не важен. У вас стоимость доставки фиксированная для любого кол-ва заказанных блюд, верно? Вам нужно формировать цену только в зависимости от расстояния от точки старта? В таком случае, добавляете один автомобиль с заведомо большим объёмом и длиной (например: 999999). И добавляете зоны доставки (расстояния, по которым будет формироваться стоимость доставки). Далее привязываете эти расстояния к ранее добавленному автомобилю и выставляете необходимые параметры стоимости доставки (за км, либо фиксированную). Вот и всё, вроде как. Если что-то будет не ясно — пишите в службу поддержки компонента в modStore.pro.
Спасибо за ответ!
При доставке более 1500 руб. доставка бесплатная. И еще есть до 10 км стоимость, свыше 10км и удаленные районы.
При доставке более 1500 руб. доставка бесплатная. И еще есть до 10 км стоимость, свыше 10км и удаленные районы.
На счёт бесплатной доставки: напишите в поддержку пакета, как настроите всё остальное. По-умолчанию этого не предусматривается, но там не сложно дописать это на месте.
По второй части сообщения — не понял. Если можно, опишите подробнее, что имелось ввиду.
По второй части сообщения — не понял. Если можно, опишите подробнее, что имелось ввиду.
Дело в том, что пакет я еще не купила, хочу сначала выяснить подойдёт ли он для моих целей.
Насколько я понял задачу — думаю, что подойдёт.
Здравствуйте!
Можно ли с помощью этого компонента сделать расчёт стоимости доставки за каждый километр от границ многоугольника?
К примеру, доставка в пределах МКАДа бесплатная, а за пределы — фикс. стоимость за каждый км.
(Расстояние нужно считать от границ МКАДа, не от склада то есть)
Можно ли с помощью этого компонента сделать расчёт стоимости доставки за каждый километр от границ многоугольника?
К примеру, доставка в пределах МКАДа бесплатная, а за пределы — фикс. стоимость за каждый км.
(Расстояние нужно считать от границ МКАДа, не от склада то есть)
Без допила — нет. С допилом — возможно. Пишите, если есть бюджет на допил, проверю, реализуемо ли это вообще.
Добрый день!
Возможно ли в данном компоненте добавление нескольких точек старта?
Возможно ли в данном компоненте добавление нескольких точек старта?
Увы, нет.
На разных контекстах поставил свои точки старта. Сейчас буду тестировать. Единственное, что не понятно как поставить разную стоимость зоны в зависимости от контекста и возможно ли это?
Нет, это нельзя сделать.
Возможно ли указать на карте ОДИН район (центр), добавив ему доставку 500.
А все что за пределами района(микрорайноны) оценивать в 700 без отрисовки доп зон?
А все что за пределами района(микрорайноны) оценивать в 700 без отрисовки доп зон?
А такой вопрос, у меня выскакивает ошибка. Это с чем связано, блокирует?
api-maps.yandex.ru/services/search//v2/?callback=id_159259467443652378378&text=55.75396%2C37.620393&format=json&rspn=0&lang=ru_RU&token=a1ae8b8fdcb424fa45c938cc1840d0e6&type=geo&properties=addressdetails&geocoder_sco=latlong&origin=jsapi2Geocoder:1 Failed to load resource: the server responded with a status of 403 (Forbidden)
Отдает ответ вот такой
{
statusCode: 403,
error: «Forbidden»,
message: «Key is required»
}
api-maps.yandex.ru/services/search//v2/?callback=id_159259467443652378378&text=55.75396%2C37.620393&format=json&rspn=0&lang=ru_RU&token=a1ae8b8fdcb424fa45c938cc1840d0e6&type=geo&properties=addressdetails&geocoder_sco=latlong&origin=jsapi2Geocoder:1 Failed to load resource: the server responded with a status of 403 (Forbidden)
Отдает ответ вот такой
{
statusCode: 403,
error: «Forbidden»,
message: «Key is required»
}
Добрый день. Я так понимаю, что для работы компонента все же нужно платную версию api использовать?
К примеру из корзины мы передаем значение адреса доставки в письмо или в админку modx.
К примеру из корзины мы передаем значение адреса доставки в письмо или в админку modx.
Нет. Можно юзать беслптаную. Главное выпустите ключ. И ознакомьтесь с правилами бесплатного ключа tech.yandex.ru/maps/jsapi/doc/2.1/terms/index-docpage/#index__conditions
Подскажите, а можно ли как-нибудь ограничить поиск не по всему миру, а по конкретной области скажем в России или городу?
Все вопросы в ТП на Модстор, пжл.
Приветствую. Кто-нибудь в курсе, есть ли подобный модуль, но только с использованием гугл карт, а не яндекса?
Здравствуйте.
Подскажите, как можно получить название или id зон доставки. Т.е. планируется при оформлении заказа, в зависимости от выбранной зоны делать то или иное действие.
Подскажите, как можно получить название или id зон доставки. Т.е. планируется при оформлении заказа, в зависимости от выбранной зоны делать то или иное действие.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.