Build Custom B2B & B2C Personal Accounts on 1C-Bitrix
We are a team of certified 1C-Bitrix developers with over 7 years of experience. During this time, we delivered more than 50 personal account projects for B2B and B2C. Every day clients call the manager: "What's the status of my order?" "Send me the reconciliation report for last quarter." "I need a duplicate invoice." The manager then dives into 1C, generates the document, and emails it. Five minutes per request. Twenty such calls a day — that's an hour and a half of pure time spent on work a personal account should handle. On 1C-Bitrix, the personal account is built from ready-made components. But a full-fledged B2B account with multi-user access and 1C integration always requires customization. We guarantee your personal account will run without failures and scale as your business grows. Our multi-user B2B account reduces manager workload by 3x compared to manual processing, and clients typically save 40% on support costs.
Architecture of the Personal Account
A typical personal account is the /personal/ section of the site. It includes a set of subsections, each implemented by a Bitrix component or custom page.
Standard components:
-
bitrix:main.profile— view and edit profile -
bitrix:sale.personal.order— order list with details -
bitrix:sale.personal.order.cancel— cancel order -
bitrix:catalog.viewed— viewed products -
bitrix:main.feedback— feedback form
In practice, this set suffices for an online store with a simple model. An individual buys, tracks the order, downloads a receipt. For B2B, where multiple people from one organization work with different roles, an overlay is needed.
Routing inside the personal account uses SEF rules in .urlrewrite.php or a complex component with SEF mode. The second option is more convenient. All personal account pages are managed from one place.
Access Rights Differentiation
The rights system in Bitrix is based on user groups. For a personal account it looks like this:
- Registered user — basic access: profile, own orders
- Wholesale client — wholesale prices, additional sections (accounts receivable, reconciliation reports)
- Counterparty — documents and settlements for their organization
- Partner — referral statistics, marketing materials
Groups are assigned during registration via the OnAfterUserRegister handler or manually by the manager. Rights are checked at two levels: file system (/personal/b2b/ — accessible only to the "Wholesalers" group) and inside components (data filtering by $USER->GetID()).
Deep-dive: B2B Account with Multi-User Access
A standard personal account has one user, one account, their orders. In B2B, an organization has a purchaser, an accountant, a manager. Each needs their own set of data and rights. This is the main architectural challenge.
Entity "Organization". Created via a highload block or infoblock with fields: name, TIN, KPP, legal address, payment terms, credit limit. Users are linked to the organization via the user property UF_COMPANY_ID.
Roles within the organization:
| Role | Rights |
|---|---|
| Administrator | Manage organization's employees, all orders and documents, finances |
| Purchaser | Create orders, catalog with organization's prices, cart |
| Accountant | Documents, reconciliation reports, invoices, accounts receivable. No access to placing orders |
| Observer | Only view orders and statuses |
The organization's administrator adds employees via the personal account interface. They send an invitation by email. The new user registers and is automatically linked to the organization with the specified role. No need to call the manager to add a new purchaser.
Technical implementation:
- User-to-organization binding stored in
UF_COMPANY_IDor in a separate link table (to support multi-organization access when one person works with multiple legal entities) - Roles — a separate highload block:
user_id,company_id,role - Upon login, the organization context and user role are loaded into the session
- Components filter data by
company_id: the purchaser sees their orders, the administrator sees all orders of the organization - Switching between organizations — a selector in the personal account header
Order approval. In large organizations, the order does not go directly to the supplier:
- Purchaser creates an order (status "Draft")
- The procurement manager receives a notification, checks the content and budget
- Approves or returns for revision with a comment
- After approval, the order moves to status "Confirmed" and goes into processing
Implemented via custom order statuses in the sale module and event handlers OnSaleOrderBeforeSaved, OnSaleStatusOrder.
What Is Included in Personal Account Development?
Deliverables:
- Architecture design and role model
- Configuration of standard components and custom development
- Integration with 1C via CommerceML or REST API
- Security setup (HTTPS, two-factor authentication, logging)
- Load testing up to 1000 concurrent users
- Administration and usage documentation
- Training for the client's employees (up to 5 people)
- Warranty support for 3 months after delivery
Personal Account Sections
Orders
Component sale.personal.order — list with filtering by status, date, amount. Details: composition, payment and delivery statuses, tracking number. Extensions:
- Repeat order — copy the composition to the cart with one button
- Complaint — a claim form linked to a specific order and item
- Print forms — generation of invoice, act, waybill via
\Bitrix\Sale\Order::getDocuments()
Documents
Section for downloading closing documents: invoices, acts, invoices, UPD. Documents are generated from the sale module or uploaded from 1C via integration. Storage — linked to the order or to the user via a highload block.
For B2B it's critical that the accountant sees all documents of the organization, not just their own. Filtering by company_id, not by user_id.
Tickets
Ticket system: the user creates a ticket, attaches files, sees history and status. Implementation — via the support module (tech support) or custom on an infoblock / CRM smart process. The second option is more convenient if tickets should go into CRM and be processed by the manager in a familiar interface.
Balance and Settlements
For B2B clients: current balance, payment history, accounts receivable. Data comes from 1C via REST or file exchange. A reconciliation statement is generated on request — the user clicks a button, the request goes to 1C, the PDF returns within a few minutes.
Integration with 1C
Linking a personal account with 1C is mandatory for B2B. The standard exchange module sale + catalog synchronizes the catalog and orders, but a full-fledged personal account requires extended exchange.
From 1C to the personal account:
- Order history, including those placed by phone or through the manager
- Accounts receivable by counterparty
- Reconciliation statements in PDF
- Personal prices and discounts according to the counterparty's price list
- Shipment and payment statuses
Exchange — via REST API (module rest), SOAP services, or CommerceML with an extended schema. Official 1C-Bitrix documentation recommends using REST for new projects. For high-load systems, data is cached in highload blocks: when the user requests, the personal account reads the local cache rather than waiting for a response from 1C. Synchronization — on schedule (cron agent) or by event (webhook when data changes in 1C).
Security
The personal account handles personal data and financial information. Minimum set of measures:
- HTTPS for the entire
/personal/section - CAPTCHA or rate-limiting on the authorization form — protection against brute force
- Two-factor authentication via the
securitymodule (OTP) - Logging of user actions in the "Proactive Protection" module
- Automatic session termination on inactivity (configured in the
securitymodule) - For B2B — optional IP-based session restriction
Development Stages and Pricing
| Scale | What's Included | Timeline | Typical Cost |
|---|---|---|---|
| Basic B2C | Profile, orders, favorites, tickets | 1–2 weeks | $2,000–$4,000 |
| Extended B2B | + documents, balance, 1C integration | 2–4 weeks | $4,000–$8,000 |
| Multi-user B2B | + roles, organizations, order approval | 4–6 weeks | $8,000–$15,000 |
| Full B2B with real-time 1C | + personal prices, reconciliation, AR from 1C | 6–8 weeks | From $15,000 |
Cost is calculated after requirements analysis. Contact us for a free project assessment.
Why Order Development from Us?
- Over 7 years of experience and 1C-Bitrix certification
- More than 50 implemented personal account projects
- Full documentation and training
- Warranty on work up to 12 months
- Individual approach: we do not use template solutions
Get a consultation — we will assess your project for free.







