Микросервис «Расчет стоимости доставки» предназначен для централизованного управления тарифами на доставку и автоматизированного расчета стоимости доставки в зависимости от склада отгрузки, точки доставки и веса груза.
Он может быть интегрирован во все программные продукты компании (ERP, внешний сайт, b2b-портал и т.д.) через REST API.
Микросервис разработан на framework laravel (PHP + PostgresSQL). Для построения карты используются Яндекс.Карты с доступом через коммерческий аккаунт.
Функционал для клиента
Публичная часть — калькулятор для проверки тарифов и ручного расчета стоимости транспортировки груза. В нем отображаются тарифы на перевозку, для разных видов транспорта предлагается несколько вариантов стоимости.
Функционал для администратора
В административной части редактируются справочники, необходимые для работы калькулятора:
- склады;
- виды транспортных средств;
- тарифы.
Администратору доступны следующие функции:
- управление пользователями;
- просмотр логов изменений данных;
- просмотр логов обращений по API (запрос / ответ).
Настройка
В сервисе предусмотрено три роли.
- Администратор. Главная роль, которой доступны все функции.
- Менеджер. Этой роли доступны управление складами, тарифами, видами транспортных средств.
- Логист. Этой роли доступно только управление тарифами.
Управление тарифами
Менеджер настраивает тарифы для определенного склада и транспортного средства.
На карте можно разметить зоны, для каждой зоны указывается стоимость доставки.
При наведении на зону появляется подсказка со стоимостью доставки.
Для каждой зоны в административной части сервиса настраиваются название и стоимость доставки.
Зона создается на карте. Если на карте границы одной зоны пересекаются с границами другой, то система предлагает изменить границы.
В микросервисе поддерживается режим «зона в зоне». Это позволяет выделить внутри зоны недоступные для доставки области, например, Московский кремль, или разметить концентрические зоны, например, Бульварное / Садовое / ТТК / МКАД для Москвы.
Тарифы можно копировать и в дальнейшем редактировать. Например, если у компании несколько видов транспортных средств, и для них настроены одинаковые географические зоны доставки, то можно разметить зоны для одного вида, скопировать тариф и задать стоимость каждой зоны для другого вида.
REST API
REST API задокументировано в swagger, позволяет полностью управлять микросервисом: создавать, активировать / деактивировать записи; автоматически задавать запросы на расчет и получать результаты расчета по тарифу. Администратор может выдавать client_id и secret для внешних клиентских приложений, которые будут подключаться к REST API. Он же может отозвать (удалить) ранее выданные доступы. В этом случае клиентское приложение перестанет иметь доступ к API.
Дополнительные возможности
Микросервис можно доработать для использования расчетных тарифов, например, по километражу. В этом случае может быть указана базовая зона и стоимость километра, и тариф будет складываться из стоимости базовой зоны + из километража по автомобильным дорогам (например, доставка за МКАД: 1500 рублей + 30 рублей/километр)