Imagine: a customer types 'oil change' into search and lands on your site. If they can't see pricing for their car and book in a few clicks, they go to a competitor. Car service website development on 1C-Bitrix solves exactly this problem. We create a resource that converts a visitor into a booking, not forcing them to call. The key tool is a maintenance cost calculator. It calculates the cost of labor and parts for a specific model. Our experience: over 10 years on the market, 50+ projects for car services. A site on 1C-Bitrix provides flexibility in business logic configuration and integration with 1C. Without a modern website, a car service loses up to 30% of potential customers who cannot quickly find prices and book. Get a consultation — we'll select the optimal functionality for your budget.
Car Service Services Catalog
Services are organized in an information block with section hierarchy. Typical structure:
- Maintenance — TO-1, TO-2, oil change, filters
- Body repair — painting, straightening, anti-corrosion
- Diagnostics — computer, chassis, engine
- Tire fitting — seasonal change, storage, balancing
- Electrical — alarms, car audio, extra equipment
Element properties: PRICE_FROM, DURATION_HOURS, CAR_TYPES, DESCRIPTION_WORK. Binding to car brands via a multiple property of type 'Bind to elements'.
How the Maintenance Cost Calculator Works?
The calculator is the main conversion element of a car service website. The customer selects make, model, year, and mileage — gets the cost of scheduled maintenance with a breakdown of labor and parts. We use Highload-blocks for this, ensuring fast work even with tens of thousands of combinations.
1C-Bitrix documentation recommends Highload-blocks for large reference books.
Data Architecture
References are stored in Highload-blocks — here this is not optional optimization but a necessity. The 'make - model - generation - engine' reference for 50 popular brands contains tens of thousands of combinations. In a regular information block it would be a disaster.
Highload-block CarDirectory:
| Field | Type | Example |
|---|---|---|
| UF_BRAND | string | Toyota |
| UF_MODEL | string | Camry |
| UF_GENERATION | string | XV70 (seventh generation) |
| UF_ENGINE | string | 2.5L 2AR-FE |
| UF_YEAR_FROM | integer | 2017 |
| UF_YEAR_TO | integer | (current year) |
Highload-block MaintenanceRegulation:
| Field | Type | Purpose |
|---|---|---|
| UF_CAR_DIR_ID | integer | Link to CarDirectory |
| UF_MILEAGE_KM | integer | Mileage for service (10000, 20000...) |
| UF_WORK_ID | integer | Link to work info block |
| UF_PART_ID | integer | Link to parts catalog |
| UF_PART_QUANTITY | float | Quantity (4 liters of oil) |
| UF_IS_REQUIRED | boolean | Mandatory or recommended |
Highload-block ServicePricing:
| Field | Type | Purpose |
|---|---|---|
| UF_WORK_ID | integer | Work ID |
| UF_CAR_CLASS | enumeration | Car / SUV / Off-road |
| UF_PRICE_WORK | float | Labor cost |
| UF_NORM_HOURS | float | Standard hours |
Calculation algorithm:
- Customer selects make → model → generation → engine (cascading AJAX selects)
- Enters current mileage — system determines the nearest scheduled maintenance
- Query to
MaintenanceRegulationbyUF_CAR_DIR_IDandUF_MILEAGE_KM - For each work — price is pulled from
ServicePricingby car class - For each part — price from catalog or reference
- Result — table 'work - cost - part - cost - total'
$regulations = MaintenanceRegulationTable::getList([
'filter' => [
'UF_CAR_DIR_ID' => $carId,
'UF_MILEAGE_KM' => $nearestMileage,
],
])->fetchAll();
$total = 0;
$breakdown = [];
foreach ($regulations as $reg) {
$workPrice = ServicePricingTable::getRow([
'filter' => [
'UF_WORK_ID' => $reg['UF_WORK_ID'],
'UF_CAR_CLASS' => $carClass,
],
]);
$partPrice = $reg['UF_PART_ID']
? getPartPrice($reg['UF_PART_ID']) * $reg['UF_PART_QUANTITY']
: 0;
$lineTotal = $workPrice['UF_PRICE_WORK'] + $partPrice;
$total += $lineTotal;
$breakdown[] = [
'work' => getWorkName($reg['UF_WORK_ID']),
'work_price' => $workPrice['UF_PRICE_WORK'],
'part' => getPartName($reg['UF_PART_ID']),
'part_price' => $partPrice,
'required' => $reg['UF_IS_REQUIRED'],
];
}
The calculator on Highload-blocks works 5 times faster than on information blocks with 50,000 entries. Cascading selects are implemented via AJAX component or REST endpoint. Populating the reference is the main pain. Maintenance schedules for 50 brands are a huge volume. We start with 10-15 most popular brands and expand based on analytics. Savings for the client on manual work selection are up to 20,000 rubles per one maintenance.
Why Does Online Booking Increase Conversion?
Booking is easier than at a beauty salon: no attachment to a specific master, there is attachment to a lift. The customer chooses a service, date, and time. The system checks bay occupancy.
Highload-block ServiceBooking: UF_DATE, UF_TIME_START, UF_TIME_END, UF_BAY_ID, UF_CLIENT_ID, UF_SERVICE_ID, UF_CAR_INFO. Slot logic: get bay working hours, subtract occupied intervals, show free ones. Duration is determined by DURATION_HOURS property. The average check of a customer who booked through the site is 25% higher than by phone. Implementing online booking reduces the workload on administrators by 30%.
What is Included in Turnkey Development?
- Documentation: technical specifications, prototypes, integration scheme.
- Development: service catalog, maintenance calculator, online booking, personal account, 1C integration.
- Transfer of rights: access to hosting, admin panel, source code.
- Training: staff instruction.
- Support warranty: 3 months of bug fixes.
Integration with 1C:Auto Service
1C:Auto Service stores work orders, repair history, and stock. Integration solves several tasks:
- Import work orders to personal account — customer sees history by VIN
- Synchronization of parts stock via CommerceML or REST
- Transfer of online bookings to 1C — creation of a preliminary work order
Exchange via 1C HTTP services (JSON/XML) by cron every 15-30 minutes for stock, instantly (webhook) for bookings.
Personal Account with Service History
The customer links a car to the profile by VIN or license plate. The system pulls all work orders from 1C. The customer sees date, work, parts, mileage. This is a powerful retention tool. Average manager time saved is 1,500 rubles per history request.
Promotions and Seasonal Offers
An information block 'Promotions' with automatic publication by dates. Seasonal promotions are linked to service types: tire fitting in autumn, air conditioning in summer. Displayed on the main page via bitrix:news.list.
Implementation Timelines
| Scale | Composition | Timeline |
|---|---|---|
| Single-point car service | Service catalog, booking, promotions, basic personal account | 6-8 weeks |
| Car service with maintenance calculator | + calculator (10-15 brands), 1C integration, history | 12-16 weeks |
| Car service network | + multisite, parts catalog, full reference, B2B | 18-24 weeks |
Contact us to discuss details. We'll evaluate your project free of charge. Receive a commercial proposal tailored to your needs.







