Разработка сайта транспортной компании на 1С-Битрикс

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Предлагаемые услуги
Показано 1 из 1 услугВсе 1626 услуг
Разработка сайта транспортной компании на 1С-Битрикс
Сложная
от 1 недели до 3 месяцев
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1175
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    811
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    564
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    747
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    655
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    976

Разработка сайта транспортной компании на 1С-Битрикс

Сайт транспортной компании — это не буклет с фотографиями автобусов. Клиент приходит с конкретной задачей: узнать, есть ли рейс Минск — Москва на пятницу, сколько стоит аренда автобуса на 45 человек, можно ли заказать трансфер из аэропорта. Если ответ нельзя получить за пару кликов — клиент уходит к агрегатору.

Центральный элемент такого сайта — система онлайн-бронирования с расчётом стоимости по тарифной сетке. Разберём её архитектуру.

Каталог услуг

Услуги транспортной компании разнородны, и это влияет на структуру. Инфоблок «Услуги» с разделами:

  • Регулярные рейсы — Минск — Москва, Минск — Вильнюс, расписание по дням
  • Аренда автобусов — почасовая, посуточная, под мероприятие
  • Корпоративные трансферы — доставка сотрудников, обслуживание по договору
  • Экскурсионные перевозки — маршруты по городам, туры

Каждый тип услуги требует разного набора параметров для бронирования. Регулярный рейс — это выбор даты и количества мест. Аренда автобуса — это маршрут, дата, количество часов, тип транспорта. Экскурсия — это готовый маршрут с фиксированной ценой за человека.

Для этого создаются отдельные инфоблоки или используется единый инфоблок с условными свойствами, активными в зависимости от раздела.

Онлайн-бронирование с тарифной сеткой

Бронирование — многошаговая форма, которая собирает параметры поездки и рассчитывает стоимость по тарифам. Разберём архитектуру на примере аренды автобуса.

Шаг 1: параметры поездки. Клиент заполняет:

  • Откуда — куда (города, адреса)
  • Дата и время подачи
  • Количество пассажиров
  • Тип поездки: в одну сторону / туда-обратно / почасовая аренда
  • Дополнительно: багаж, детские кресла, Wi-Fi в салоне

Шаг 2: выбор транспорта. На основе количества пассажиров система фильтрует автопарк и предлагает подходящие варианты. Клиент видит фото, характеристики, класс комфорта.

Шаг 3: расчёт стоимости. Здесь работает тарифная сетка.

Highload-блок TariffGrid:

Поле Тип Назначение
UF_VEHICLE_TYPE enumeration Микроавтобус / Автобус средний / Автобус большой
UF_COMFORT_CLASS enumeration Стандарт / Комфорт / VIP
UF_TARIFF_TYPE enumeration За км / За час / Фиксированный маршрут
UF_PRICE_PER_UNIT float Цена за единицу (км или час)
UF_MIN_HOURS integer Минимальный заказ в часах
UF_MIN_PRICE float Минимальная стоимость заказа
UF_CITY_FROM string Город отправления (для фиксированных маршрутов)
UF_CITY_TO string Город прибытия
UF_FIXED_PRICE float Фиксированная цена маршрута
UF_SEASON enumeration Низкий / Высокий / Праздничный
UF_VALID_FROM date Дата начала действия тарифа
UF_VALID_TO date Дата окончания действия тарифа

Highload-блок TariffSurcharge — наценки:

Поле Тип Назначение
UF_TYPE enumeration Ночная подача / Праздник / Международный / Багаж
UF_SURCHARGE_TYPE enumeration Процент / Фиксированная сумма
UF_VALUE float Значение наценки
UF_VEHICLE_TYPE enumeration К какому типу транспорта применяется

Алгоритм расчёта для аренды по километражу:

  1. Определить расстояние между точками. Варианты: Google Distance Matrix API, OSRM (open-source), справочник расстояний в отдельном Highload-блоке RouteDistance (для популярных направлений)
  2. Выбрать тариф из TariffGrid по типу транспорта, классу комфорта и дате (сезон)
  3. Базовая стоимость = расстояние * UF_PRICE_PER_UNIT
  4. Проверить минимум: если базовая < UF_MIN_PRICE, взять UF_MIN_PRICE
  5. Применить наценки из TariffSurcharge: ночная подача (до 7:00 или после 23:00), международный маршрут, праздничный день
  6. Для «туда-обратно» — удвоить километраж, но с коэффициентом 0.85-0.9 (скидка на обратный путь)
$tariff = TariffGridTable::getRow([
    'filter' => [
        'UF_VEHICLE_TYPE' => $vehicleType,
        'UF_COMFORT_CLASS' => $comfortClass,
        'UF_TARIFF_TYPE' => 'per_km',
        '<=UF_VALID_FROM' => $tripDate,
        '>=UF_VALID_TO' => $tripDate,
    ],
]);

