Сайт грузоперевозок с расчётом стоимости маршрута
Расчёт стоимости перевозки складывается из четырёх слоёв: базовый тариф по расстоянию, поправка на характеристики груза, поправка на условия погрузки и разгрузки, дополнительные услуги. Цена за километр — это только первый слой, и попытка свести к нему всё остальное как раз и делает калькулятор бесполезным. Разберу устройство по слоям.
Слой первый: расстояние
Первое, что делает калькулятор, — превращает два адреса в число километров. Способов три, и каждый имеет цену.
Маршрутный сервис. Точно, учитывает дороги, стоит денег за обращения и требует запасного варианта на случай недоступности.
Таблица расстояний между городами. Бесплатно, мгновенно, но работает только для межгорода и не учитывает адрес внутри города.
Зоны. Город делится на пояса — центр, до кольцевой, ближний пригород, дальний. Внутри пояса цена фиксированная. Грубо, зато понятно клиенту и не требует внешних сервисов.
Для внутригородских перевозок зоны обычно точнее, чем километраж: пробег в центре и пробег по трассе — это разное время работы машины, а платите вы именно за время.
Слой второй: груз
Здесь появляется величина, о которой заказчики узнают позже всех, — габаритный вес. Машина заполняется либо по массе, либо по объёму, и что кончится раньше, зависит от груза.
Тонна металла и тонна утеплителя занимают несовместимые объёмы. Поэтому в расчёт идёт большее из двух: фактический вес и объём, пересчитанный по коэффициенту плотности.
Дальше выбирается тип машины. Не клиентом из списка — калькулятором, по весу и габаритам. Клиент часто не знает, что его груз не влезет в газель, и подбор машины системой снимает половину ошибочных заявок.
Отдельные признаки груза, каждый со своим множителем: длинномер, негабарит, хрупкое, требующее температурного режима, опасное.
Слой третий: погрузка и разгрузка
Слой, который чаще всего забывают, а он даёт основную часть перерасходов.
Этаж и наличие лифта. Подъём на пятый этаж без лифта — это не надбавка в процентах, это отдельная работа с почасовой оплатой.
Пронос от машины до двери. Двор перекрыт шлагбаумом, парковка в ста метрах — считается отдельно.
Количество грузчиков и время. Ожидание на погрузке сверх включённого норматива тарифицируется по часам.
Пропуск в зону ограничения движения. Для центра крупного города это фиксированная сумма и заранее оформленный документ, а не сюрприз в день перевозки.
Слой четвёртый: дополнительные услуги
Упаковка, сборка и разборка, вывоз мусора, страхование груза, документы для юрлиц, отправка возвратных экземпляров.
Каждая позиция — отдельная строка с ценой в админке, а не общий процент к сумме. Иначе на каждое изменение прайса вы будете писать разработчику.
Как это собирается в число
Порядок вычисления фиксированный, и порядок здесь важен.
Сначала база: минимальная стоимость подачи плюс расстояние по тарифу выбранного типа машины. Минималка обязательна — перевозка на два километра не может стоить двести рублей.
Затем множители по грузу — они применяются к базе. Затем прибавляются фиксированные суммы за погрузку, разгрузку и допуслуги — они не множатся на расстояние. Затем надбавки за время: ночь, выходной, срочная подача.
В конце — округление вверх до сотни и вывод вилки: минимум и максимум с разбросом в пределах десяти-пятнадцати процентов. Точная сумма даётся только тогда, когда все параметры однозначны.
Расшифровка обязательна. Клиент должен видеть, из чего сложилось: подача столько, километраж столько, подъём столько. Голое число вызывает спор, расшифровка — вопрос по конкретной строке.
Что происходит после расчёта
Заявка уходит диспетчеру со всеми введёнными параметрами, а не как «клиент интересовался перевозкой». Адреса, вес, объём, тип машины, этажи, дата.
Дальше начинается работа, которая на сайте обычно недооценена: карточка заказа, статусы, документы, трек для клиента. Логика ровно та же, что мы делали в мебельном проекте ToYou Wood, где сайт после оплаты сам создаёт отправление и печатает этикетку — доставка идёт через агрегатор с 1 240 пунктами выдачи, и человеку остаётся приклеить наклейку.
В перевозках роль агрегатора играет ваша собственная диспетчерская, но принцип не меняется: данные, введённые клиентом, должны доехать до исполнителя без ручного переписывания.
Тарифы должны лежать в админке
Топливо дорожает, ставки меняются, вводятся сезонные коэффициенты. Если тарифная сетка зашита в код, каждое изменение — это задача разработчику, и через полгода на сайте будут прошлогодние цены.
Правильно: таблица тарифов, множителей и допуслуг редактируется в панели. Изменение вступает в силу сразу, история изменений сохраняется.
Права разводятся: диспетчер видит заявки и заказы, но не видит и не меняет тарифы. Это тот же узел, что почти в каждом нашем проекте, и здесь он особенно уместен — тарифная сетка это ваша себестоимость плюс маржа.
Что показывать клиенту на выходе
Форма результата важнее самой формулы. Разброс между «от 8 400 ₽» и «8 400 ₽» — это разница между спокойным разговором и претензией на месте погрузки.
Показывайте четыре блока. Итоговая вилка. Расшифровка по строкам. Что включено в цену — километраж, время подачи, количество грузчиков, норматив ожидания. Что оплачивается сверх — превышение времени, платные дороги, пропуск, подъём без лифта.
Последний блок и есть защита от конфликта. Перевозки — отрасль, где спор почти всегда идёт не о тарифе, а о том, что клиент считал включённым.
Рядом с расчётом дайте кнопку «сохранить расчёт»: ссылка с параметрами, которую человек отправит начальнику или сравнит с другим перевозчиком. Заявки часто приходят через день после расчёта, и такая ссылка возвращает клиента ровно туда, где он остановился.
Когда калькулятор не нужен
Если вы работаете по договорам с десятью постоянными клиентами и у каждого своя согласованная сетка — калькулятор на сайте не нужен, нужен личный кабинет с их тарифами.
Если перевозки нетиповые — проектные грузы, спецтехника, международные — расчёт всё равно делает человек, и калькулятор даст ложные ожидания. Здесь честнее форма с описанием груза и обещанием посчитать за час.
И если машин две, а заявок пять в день — расчёт быстрее сделать в разговоре. Калькулятор окупается на потоке однотипных запросов, а не на объёме сайта.
Коротко
Расчёт строится слоями: расстояние или зоны, характеристики груза с габаритным весом и подбором машины, условия погрузки и разгрузки, дополнительные услуги. Множители применяются к базе, фиксированные суммы прибавляются после, результат выдаётся вилкой с расшифровкой по строкам. Тарифная сетка живёт в админке и закрыта от диспетчера. При нетиповых грузах и малом потоке заявок калькулятор вреднее ручного расчёта.
Первый разговор — разбор задачи: нужна ли вам система или хватит одной страницы. Без обязательств и без счёта.
Частые вопросы
Можно ли брать расстояние просто по прямой между городами?
Для внутригородских перевозок нельзя: прямая занижает реальный пробег в полтора-два раза. Для магистральных направлений прямая тоже плоха, но по другой причине — она игнорирует объезды и паромы. Практический компромисс: маршрутный сервис для расчёта, плюс сохранённая таблица расстояний между частыми парами городов на случай, если сервис недоступен.
Мы не хотим показывать реальные тарифы конкурентам. Что делать?
Показывайте вилку, а не точную сумму, и не раскрывайте состав коэффициентов. Конкурент всё равно узнает ваши цены за один звонок под видом клиента, а вот клиент без ориентира просто уйдёт. Полностью закрытый расчёт с отправкой на почту работает хуже открытой вилки.
Сколько времени занимает разработка такого калькулятора?
Расчёт по зонам с админкой тарифов — это работа в рамках сайта с админкой, от 100 000 ₽ и 7–14 дней. Полноценный расчёт с маршрутным сервисом, габаритным весом, типами машин и передачей заявки в диспетчерскую — уровень платформы, от 150 000 ₽ и от 14 дней.
Те, что не помогают, мы переписываем — по этой кнопке и решаем, какие именно.
Ещё по теме
Чек-лист владельца сайта по обработке персональных данных — что разместить, что настроить, что проверить перед запуском.
тем, кто заказывает ToYou Wood: сайт мебели на заказ с расчётом сметы по размерамИстория проекта: сайт считает смету по размерам, принимает оплату с чеком и печатает этикетку — что мы делали и что переделывали.
тем, кто заказывает WordPress с двадцатью плагинами — это долг, а не экономияПочему набор дополнений выглядит как бесплатная функциональность, а ведёт себя как кредит с растущей ставкой.
тем, кто заказывает