mscDistance — стоимость доставки по городу /району
mscDistance в магазине Simple Dream
Привет.
Представляю вам компонент расчета стоимости доставки в зависимости от величины пути доставки.
Демо как обычно тут.
Описание компонента
- Координаты склада — координаты склада в формате `57.987211,56.252048`
- Город доставки — указать город в пределах которого осуществляется доставка товаров
- Регион доставки — указать регион в пределах которого осуществляется доставка товаров
- Улица, дом доставки — улица, дом от которого идет расчет доставки, фактически адрес склада
- Язык возвращаемых ответов — язык на котором следует возвращать ответ
- Система измерений — возвращает расстояние в километрах / метрах (метрическая — metric) или в милях / футах (имперская — imperial)
- Объем товара по умолчанию — объем товара [miniShop2][1] для которого не задан размер
- Поправочный коэф-т — возможно ввести некую корректировку объема ( объем = объем * коэф-т )
- Разделитель размера товара — символ разделитель в поле `size` [miniShop2][1]
- Единицы измерения размера товара — доступны `мм` и `см`
- Максимальная дистанция на которую осуществляется доставка, указывается в метрах (футах)
- Максимально допустимый объем доставки
- Максимально допустимый вес доставки
- Минимальная плата за доставку, активна при расчете меньшей стоимости доставки
- Тарифная сетка — указывается в формате json. Например — `{«5»:10,«10»:15,«15»:20}`
В miniShop2 :: Настройки :: Варианты доставки
- Активировать вариант доставки
- Назначить необходимые варианты оплаты
Настройки системы :: miniShop2
- Класс обработчик заказа — `mscdOrderHandler`
- Класс обработчик корзины — `mscdCartHandler`
Практически близнец сниппета [msOrder][2]. Параметры:
* tplOuter — Обёртка для вывода результатов работы сниппета
* tplPayment — Чанк для оформления метода оплаты
* tplDelivery — Чанк для оформления способа доставки
* tplEmpty — Чанк, который выводится при отсутствии результатов
* tplSuccess — Чанк с сообщением об успешной работе сниппета
* front_js — Скрипт фронтенда
* front_css — Скрипт фронтенда
* region_on — Автоподстановка региона доставки ДА/НЕТ
* city_on — Автоподстановка города доставки ДА/НЕТ
Чанк tpl.msOrder.Distance.outer
Стандартный чанк вывода + вывод инфо о доставке + построение карты маршрута
Необходимо:
Для правильного расчета стоимости доставки товара
- Каждому товару задать размер
- Каждому товару задать вес
Если не указана тарифная сетка, стоимость доставки = величина пути * Стоимость ед/рст.
Если указана тарифная сетка, например — `{«5»:10,«10»:15,«15»:20}` то расчет стоимости идет следующим образом:
Допустим величина пути = 11км, стоимость доставки = 5 * 10 + 5 * 15 + 1 * 20 = 145 руб.
Поблагодарить автора
Отправить деньги
Комментарии: 5
Очень хорошее дополнение.
1) Было бы интересно сделать независимо от размера(есть правда стандартный объем) и веса. Например, у моего клиента есть услуга вызова мусоровоза, ассенизатора и прочего. Берет только за дальность. Может быть и вес стандартный тогда сделать?
2) Если есть разделение регион/город, почему бы не сделать доставку по городу бесплатно(или фиксированная сумма). а выезд за город по тарифу?
1) Было бы интересно сделать независимо от размера(есть правда стандартный объем) и веса. Например, у моего клиента есть услуга вызова мусоровоза, ассенизатора и прочего. Берет только за дальность. Может быть и вес стандартный тогда сделать?
2) Если есть разделение регион/город, почему бы не сделать доставку по городу бесплатно(или фиксированная сумма). а выезд за город по тарифу?
1) стоимость доставки расчитывается исходя из дальности пути и тарифной сетки. Вес и объем выставляется только как некий ограничитель.
(возможно в дальнейшем доработаю логику расчета исходя от веса и объема, пока так...)
2) Насчет разделения региона / города не думал — опять же тут можно отрегулировать тарифной сеткой.
к примеру взять за город дальность пути не более 15 км, а остальное считать как район.
и записать ТС в виде `{«15»:0,«25»:20,«45»:25}`
(возможно в дальнейшем доработаю логику расчета исходя от веса и объема, пока так...)
2) Насчет разделения региона / города не думал — опять же тут можно отрегулировать тарифной сеткой.
к примеру взять за город дальность пути не более 15 км, а остальное считать как район.
и записать ТС в виде `{«15»:0,«25»:20,«45»:25}`
т.к. лички нет, сюда кидаю: prntscr.com/4n0chv
спс. поправил…
Разместил дополнение в магазине: store.simpledream.ru/packages/ecommerce/mscdistance.html
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.