Зв'язатися з нами

Доставка за КАД: расчёт по километрам

Доставка за КАД: расчёт по километрам (xlogic.ringdelivery) - рішення для Бітрікс

Доставка за КАД: расчёт по километрам

0
2 800 грн.
Доставка за КАД: расчёт по километрам (xlogic.ringdelivery) - рішення на Бітрікс

Доставка за КАД: расчёт по километрам

Служба доставки для модуля «Интернет-магазин», стоимость которой зависит от расстояния по дорогам от кольцевой дороги города до адреса покупателя. Адрес внутри кольцевой — 0 км, за ней — расстояние по реальному маршруту, а не по прямой. Контур КАД Санкт-Петербурга встроен в модуль, контур любого другого города (МКАД, ЦКАД, кольцевые Казани, Екатеринбурга и др.) загружается из файла.

Кому подходит
  • Магазинам с курьерской доставкой за КАД или МКАД, где цена растёт с каждым километром: стройматериалы, мебель, техника, вода, корма.
  • Доставке еды и цветов: зона «центр» со своей ценой, бесплатная доставка от суммы заказа, срок доставки.
  • Магазинам с несколькими городами: у каждой службы доставки свой контур и свой тариф.

Как считается стоимость
  1. Адрес из свойства заказа вместе с городом из местоположения покупателя переводится в координаты геокодером Яндекса. Если найден не дом, а улица или посёлок, покупателя просят уточнить адрес.
  2. Если точка внутри контура кольцевой дороги, расстояние равно 0 км.
  3. Иначе одним запросом к серверу маршрутов OSRM (данные OpenStreetMap) считаются маршруты от нескольких ближайших точек кольцевой дороги, берётся самый короткий.
  4. Стоимость считается по тарифу службы доставки и условиям: базовая цена, километры, наценка за вес, бесплатная доставка от суммы, минимальная стоимость, округление.

Тариф
  • Три способа расчёта: по цене за километр; фиксированная цена по диапазонам («до 10 км — 500 руб., до 30 км — 900 руб.»); своя цена километра в каждом диапазоне — более дальняя доставка никогда не стоит дешевле более близкой.
  • Базовая цена, бесплатные километры, максимальное расстояние доставки, округление расстояния до целого километра или до 0,1 км.
  • Условия: минимальная стоимость, округление цены вверх до 10 или 50 руб., бесплатная доставка от суммы заказа (можно только в пределах заданного расстояния), наценка за каждый килограмм сверх веса, входящего в цену.
  • Срок доставки: общий или свой у каждого диапазона расстояний — покупатель видит его рядом с доставкой.
  • Зоны: район города со своей базовой ценой, например центр дороже или дешевле остального города.
  • Ограничения по местоположению, сумме, весу и платёжной системе — штатные ограничения служб доставки.

Несколько городов
  • Все контуры собраны в одной таблице на вкладке «Контуры» настроек модуля: кольцевая дорога любого города или зона внутри города.
  • Контур добавляется вручную, из файла GeoJSON или KML (нарисованного в Конструкторе карт Яндекса или на geojson.io) или кнопкой встроенного контура КАД Санкт-Петербурга.
  • Каждая служба доставки считает от своего контура: для двух городов — две службы с разными контурами и ограничениями по местоположению.

Оформление заказа
  • Покупатель видит расстояние, цену и срок доставки, а если до бесплатной доставки не хватает суммы — сколько осталось добрать.
  • Адрес можно ввести текстом или выбрать меткой на карте Яндекса в оформлении заказа (sale.order.ajax): адрес подставляется в заказ, стоимость пересчитывается.
  • Если адрес не найден, указан неточно или дальше максимального расстояния, покупатель видит причину, и заказ не оформляется.
  • При сбое сервисов заказ принимается с пометкой «Проблемный», чтобы не останавливать продажи; поведение настраивается.

Контроль
  • Проверка расчёта по любому адресу в настройках модуля: найденный адрес, точность, расстояние, цена и срок по каждой службе доставки, ошибки в настройках тарифа.
  • Журнал расчётов: адрес покупателя, найденная точка на карте, расстояние и причина ошибки — чтобы ответить на вопрос «почему доставка столько стоит». Срок хранения настраивается.
  • Уведомление администратору, если геокодер или сервер маршрутов перестали отвечать или не настроены; снимается само, когда расчёт снова работает.
  • Кеширование расчётов по адресу и ограничение числа новых адресов на посетителя: квота геокодера не расходуется на повторы и перебор адресов.
  • Все настройки модуля, контуры и журнал — на одной странице; тариф — в карточке службы доставки.

Что нужно для работы
  • Модуль «Интернет-магазин» (sale) и оформление заказа на штатном компоненте sale.order.ajax.
  • Ключ API Яндекса с доступом к HTTP-геокодеру. Условия использования бесплатного ключа, в том числе для интернет-магазинов, уточняйте у Яндекса.
  • Сервер маршрутов OSRM: публичный router.project-osrm.org подходит для небольшой нагрузки, для высокой — свой сервер (инструкция по развёртыванию в Docker есть в настройках модуля).

Что нужно знать
  • Маршруты строятся по данным OpenStreetMap и могут отличаться от Яндекс Карт, особенно в сельской местности.
  • Расчёт выполняется во время оформления заказа: при медленном ответе сервисов оформление замедляется.
  • Для каждого контура, от которого считает служба доставки, новый адрес — отдельный запрос к геокодеру.
  • Журнал расчётов содержит адреса покупателей (персональные данные); срок их хранения задаётся в настройках, журнал можно отключить.

Наш модуль вже успішно використовують на наших проектах