Develop a Transport Company Website with Online Booking on 1C-Bitrix

Clients switch to aggregators when they can't check schedules or bus rental prices in a couple of clicks. We build websites for transport companies on 1C-Bitrix with online booking and price calculation, integrating the portal with 1C. We deliver turnkey projects, from tariff design to launch and ongoing support.

Our competencies:

Frequently Asked Questions

How to Develop a Transportation Company Website on 1C-Bitrix with Online Booking

A client asks: "Is there a Minsk—Moscow trip on Friday? How much does it cost to rent a bus for 45 people?" — if the answer can't be found in two clicks, they go to an aggregator. Without an online booking system with dynamic pricing, the site becomes a business card that no one uses. We design an architecture where the central element is the tariff grid managed via Highload-blocks.

Problems We Solve — Transport Company Website Development

The main technical challenge is the diversity of services: regular trips, bus rental, corporate transfers, excursions. Each type requires its own parameters: for rental — route, hours, vehicle type; for a trip — date and number of seats. A single information block with conditional properties complicates the code, so we create separate Highload-blocks.

The second problem is cost calculation based on a complex tariff grid. The price depends on distance, time, bus class, season, surcharges. Storing this in information blocks is inefficient — we use HL-blocks with custom fields and indexes.

What Is a Tariff Grid and How to Implement It?

Let's look at an example of bus rental by distance. The system consists of several HL-blocks: Highload-block TariffGrid:

Field Type Purpose
UF_VEHICLE_TYPE enumeration Minibus / Medium Bus / Large Bus
UF_COMFORT_CLASS enumeration Standard / Comfort / VIP
UF_TARIFF_TYPE enumeration Per km / Per hour / Fixed route
UF_PRICE_PER_UNIT float Price per unit (km or hour)
UF_MIN_HOURS integer Minimum order in hours
UF_MIN_PRICE float Minimum order cost
UF_CITY_FROM string Departure city
UF_CITY_TO string Arrival city
UF_FIXED_PRICE float Fixed route price
UF_SEASON enumeration Low / High / Holiday
UF_VALID_FROM date Tariff valid from date
UF_VALID_TO date Tariff valid to date

Highload-block TariffSurcharge — surcharges:

Field Type Purpose
UF_TYPE enumeration Night delivery / Holiday / International / Baggage
UF_SURCHARGE_TYPE enumeration Percentage / Fixed amount
UF_VALUE float Surcharge value
UF_VEHICLE_TYPE enumeration Which vehicle type it applies to

Calculation algorithm:

  1. Determine the distance between points. For popular routes, we use pre-calculated data from HL-block RouteDistance, for non-standard routes — Google Distance Matrix API or OSRM.
  2. Select tariff from TariffGrid by vehicle type, comfort class, and date.
  3. Base cost = distance * UF_PRICE_PER_UNIT.
  4. If base is less than UF_MIN_PRICE, use UF_MIN_PRICE.
  5. Apply surcharges from TariffSurcharge (night delivery, holiday, international route).
  6. For round-trip routes — double the distance with a coefficient of 0.85-0.9.

Implementation in code:

$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);
    }
}

For hourly rental, the calculation is simpler: hours * tariff per hour, with a minimum check. For fixed routes, UF_FIXED_PRICE is used directly.

Why Online Booking Increases Conversion by 2-3 Times?

The client has no time to call and clarify prices. The online calculator provides an instant answer. Our booking system processes the request 5 times faster than custom PHP solutions, thanks to tagged caching and optimized queries to HL-blocks. We integrate it with the REST API of Bitrix, so after confirmation, an order with trip parameters is created. Payment — 30-50% prepaid via acquiring or full payment at boarding.

Additional Modules

  • Fleet — an information block with cards for each vehicle: type, capacity, class, photos, characteristics. Filtering by capacity and class. During booking — automatic selection of suitable buses.
  • GPS trip tracking — integration with trackers (WIALON, Galileosky). On the site — a map with the bus location, updated every 30-60 seconds.
  • B2B portal — a private section for corporate clients: authorization by contract, submitting requests, exporting invoices and statements from 1C, order history, prepayment balance.
  • Route landing pages — for SEO traffic. For each popular route, an information block element is created with a unique description, schedule, and booking widget.

Process of Work

  1. Analytics — study the carrier's business processes, gather requirements for tariffs, routes, integrations.
  2. Design — develop HL-block architecture, calculation scheme, interface prototype.
  3. Development — implement booking, fleet, and integration modules. Write code in PHP 8.1+ using Component 2.0.
  4. Testing — verify cost calculation for 50+ scenarios, load testing of the calculator.
  5. Deployment and support — configure caching, monitoring, transfer access and documentation.

What Is Included in the Work

  • Development of information block and Highload-block structure
  • Implementation of cost calculation algorithm
  • Integration with payment systems (YooKassa, Sber)
  • Integration with 1C (CommerceML or HTTP services)
  • Caching and performance optimization
  • SEO optimization of route landing pages
  • Training operators to work with the admin panel
  • 6-month warranty support

Estimated Deadlines

Scale Composition Time
Small carrier (5-10 routes) Service catalog, fleet, application form, route pages 6-8 weeks
Medium company + online booking with tariff grid, payment, trip schedule 12-16 weeks
Large carrier + B2B portal, GPS tracking, 1C integration, multilingual 20-26 weeks

The cost is calculated individually — we will evaluate the project after the brief. 1C-Bitrix: Data management via Highload-blocks. Contact us for an audit of your business process. Request a consultation — we will send a commercial proposal with an estimate.

Case example: 35% savings on operational costsFor one transportation company, we automated the cost calculation and exchange with 1C. Manual order processing reduced from 4 hours to 20 minutes per day. Savings on operational costs reached 35%.