Developing an auto dealer website on 1C-Bitrix

Our company is engaged in the development, support and maintenance of Bitrix and Bitrix24 solutions of any complexity. From simple one-page sites to complex online stores, CRM systems with 1C and telephony integration. The experience of developers is confirmed by certificates from the vendor.
Showing 1 of 1All 1626 services
Developing an auto dealer website on 1C-Bitrix
Complex
from 1 week to 3 months
Frequently Asked Questions

Our competencies:

Development stages

Latest works

  • image_website-b2b-advance_0.webp
    B2B ADVANCE company website development
    1356
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Website development for FIXPER company
    943
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Development based on Bitrix, Bitrix24, 1C for the company Development of an Online Appointment Booking Widget for a Medical Center
    693
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Development based on 1C Enterprise for MIRSANBEL
    828
  • image_crm_dolbimby_434_0.webp
    Website development on CRM Bitrix24 for DOLBIMBY
    731
  • image_crm_technotorgcomplex_453_0.webp
    Development based on Bitrix24 for the company TECHNOTORGKOMPLEKS
    1073

Developing an auto dealer website on 1C-Bitrix

We develop auto dealer websites on 1C-Bitrix that convert visitors into leads. Our team has over 12 years of experience in Bitrix development and has delivered more than 80 projects for auto dealers. An auto dealer website is not just a catalog — it's a sophisticated selection tool. Visitors don't add cars to a cart — they select, compare, calculate credit, and book test drives. The average session on a dealer site is 6–9 minutes, with 3–4 filter switches and 2–3 open car cards. If the make-model filter lags, photos load one by one, or the credit calculator requires a page reload, the visitor leaves for auto.ru. We build architecture that matches aggregators in speed but remains manageable from the Bitrix admin panel.

Catalog architecture: new and used cars

The first decision is whether to store new and used cars in one or separate information blocks. One infoblock with sections by type works for multi-brand dealers with up to 2000 items: 80% of properties overlap, empty properties don't bloat the b_iblock_element_property table. Two infoblocks are justified when new cars are generated through a configurator (make → model → trim) and used cars are VIN-specific instances. We recommend for a mid-size dealer (500–3000 cars): an "Cars" infoblock with "New" and "Used" sections, Highload-blocks for "Makes", "Models", "Generations", "Trims", and a "Promotions" infoblock.

Car properties — at least 40 fields. Key for filtering and aggregators:

Property Code Type Indexing
Make BRAND S:Highload Facet index
Model MODEL S:Highload Facet index
Year YEAR N (number) Facet index
Price PRICE N Facet index
Mileage MILEAGE N Facet index
Engine type ENGINE_TYPE L (list) Facet index
Engine volume ENGINE_VOLUME N Facet index
Transmission TRANSMISSION L (manual, automatic, robot, CVT) Facet index
Drive DRIVE L Facet index
Body type BODY_TYPE L Facet index
Color COLOR S Facet index
VIN VIN S No (exact match)
Status STATUS L Facet index
Photos PHOTOS F (multiple) No
360 exterior SPIN_360_URL S No
Interior panorama INTERIOR_PANORAMA S No

Why cascading filtering is critical for the catalog?

The standard bitrix:catalog.smart_filter shows all property values simultaneously. A user selects make BMW — but the model list still shows Camry, Ceed. This breaks UX. Cascading filtering is needed: select make → models recalculated, select model → generations recalculated.

Option 1: Custom AJAX controller. A separate endpoint /api/catalog/filter-values/:

class FilterValuesController extends \Bitrix\Main\Engine\Controller
{
    public function getModelsAction(int $brandId): array
    {
        $models = [];
        $res = \CIBlockElement::GetList(
            [],
            ['IBLOCK_ID' => CAR_IBLOCK_ID, 'ACTIVE' => 'Y', 'PROPERTY_BRAND' => $brandId],
            ['PROPERTY_MODEL' => 'CNT'],
            false,
            ['PROPERTY_MODEL']
        );
        while ($row = $res->Fetch()) {
            $models[] = ['id' => $row['PROPERTY_MODEL_VALUE'], 'count' => $row['CNT']];
        }
        return $models;
    }
}

On the frontend — BX.ajax.runAction, updating the model select via Choices.js or Tom Select. Option 2: Preload a JSON dependency tree — faster but doesn't reflect actual stock. Combination: preload tree + AJAX recalc of counts on any filter change — optimal UX.

For range sliders (price, mileage, year) — bitrix:catalog.smart_filter provides MIN/MAX, on the frontend noUiSlider, AJAX via bitrix:catalog.section.

How to avoid errors in XML feed generation?

Auto aggregators are the main traffic source. Each has its own XML format and mandatory fields. auto.ru uses the cars.xml format:

