Development of a corporate business card website using 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.
Our competencies:
Development stages
Latest works
  • image_website-b2b-advance_0.png
    B2B ADVANCE company website development
    1189
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Website development for FIXPER company
    813
  • 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
    564
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Development based on 1C Enterprise for MIRSANBEL
    747
  • image_crm_dolbimby_434_0.webp
    Website development on CRM Bitrix24 for DOLBIMBY
    657
  • image_crm_technotorgcomplex_453_0.webp
    Development based on Bitrix24 for the company TECHNOTORGKOMPLEKS
    976

Developing a Corporate Business Card Website on 1C-Bitrix

A business card website on Bitrix is not "something done quickly with a website builder." Companies choose Bitrix for a business card site for specific reasons: they already have a licence (using Bitrix24), they need CRM integration, they plan to grow into an online store, or they require a reliable CMS with support from a Russian vendor. Technically such a project is not complex, but typical mistakes include choosing the wrong licence, a suboptimal information block structure, and ignoring performance at modest traffic levels.

Choosing the Licence and Edition

For a corporate business card site without an online store, the "Start" or "Standard" edition is sufficient. "Small Business" and "Business" are needed if you plan a catalogue with orders. For a business card site with contact forms, news, and service pages — "Standard" covers all needs.

The "Start" licence (~4,900 ₽/year) is limited to one site and does not support a composite site (multisite) or a web cluster. For a single corporate site, this is sufficient.

Information Block Structure

A typical set of information blocks for a corporate site:

Info block Symbolic code Purpose
News news Company news feed
Services services Service pages
Portfolio portfolio Cases, projects
Team team Staff cards
Reviews reviews Client testimonials
Vacancies vacancies Open positions
Partners partners Logos and links

All info blocks are created within a single type — for example CORPORATE. The type is set when creating the info block in the IBLOCK_TYPE_ID field.

An important decision — SEO properties. Activate SEO properties (meta title, meta description, canonical) for each info block at section and element level. Otherwise this will need to be added later.

Component Template

To display info block elements we use the bitrix:news.list and bitrix:news.detail components. The template is overridden in /local/templates/TEMPLATE_NAME/components/bitrix/news.list/services/.

Template structure in template.php:

<?php
/** @var array $arResult */
/** @var array $arParams */
if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED !== true) die();
?>
<div class="services-grid">
    <?php foreach ($arResult['ITEMS'] as $item): ?>
        <div class="service-card">
            <?php if ($item['PREVIEW_PICTURE']): ?>
                <img src="<?= $item['PREVIEW_PICTURE']['SRC'] ?>"
                     alt="<?= htmlspecialchars($item['NAME']) ?>">
            <?php endif; ?>
            <h3><?= htmlspecialchars($item['NAME']) ?></h3>
            <div class="service-preview">
                <?= $item['PREVIEW_TEXT'] ?>
            </div>
            <a href="<?= $item['DETAIL_PAGE_URL'] ?>" class="btn">Learn more</a>
        </div>
    <?php endforeach; ?>
</div>

Contact Forms

The standard Bitrix form (bitrix:main.feedback) is outdated and limited. We recommend two approaches:

1. Form via web forms (the form module): Created in the admin area: Services → Forms. Fields, submission results, and email templates are configured flexibly. Rendered by the bitrix:form.result.new component.

2. Custom AJAX form. A more modern option — an HTML form, JS validation, submitted via AJAX to a Bitrix controller:

// /local/ajax/contact_form.php
require_once $_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/prolog_before.php';

if ($_SERVER['REQUEST_METHOD'] !== 'POST' || !check_bitrix_sessid()) {
    http_response_code(403);
    echo json_encode(['error' => 'Forbidden']);
    exit;
}

$name  = htmlspecialchars(trim($_POST['name'] ?? ''));
$phone = htmlspecialchars(trim($_POST['phone'] ?? ''));
$email = htmlspecialchars(trim($_POST['email'] ?? ''));

if (empty($name) || empty($phone)) {
    echo json_encode(['error' => 'Please fill in the required fields']);
    exit;
}

// Create a lead in Bitrix24 (if integrated)
if (\Bitrix\Main\Loader::includeModule('crm')) {
    $lead = new \CCrmLead(false);
    $lead->Add([
        'TITLE'      => 'Website enquiry from ' . $name,
        'NAME'       => $name,
        'PHONE'      => [['VALUE' => $phone, 'VALUE_TYPE' => 'WORK']],
        'EMAIL'      => [['VALUE' => $email, 'VALUE_TYPE' => 'WORK']],
        'SOURCE_ID'  => 'WEB',
    ]);
}

// Send email
$event = new \Bitrix\Main\Mail\Event([
    'EVENT_NAME' => 'CONTACT_FORM_SUBMIT',
    'LID'        => SITE_ID,
    'C_FIELDS'   => ['NAME' => $name, 'PHONE' => $phone, 'EMAIL' => $email],
]);
$event->send();

echo json_encode(['success' => true]);

Multilingualism

If the site is needed in multiple languages — a composite site (multisite) is configured at the "Standard"+ licence level. Each language is a separate site in Bitrix (SITE_ID), but on the same domain with language folders (/en/, /de/).

Page translations — via language properties of the info block (the iblock module supports multilingual values through the tables b_iblock_element_prop_s{N} for strings and b_iblock_element_prop_m{N} for multiple values).

SEO: Automatic Meta Tag Generation

For info blocks — meta tag templates in the info block's SEO settings:

  • title of the detail view page: {=ThisElement.NAME} — Company Ltd
  • description: {=ThisElement.PREVIEW_TEXT} (truncated to 160 characters via a filter in the component)
  • canonical: automatically via \Bitrix\Main\Page\Asset

Performance

For a business card site with modest traffic (up to 1,000 visitors per day), the following is sufficient:

  • Enable Managed Cache in component settings.
  • Bitrix file-based cache (default) or Redis.
  • HTML cache for pages without personalisation — via the bitrix:main.include component with cache type A.
// Enable HTML cache for the home page
$APPLICATION->IncludeComponent('bitrix:main.include', '.default', [
    'AREA_FILE_SHOW' => 'sect',
    'PATH'           => '/index.php',
    'EDIT_TEMPLATE'  => 'index',
    'CACHE_TYPE'     => 'A',
    'CACHE_TIME'     => 3600, // 1 hour
]);

Project File Structure

/local/
├── templates/
│   └── corporate_v1/       # Main template
│       ├── header.php
│       ├── footer.php
│       ├── styles/
│       ├── components/     # Component template overrides
│       └── images/
├── components/
│   └── local/              # Custom components (if needed)
└── php_interface/
    ├── init.php
    └── user_lang/

Development Timelines

Option Composition Duration
Basic (ready-made design) Layout + info blocks + forms 5–8 days
Design + development UX/UI + layout + info blocks + CRM 15–25 days
Multilingual site + Multisite, translations, hreflang +5–8 days