$basePrice = max(
    $distance * $tariff['UF_PRICE_PER_UNIT'],
    $tariff['UF_MIN_PRICE']
);

// Наценки
$surcharges = TariffSurchargeTable::getList([
    'filter' => ['UF_VEHICLE_TYPE' => $vehicleType],
])->fetchAll();

foreach ($surcharges as $s) {
    if (isSurchargeApplicable($s, $tripDate, $tripTime, $isInternational)) {
        $basePrice = applySurcharge($basePrice, $s);
    }
}

Для почасовой аренды расчёт проще: количество часов * тариф за час, с проверкой минимума. Для фиксированных маршрутов — берётся UF_FIXED_PRICE напрямую.

Шаг 4: оформление заказа. После расчёта клиент подтверждает бронирование. Создаётся заказ через \Bitrix\Sale\Order::create(). Свойства заказа содержат все параметры поездки: маршрут, дату, тип транспорта, расчётную стоимость. Оплата — предоплата 30-50% через онлайн-эквайринг или полная оплата при посадке.

Автопарк

Инфоблок «Автопарк» — карточка каждого транспортного средства:

  • Тип — микроавтобус, автобус средний, автобус большой
  • Вместимость — количество пассажирских мест
  • Класс комфорта — стандарт, комфорт, VIP
  • Характеристики — кондиционер, Wi-Fi, розетки, TV, туалет, багажное отделение
  • Фото — множественное файловое свойство, галерея экстерьера и интерьера
  • Год выпуска, марка/модель

На странице каталога автопарка — фильтрация по вместимости и классу. При бронировании — автоматический подбор транспорта по количеству пассажиров: если клиент указал 20 человек, показываем автобусы от 20 мест и выше.

Отслеживание рейсов

Для регулярных рейсов актуальна функция отслеживания в реальном времени. Реализация:

  • GPS-трекеры на транспорте отправляют координаты на сервер (WIALON, Galileosky или свой приёмник)
  • На стороне Битрикса — кастомная страница с картой (Яндекс.Карты API или Leaflet)
  • Координаты подтягиваются через AJAX каждые 30-60 секунд из API трекера
  • Клиент вводит номер рейса или выбирает из расписания, видит точку на карте и расчётное время прибытия

Интеграция с GPS — отдельный модуль. Битрикс выступает фронтендом, трекер — источником данных. Хранить историю координат в Битриксе не нужно — она остаётся в системе мониторинга.

B2B-портал для корпоративных клиентов

Корпоративные клиенты — основной доход транспортной компании. Им нужен не публичный сайт, а закрытый портал:

  • Авторизация по договору — менеджер компании-клиента входит под своей учёткой
  • Подача заявок — форма заказа с преднастроенными маршрутами (ежедневный трансфер сотрудников)
  • Акты и счета — выгрузка документов из 1С через интеграцию
  • История заказов — все поездки по договору с фильтрацией по дате, маршруту
  • Баланс — предоплатный счёт с историей пополнений и списаний

Реализуется через группы пользователей Битрикса с ограничением доступа к разделу сайта. Документооборот — через интеграцию с 1С:Бухгалтерия (HTTP-сервисы).

SEO для маршрутных запросов

Транспортные компании получают основной поисковой трафик по запросам вида «автобус Минск Москва», «трансфер аэропорт Минск». Под каждый популярный маршрут создаётся посадочная страница — элемент инфоблока «Маршруты» с SEO-полями: ELEMENT_META_TITLE, ELEMENT_META_DESCRIPTION, уникальным описанием маршрута, расписанием рейсов и встроенным виджетом бронирования.

Для генерации посадочных страниц можно использовать шаблонный подход: один шаблон компонента bitrix:news.detail, в который подставляются данные маршрута. SEO-тексты пишутся уникальные — шаблонные тексты с подстановкой городов поисковики давно распознают.

Сроки реализации

Масштаб Состав Срок
Небольшой перевозчик (5-10 маршрутов) Каталог услуг, автопарк, форма заявки, маршрутные страницы 6-8 недель
Средняя компания + онлайн-бронирование с тарифной сеткой, оплата, расписание рейсов 12-16 недель
Крупный перевозчик + B2B-портал, GPS-отслеживание, интеграция с 1С, мультиязычность 20-26 недель

Техническое замечание

Расчёт расстояний — узкое место. Google Distance Matrix API платный и имеет лимиты. Для популярных маршрутов лучше предрассчитать расстояния и сохранить в Highload-блок RouteDistance, обращаясь к API только для нестандартных запросов. Это снижает и стоимость API, и время ответа калькулятора.