<cars>
  <car>
    <mark_id>BMW</mark_id>
    <folder_id>X5</folder_id>
    <modification_id>xDrive30d</modification_id>
    <body_type>ALLROAD_5_DOORS</body_type>
    <year>2024</year>
    <run>0</run>
    <color>ЧЕРНЫЙ</color>
    <transmission>AUTOMATIC</transmission>
    <engine_type>DIESEL</engine_type>
    <engine_volume>3.0</engine_volume>
    <price>7890000</price>
    <currency>RUR</currency>
    <vin>WBAJC51090B123456</vin>
    <unique_id>car_12345</unique_id>
    <images>
      <image>https://site.ru/upload/cars/12345/photo1.jpg</image>
    </images>
  </car>
</cars>

Critical fields: mark_id and folder_id must match the aggregator's reference. We build a Highload-block FeedMapping to translate values (automatic → AUTOMATIC for auto.ru, "Automatic" for Avito). Generation — abstract class BaseFeedGenerator, concrete implementations for each format. An agent runs every 30–60 minutes, files in /upload/feeds/. Before overwriting — XSD schema validation; on error — notification to the manager.

Car comparison

Users add up to 4 cars to comparison via a button in the catalog. IDs stored in localStorage (unauthorized) or in a Highload-block UserCompare (authorized). The component loads properties by ID array, renders a table with difference highlighting.

Trade-in and credit calculators

Trade-in: evaluation form — make, model, year, mileage, condition. On the client, JavaScript takes base price from Highload-block TradeInPrices and applies coefficients. Exact evaluation after inspection. Credit calculator — annuity formula with sliders, rates from Highload-block "Partner Banks".

1C and inventory integration

Synchronization via CommerceML (standard Bitrix exchange with 1C, property mapping customization) or 1C REST API (HTTP service, updates every 15–30 minutes). Key is VIN. More details in Bitrix documentation (CommerceML).

360 view and visual content

360 view — set of 36–72 photos around, library SpriteSpin. Interior panorama — spherical image, viewed via Pannellum.js. Files stored in /upload/cars/{ID}/360/.

Test drive and service booking

Booking form — via bitrix:form.result.new or Bitrix24 REST API (crm.lead.add with source TEST_DRIVE). Client receives SMS confirmation. Service booking — similar with job type selection.

SEO and Schema.org

Each car card is a landing page. SEO templates: title "Buy #BRAND# #MODEL# #YEAR# — #CITY# | Dealer", description with specs. Schema.org markup Vehicle + Offer:

{
  "@context": "https://schema.org",
  "@type": "Vehicle",
  "name": "BMW X5 xDrive30d",
  "brand": {"@type": "Brand", "name": "BMW"},
  "model": "X5",
  "vehicleModelDate": "2024",
  "mileageFromOdometer": {
    "@type": "QuantitativeValue",
    "value": "0",
    "unitCode": "KMT"
  },
  "fuelType": "Diesel",
  "vehicleTransmission": "Automatic",
  "color": "Black",
  "vehicleIdentificationNumber": "WBAJC51090B123456",
  "image": ["https://site.ru/upload/cars/12345/photo1.jpg"],
  "offers": {
    "@type": "Offer",
    "price": "7890000",
    "priceCurrency": "RUB",
    "availability": "https://schema.org/InStock",
    "seller": {
      "@type": "AutoDealer",
      "name": "Dealer Name"
    }
  }
}

What's included in the project

  • Architectural documentation (infoblocks, Highload-blocks, property mapping).
  • Access to admin panel, CRM, hosting.
  • Training for managers on catalog and feed management.
  • Technical support for 30 days after launch.
  • Source code and deployment instructions.

Stages and timelines

Scale Timelines
Single-brand dealer, up to 200 cars, basic filter 6–8 weeks
Multi-brand dealer, 500–2000 cars, feeds + 1C 10–14 weeks
Dealer network, 3000+ cars, multisite, CRM 14–24 weeks

Timelines do not include photography and 360 content preparation — these are parallel processes.

We will evaluate your project and propose the optimal solution. Contact us for a consultation.

How to properly design infoblocks?

When developing a 1C-Bitrix website, we see dozens of projects where poor infoblock structure slows down the site. Typical scenario: the client asks for a "product catalog." The developer creates one infoblock catalog, puts 15 properties in it. Six months later – 40 properties, 8 of which are used only for one category. The filter lags, the b_iblock_element_property table grows to millions of rows, CIBlockElement::GetList runs for 3 seconds. Consequences – conversion drop, loss of customers, additional optimization costs. In one project after catalog refactoring, page generation time dropped from 4.2 to 0.8 seconds, and annual support costs were reduced by over $10,000 through eliminated redundant queries and agents.

Our approach: design infoblocks before writing a single line of code. Separate infoblocks for entities (products, categories, brands), dictionary properties via highload blocks, trade offers for SKUs. This builds performance for years. If you want a preliminary audit of your infoblock schema, contact us for a free review of common mistakes and recommendations.

Why 1C-Bitrix outperforms most CMS for business

