Website Development on 1C-Bitrix: From Business Cards to Corporate Portals
Infoblocks — The Architecture That Defines Everything
The first decision on a project is the infoblock structure. Get it wrong — you'll be dealing with the consequences for the entire lifecycle. A typical example: the client asks for a "product catalog." You create a single infoblock catalog, throw in 15 properties. Six months later — 40 properties, 8 of which are used for only one category, the filter is slow, the b_iblock_element_property table has grown to millions of rows, CIBlockElement::GetList takes 3 seconds to execute.
The right approach: separate infoblocks per entity, "reference" type properties via highload blocks, trade offers for SKUs. This is designed before the first line of code.
Why 1C-Bitrix
Choosing a CMS isn't a matter of preference — it's a matter of infrastructure:
-
Native integration with 1C:Enterprise — the
catalog.import.1cmodule provides two-way exchange of products, prices, stock, and orders via CommerceML. No middleware connectors. If the company runs on 1C — this is the deciding factor. -
Proactive protection — the
securitymodule: WAF, file integrity monitoring, SQL injection protection, session security, two-factor authentication. FSTEC certification for projects that require it. -
Modular architecture — you enable only the modules you need:
iblock,catalog,sale,search,form. Fewer modules — fewer database queries per hit. - Updates and patches — the vendor releases security patches and closes vulnerabilities. Not open-source, where a CVE can sit unpatched for months.
Project Types
Corporate Websites
Product catalog via infoblocks, news, contact forms through form or iblock.element.add.form, CRM integration. Information architecture is built from audience behavior — analytics from Metrica, heatmaps, session recordings via Webvisor.
Online Stores
Full e-commerce stack: sale module (cart, orders), catalog (products, prices, SKUs), online payment via sale.paysystem, delivery calculation through sale.delivery.services. 1C integration for inventory management. Marketplace connectivity — Ozon, Wildberries, Yandex.Market.
Where it breaks most often: discount calculation with overlapping rules in sale.discount, delivery handlers with non-standard dimensions, order exchange with 1C on custom statuses.
B2B Portals
Restricted sections for dealers: personalized pricing via price types in catalog, multi-tier price lists for user groups, document management. Authentication linked to a contractor in 1C — the manager sees their own prices and stock by their warehouse.
Landing Pages and Promo Sites
Fast single-page sites for advertising campaigns. Load time is critical: LCP < 2 sec, otherwise conversion drops. Minimum modules, composite cache, static generation where possible.
Multi-site
Multiple sites from a single admin panel via the SITE_ID mechanism. Shared product database, separate content, different domains. For holding companies, franchises, regional branches. Caveat: component cache must be separated by SITE_ID, otherwise content "leaks" between sites.
Stack and Approach
- Layout — mobile-first, testing on real devices (not just Chrome DevTools emulators). BrowserStack for Safari on iOS — it has its own CSS bugs
-
Performance — composite site (
compositemodule), CDN, component caching via$arParams['CACHE_TIME'], WebP/AVIF, lazy loading of images. Target metrics: LCP < 2.5s, FID < 100ms, CLS < 0.1 -
SEO — semantic markup, Schema.org via JSON-LD, auto-generated
sitemap.xmlthrough theseomodule, canonical and hreflang configuration for multilingual projects.robots.txt— don't forget to block/bitrix/from indexing -
CI/CD — Git, auto-deploy via GitLab CI or GitHub Actions, staging environment. No FTP edits on production. Database migrations via the
sprint.migrationmodule
Process
- Analytics — competitors, functional requirements, prototypes in Figma. Output — a specification and plan. Not an 80-page document, but a working artifact with user stories
- Design — UI/UX with a design system. Components are reused across pages
-
Development — Bitrix components with custom templates in
local/templates/. Business logic in modules atlocal/modules/, not in component templates - Testing — functional, cross-browser, load testing. Before launch
- Launch — deployment, monitoring, resolving first-day issues
Integrations
CRM and Marketing:
- Bitrix24 — leads from forms, online chat, call tracking. Native integration via the
crmmodule - amoCRM, Megaplan — two-way exchange via REST API
- Roistat, Calltouch — end-to-end analytics, advertising channel ROI
- Mindbox, RetailCRM — marketing automation, segmentation
Payments:
- YooKassa, CloudPayments, Tinkoff —
sale.paysystemhandlers - Apple Pay, Google Pay — one-click payment
- Online cash registers (54-FZ) — fiscalization via ATOL, OrangeData. Configuration in
sale.cashbox
Logistics:
- CDEK, Boxberry, PEK, DPD —
sale.delivery.servicesdelivery handlers, automatic calculation - Russian Post — waybill generation via API
- Yandex.Delivery — same-day courier service
Content and Communications:
- Yandex.Maps — sales locations,
map.yandex.viewwidget - SendPulse, UniSender — email campaigns, integration with
main.mail.event - JivoSite, Carrot Quest — live chat
Multilingual Support
- Full localization via language files
lang/and multi-site architecture - hreflang for correct indexing — each language version on its own subdomain or in a subdirectory
- Regional versions: different content, prices, delivery terms. Region detection by IP via
main.geoor manual selection - Multi-domain — a separate domain for each country, unified management
Redesign Without Losing Rankings
The site is outdated, but the data, SEO rankings, and URL structure are in place. No migration needed:
- Audit — performance (PageSpeed, WebPageTest), usability, SEO (Screaming Frog), code quality
-
Design refresh — new template in
local/templates/, preserving URL structure. 301 redirects only where URLs actually changed -
Core update — upgrade to the current version, refactoring deprecated calls (
CIBlockElement::GetList→ D7 ORM) - Infoblock restructuring — if the current structure is inefficient: splitting bloated infoblocks, extracting references into highload blocks
-
Data migration — via
sprint.migrationwith version control in Git
Warranty and Support
Warranty period — free defect resolution. After that — subscription packages with SLA: response time, resolution time, dedicated manager. Uptime monitoring via UptimeRobot, alerts in Telegram.
Why Us
- 10+ years on 1C-Bitrix, certified developers
- Projects across industries — from e-commerce to government
- Fixed pricing in the contract — not "based on actuals"
- Repository access, staging version of the project, transparent process
- Post-launch support: subscription packages, feature development, core update consulting







