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

Наша компанія займається розробкою, підтримкою та обслуговуванням рішень на Бітрікс та Бітрікс24 будь-якої складності. Від простих односторінкових сайтів до складних інтернет-магазинів, CRM систем з інтеграцією 1С та телефонії. Досвід розробників підтверджено сертифікатами від вендора.
Пропоновані послуги
Показано 1 з 1 послугУсі 1626 послуг
Розробка сайту транспортної компанії на 1С-Бітрікс
Складна
від 1 тижня до 3 місяців
Часті питання

Наші компетенції:

Етапи розробки

Останні роботи

  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851
  • 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
    585
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    751
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    657
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    989

Розробка сайту транспортної компанії на 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 або власний приймач)
  • На стороні Bitrix — кастомна сторінка з картою (Яндекс.Карти API або Leaflet)
  • Координати підтягуються через AJAX кожні 30-60 секунд з API трекера
  • Клієнт вводить номер рейсу або вибирає з розкладу, бачить точку на карті й розрахункове час прибуття

Інтеграція з GPS — окремий модуль. Bitrix виступає фронтендом, трекер — джерелом даних. Зберігати історію координат у Bitrix не потрібно — вона залишається в системі моніторингу.

B2B-портал для корпоративних клієнтів

Корпоративні клієнти — основний дохід транспортної компанії. Їм потрібен не публічний сайт, а закритий портал:

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

Реалізується через групи користувачів Bitrix з обмеженням доступу до розділу сайту. Документообіг — через інтеграцію з 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, й час відповіді калькулятора.