The choice of CMS is dictated by business needs, not preferences. Native 1C exchange via catalog.import.1c provides two-way synchronization of products, prices, balances, and orders through CommerceML without third-party modules — five times faster than developing custom exchange on OpenCart or WordPress, saving hundreds of thousands of rubles. Proactive security module includes WAF, file integrity control, SQL injection protection, and two-factor authentication; it's certified for FSTEK requirements. Modular architecture lets you enable only needed modules — iblock, catalog, sale, search — reducing DB queries per hit. Regular patches close vulnerabilities faster than open-source projects (average CVE fix time two weeks). Official documentation is maintained on the vendor's site.

What highload blocks are and how they speed up the catalog

Highload blocks are an alternative to extended infoblock properties when the list of values can grow to thousands of entries. Typical example: manufacturers, countries, colors. If stored as list properties in an infoblock, each filter triggers a full scan of b_iblock_property_enum table. With HL-blocks, selection uses indexes – filter response time drops from 1–2 seconds to 50 ms. We use HLB component and custom queries via Bitrix\Highloadblock\DataManager. This is critical for catalogs with 100,000+ items.

From our practice: an online store with 500,000 items. Standard filter by brand took 4 seconds. The server couldn't handle 50 concurrent requests – pages crashed. We moved the brand directory to an HL-block, added tagged caching for 15 minutes, and set up an agent to clear cache on change. After optimization, filter time was 120 ms, average LCP was 1.8 seconds. The project runs stable without failures.

What integrations are critical for 1C-Bitrix stores

Each e‑commerce project requires reliable connections with payments, fiscalization, logistics, and CRM. We integrate YooKassa, CloudPayments, Tinkoff, Apple Pay, Google Pay for payments; ATOL and OrangeData for 54-FZ compliance via sale.cashbox; CDEK, Boxberry, PEC, Russian Post, Yandex.Delivery for logistics; Bitrix24, amoCRM, Roistat, Calltouch, Mindbox for analytics and CRM. All integrations are configured with proper error handling and fallback logic.

What's included in 1C-Bitrix website development

Each project includes a full set of documentation and artifacts to prevent knowledge loss after handover.

  • Technical specification – user stories, infoblock diagrams, integration schemas.
  • Source code in Git – with commit history, release tags, branching rules.
  • Administrative documentation – description of custom components, deployment instructions, list of agents and events.
  • Staff training – up to a 3-hour webinar: admin panel, order management, price settings. Recorded for later review.
  • Access to staging during development – test before production deployment.
  • Warranty support – bug fixes for 30 days after launch. Post-warranty support packages with SLA (response 2 hours, resolution 8 hours).

Our process and technologies

Project type Timeline Complexity Key features
Corporate website from 1 month Medium Catalog, news, forms, CRM integration
Online store from 2 months High 54-FZ, marketplaces, 1C exchange, SKU
B2B portal from 3 months Very high Personal prices, document flow, Bizproc
Landing page from 2 weeks Low LCP < 2s, composite cache, static
Multisite structure from 1.5 months High Separate content, shared catalog, hreflang

Tech stack: mobile-first markup, tested on physical devices (iPhone, iPad, Android). Use BrowserStack for Safari on iOS. Performance goals: LCP < 2.5 s, FID < 100 ms, CLS < 0.1. Enable composite site (composite module), CDN, tagged caching, WebP/AVIF, lazy loading. SEO: Schema.org via JSON-LD, auto-generation of sitemap.xml via seo module, canonical and hreflang for multilingual versions. robots.txt blocks /bitrix/ from indexing. CI/CD: Git, auto-deploy via GitLab CI, staging. DB migrations: sprint.migration module with versioning.

Process:

  1. Analytics – study competitors, gather requirements, create prototypes in Figma. Output: technical specification with user stories.
  2. Design – UI/UX with design system. Components are reusable.
  3. Development – write components with custom templates in local/templates/. Business logic in local/modules/.
  4. Testing – functional, cross-browser, load testing (up to 1000 requests). Critical bugs fixed before launch.
  5. Launch – deploy to production, monitoring via UptimeRobot, alerts in Telegram. Fixes for first 48 hours.

Multilingual support and redesign

Full localization via language files lang/ and SITE_ID mechanism. hreflang for each version. Regional versions with different prices and content – IP detection (main.geo) or manual selection. Multidomain – unified management of multiple domains.

Redesign without losing rankings: performance audit (PageSpeed, WebPageTest), SEO (Screaming Frog). New template in local/templates/ with preserved URL structure. 301 redirects only if URL changes significantly. Kernel update, migration to D7 ORM, infoblock restructuring, migration via sprint.migration with Git.

Guarantee and support

We have been working with 1C-Bitrix for 12+ years, completed 500+ projects. Certified developers on staff. Fixed price in contract – no surprises. Warranty period covers code errors. After warranty, subscription packages with SLA (response time 2 hours, resolution 8 hours). 24/7 availability monitoring, alerts in Telegram. Get a consultation and preliminary estimate: contact us via the form on the website or chat – we'll respond within an hour. Order turnkey development – we'll design infoblocks, integrate 1C, and speed up the catalog. If you already have a site on another CMS, order a performance audit and migration to Bitrix.