Розробка сайту таксі на 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С-Бітрікс

Сайт служби таксі — це не візитівка з номером телефону, а робочий інструмент, який приймає замовлення, розраховує вартість і передає дані в диспетчерський центр. На 1С-Бітрікс така система збирається зі стандартних модулів платформи та кількох зовнішніх API, при цьому вся бізнес-логіка залишається керованою через адміністративну панель.

Архітектура калькулятора маршруту з тарифікацією

Калькулятор вартості поїздки — центральний елемент сайту. Його завдання: користувач вводить дві точки, система показує відстань, приблизний час і ціну за обраним тарифом. Звучить просто, але всередині — ланцюжок кількох компонентів.

Геокодування та побудова маршруту. На фронтенді підключається Yandex.Maps JavaScript API або Google Maps JavaScript API. При введенні адреси спрацьовує Suggest API — підказки адрес. Після вибору точок A і B запит іде на Yandex Router API (або Google Directions API) для отримання маршруту. API повертає polyline, відстань у метрах і час у секундах.

Вибір між Яндексом і Google залежить від географії роботи. Для Росії та СНД Яндекс дає точніші маршрути з урахуванням місцевих доріг. Для міжнародних перевезень — Google Directions.

Тарифна матриця в Highload-блоці. Тарифи зберігаються в Highload-блоці TaxiTariffs зі наступною структурою:

Поле HL-блоку Тип Призначення
UF_TARIFF_CODE Рядок Код тарифу (economy, comfort, business, minivan)
UF_TARIFF_NAME Рядок Відображаємо назва
UF_BASE_PRICE Число Подача, грн.
UF_PRICE_PER_KM Число Вартість за км
UF_PRICE_PER_MIN Число Вартість за хвилину
UF_MIN_ORDER Число Мінімальна вартість замовлення
UF_NIGHT_COEFF Число Коефіцієнт нічного тарифу
UF_ZONE_ID Прив'язка Зона дії (місто/передмістя/міжміське)

Формула розрахунку: max(UF_MIN_ORDER, UF_BASE_PRICE + відстань_км × UF_PRICE_PER_KM + час_хв × UF_PRICE_PER_MIN) × коефіцієнт. Коефіцієнт витягується з окремого HL-блоку зон — передмістя та міжміське дороже.

Серверна валідація. Фронтенд показує попередню вартість, але фінальний розрахунок обов'язково дублюється на сервері. AJAX-контролер приймає координати, заново запитує відстань через серверний виклик Router API і розраховує ціну за актуальними даними з HL-блоку. Це виключає підміну параметрів на клієнті.

Динамічна цінова політика. У HL-блоці TaxiSurge зберігаються підвищуючі коефіцієнти за часовими слотами та днями тижня. Обробник події OnBeforeOrderAdd перевіряє поточний час і застосовує коефіцієнт. Новорічна ніч, години пік, дощавий понеділок з ранку — все це налаштовується контент-менеджером без участі розробника.

Онлайн-замовлення та зв'язок з диспетчерською

Форма замовлення збирає дані: маршрут, тариф, час подачі (зараз або до визначеної години), побажання (дитяче крісло, кондиціонер, тиха поїздка). Після відправлення:

  1. Створюється елемент інфоблоку Orders зі статусом «Нове»
  2. Паралельно відправляється POST-запит в API диспетчерської системи (Таксі-Майстер, Maxoptra, власна система на WebSocket)
  3. Запускається агент CAgent, який через 30 секунд перевіряє статус — отримана чи відповідь від диспетчерської
  4. Клієнт отримує push-оновлення через SSE або polling-запит кожні 5 секунд

Інтеграція з конкретною диспетчерською реалізується через абстрактний клас DispatchConnector з методами sendOrder(), getStatus(), cancelOrder(). Під кожну систему пишеться адаптер. При зміні диспетчерського ПО змінюється лише адаптер, решта коду залишається незмінною.

Тарифи за класами

На сайті тарифи відображаються через компонент bitrix:news.list, прив'язаний до HL-блоку тарифів. Кожен клас — карточка з іконкою автомобіля, списком включених опцій і стартовою вартістю. Для візуального порівняння використовується табличний вивід:

  • Економ — базові автомобілі, мінімальна вартість подачі
  • Комфорт — кондиціонер, бутильована вода, автомобілі не старші 5 років
  • Бізнес — преміальні моделі, зустріч з табличкою, Wi-Fi
  • Мінівен — перевезення групи до 7 осіб, збільшений багажник

Адміністратор додає і редагує класи через стандартний інтерфейс Бітрікс. Якщо завтра з'явиться тариф «Вантажний» або «Дитячий» — достатньо створити новий елемент HL-блоку.

Мобільна адаптація

Для таксі мобільна версія — не доповнення, а основний канал. За статистикою галузі, 75–85% замовлень поступають зі смартфонів.

Верстка будується mobile-first. Калькулятор займає весь екран: карта зверху, поля введення адрес знизу — як в звичних додатках. Використовується CSS Grid з breakpoints на 360px, 768px і 1024px. Карта ініціалізується з gestureHandling: greedy для зручного масштабування одним пальцем.

Кнопка «Замовити» фіксується внизу екрану через position: sticky. Поля адреси при фокусі розкриваються на повний екран — імітація UX нативних додатків.

Додатково налаштовується PWA-маніфест: іконка на домашній екран, splash screen, робота при нестабільному з'єднанні через Service Worker з кешуванням статики.

Інтеграція з агрегаторами

Сайт таксі може виступати агрегатором або підключатися до існуючих. Реалізуються два сценарії:

Отримання замовлень від Яндекс.Таксі / Uber. Через Partner API агрегатора замовлення потрапляють в інфоблок Orders з позначкою джерела. Диспетчер бачить в єдиному списку як прямі замовлення з сайту, так і замовлення від агрегаторів.

Порівняння цін. На сторінці калькулятора можна вивести ціни від агрегаторів поряд з власними тарифами. Запит до API агрегатора робиться асинхронно, результат кешується в CStackCacheManager на 60 секунд.

SEO та локальне просування

Для таксі критична локальна видача. Налаштовуються:

  • Мікророзмітка Schema.org TaxiService з указанням зони обслуговування
  • Посадкові сторінки під маршрути — «Таксі з аеропорту Внукова», «Таксі на вокзал» — через інфоблок маршрутів з ЧПУ
  • Інтеграція з Яндекс.Бізнес та Google Business Profile через API
  • Автогенерація sitemap.xml модулем SEO Бітрікс

Сторінки маршрутів створюються через інфоблок: контент-менеджер додає точку А, точку Б, текст — система генерує URL, title, description за шаблоном.

Технічні вимоги до хостингу

Калькулятор генерує всплески AJAX-запитів. На кожен розрахунок — звернення до зовнішнього API і до бази тарифів. При 50 одночасних користувачах це дає 100–150 запитів на секунду.

Рекомендована конфігурація: VPS з 4 vCPU, 8 ГБ RAM, SSD. PHP 8.1+ з OPcache, Redis для кешування тарифів і сеансів. Nginx як reverse proxy з ліміт rate=10r/s на endpoint калькулятора — захист від перебору.

Відповіді Router API кешуються в Redis з TTL 300 секунд (маршрут не змінюється за 5 хвилин), що знижує кількість зовнішніх запитів на 60–70% і прискорює повторні розрахунки.