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

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Предлагаемые услуги
Показано 1 из 1 услугВсе 1626 услуг
Разработка сайта такси на 1С-Битрикс
Сложная
от 1 недели до 3 месяцев
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1181
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    813
  • 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С-Битрикс

Сайт службы такси — это не визитка с номером телефона, а рабочий инструмент, который принимает заказы, рассчитывает стоимость и передаёт данные в диспетчерскую. На 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% и ускоряет повторные расчёты.