Picture this: a marketplace with hundreds of sellers, dozens of legal entities registering daily. Without automatic document verification, the admin drowns in routine—opening PDFs, checking INN, manually toggling statuses. A single error costs dearly: the seller leaves for a competitor, and the platform loses commission. Manual processing of applications consumes significant admin time and resources. Automation drastically reduces these operational expenses.
We solve this problem: we configure seller registration on 1C-Bitrix so that the process of collecting legal entity data, verification, and onboarding runs smoothly. Properly configured onboarding reduces the time to launch a seller on the platform by 30% and increases registration conversion by 25%. Get a consultation—we will assess your project in one day.
How seller registration in Bitrix works
The seller in the system is a b_user in a special group (e.g., 'Sellers', b_user_group). We store additional legal entity data in UF fields of the user (b_user_field) or in a separate HL-block linked via UF_USER_ID. This approach allows flexible profile extension without core changes. All fields are indexed—INN verification is done in milliseconds.
Key fields of the seller registration form:
- Subject type (LLC/SP/individual)
- Full organization name
- INN, KPP (for legal entities), OGRN/OGRNIP
- Legal address
- Contact person, phone, email
- Bank details
- Link to documents (charter, certificate)—upload via
CFile
Status model: registered → documents_pending → under_review → active | rejected
Status is stored in a UF field of the user. At each transition, an automatic email is sent via CEvent::Send() according to the Bitrix event template—a standard mechanism described in the Bitrix documentation. For more complex logic, we use agents and events—for example, automatic transition to under_review after document upload.
Why automate onboarding?
Without automation, an admin must manually check documents, toggle statuses, and send emails. This is slow and error-prone. Automation executes in seconds and eliminates human factors. After approval, the seller immediately gains access to platform tools.
Comparison of approaches:
| Criteria |
Standard registration |
Custom seller registration |
| Legal entity data collection |
Only basic fields |
Extended fields + document upload |
| Counterparty verification |
None |
Integration with DADATA/FNS API |
| Onboarding |
Manual |
Automatic: welcome email, cabinet setup |
| Time to register |
1–2 days (manual) |
5–10 minutes (automatic) — 10x faster |
How to implement counterparty verification via DADATA or FNS
Counterparty verification is a key step. A common mistake is the lack of INN validation. If a seller enters an incorrect INN, document verification drags, and 30% of applications drop off. We implement verification via the FNS API in 2 seconds. To do this, we create an external PHP handler called from an agent or event. The result is saved in the UF field UF_CONTRAGENT_STATUS. If the status is 'not found', the seller sees an error and can correct the data.
Example implementation via DADATA:
// DADATA API call for INN verification
$url = 'https://suggestions.dadata.ru/suggestions/api/4_1/rs/findById/party';
$data = ['query' => $inn];
$options = [
'http' => [
'header' => "Content-Type: application/json\r\nAuthorization: Token $api_key\r\n",
'method' => 'POST',
'content' => json_encode($data)
]
];
$context = stream_context_create($options);
$result = file_get_contents($url, false, $context);
The result contains legal entity data: name, address, status. If the organization is registered, the INN is valid.
What if counterparty verification fails?
If the API returns an error or data is not found, the seller receives a notification to verify the INN. The admin can manually confirm the data via the admin interface. For complex cases (e.g., address mismatch), we add the option to upload a scanned certificate. All actions are logged in b_event_log for auditing.
How we do it (proof of expertise)
On one project with over 200 sellers per month, we automated document verification via FNS API. Manual review dropped from 8 hours per week to 30 minutes (16x reduction), and registration time was cut from 2 days to 10 minutes on average. We use a custom PHP script called via an agent every 5 minutes to check status transitions. The result: 30% faster seller activation and a 25% boost in registration completion.
What's included in our work
- Preparation of technical specifications with status model and integration diagrams
- Development of a custom registration form with extended fields
- Configuration of the status model and event-driven emails
- Integration with counterparty verification services (DADATA, FNS API)
- Creation of an admin interface for managing applications
- Onboarding: automatic group assignment, personal cabinet creation, welcome email
- Documentation (schema descriptions, admin instructions)
- Training for employees on system usage
- Post-launch support (2 weeks free)
Status model stages and processing times
| Status |
Action |
Time (auto) |
Time (manual) |
| registered |
Field check |
1 sec |
1–2 min |
| documents_pending |
Document upload |
1 min |
10–30 min |
| under_review |
Counterparty verification |
5 sec |
30–60 min |
| active |
Onboarding |
10 sec |
1–2 hours |
Estimated timelines
Basic setup (form + status model + notifications) takes 1 to 2 weeks. If integration with DADATA or FNS API is required, it takes 3 to 4 weeks. Timelines are refined after analyzing your requirements. Order a consultation—we will select the optimal solution.
Common mistakes when configuring:
- Incorrect linking of the HL-block to the user (forgetting
UF_USER_ID)
- Missing indexes on INN/OGRN fields—slows verification
- Overly long status models (more than 5 statuses confuse admins)
- Ignoring event templates—emails don't go out
Our experience helps avoid these issues—we've launched over 50 marketplaces on Bitrix, with 10+ years in the field, and offer a 6-month guarantee. Get a consultation—we will assess your project in one day. We provide turnkey solution in just 3–4 weeks. Write to us to get started.
Detailed step-by-step: How to set up seller registration
1. **Define requirements**: Collect list of legal entity fields and statuses.
2. **Create UF fields**: Add fields like UF_INN, UF_OGRN to user.
3. **Build registration form**: Use Bitrix `form` component or custom component.
4. **Configure statuses**: Create status model and save in UF field.
5. **Set up event notifications**: Create email templates for each status.
6. **Integrate verification**: Call DADATA/FNS API on INN input.
7. **Admin panel**: Create page to manage applications.
8. **Test and deploy**: Run through scenarios.
Marketplace Development on 1C-Bitrix: Overcoming Standard Architecture Limitations
The b_sale_order table and related b_sale_basket are not designed for multivendor out of the box. Bitrix has no built-in 'marketplace' module — each time it's custom development on top of the sale module. The standard sale module cannot split orders by different suppliers: if the cart contains items from three sellers, Bitrix creates a single order with one number, status, and total. It's impossible to send each sub-order to a separate dashboard, calculate commissions for each seller, or allow partial shipment. We have to redefine the entire logic: from cart to status model. Additionally, the standard search (Sphinx) and caching are not optimized for a multivendor catalog — with 100,000 items from 500 suppliers, filters by supplier lead to performance degradation (queries with WHERE on IBLOCK_ELEMENT_PROPERTY become 5–10 times slower). We write a separate module that extends the standard cart: adds item-to-supplier binding via order property, splits a single order into sub-orders by seller, and routes each separately.
Why Standard Solutions Are Not Suitable for Multivendor Platforms?
Marketplace Models
Classic marketplace — the operator does not hold inventory. All product logic lies with sellers, the platform handles traffic and payment gateway. Technically, this is a separate supplier infoblock linked via UF_VENDOR_ID in the highload catalog infoblock.
Hybrid model — the operator sells alongside external suppliers. The main pain: ranking in the catalog. If suppliers see that the platform's own listings always rank higher, they leave. We solve this with a separate sorting component where position is determined by rating, shipping speed, and price, without privileges for 'own' items.
Service marketplace — requests, tenders, escrow. Here, instead of b_sale_basket, a custom request entity works with a workflow via Bitrix business processes.
B2B marketplace — contracts, reconciliation statements, credit lines, EDI. Authorization by TIN, multi-price groups via b_catalog_group, shipping limits.
What Technical Problems Does Marketplace Development on 1C-Bitrix Solve?
Monetization Models
| Model |
Implementation |
Common Use Case |
| Sales commission |
Handler OnSaleOrderComplete, calculation by category and seller status |
Universal |
| Subscription |
Custom module with cron task and billing via sale.paysystem |
B2B platforms |
| Listing fees |
Counter in OnAfterIBlockElementAdd |
Classifieds boards |
| Promotion |
Promo slots via separate highload infoblock |
Additional revenue |
| Fulfillment |
Integration with WMS via REST |
Platforms with logistics |
What Does the Seller Dashboard Include?
The dashboard is the heart of a marketplace. An inconvenient dashboard = empty platform. No standard solution exists; we build from scratch using Bitrix components.
- Catalog management — CRUD for products via custom component, bulk CSV/XML upload via
CIBlockXMLFile. Nobody manually enters 10,000 SKUs, so import is the first thing we do.
- Order processing — sub-orders land in the dashboard via ajax-polling or websocket. Confirmation, invoice printing via
CSalePdf, status update with back-sync to the main order.
- Financial analytics — dashboard on highload infoblock of aggregated data. Revenue, commissions, payouts — details by product and period. The seller sees what sells and what just occupies the showcase.
- Delivery settings — seller's own tariffs, binding to
sale.delivery.handler.
- Communication — built-in chat without revealing contacts. Implemented via
im module or custom message table.
- Promotions — discounts, promo codes via
b_sale_discount with filter by vendor_id.
Moderation and Quality Control
One batch of counterfeit goods kills the platform's reputation. Therefore, moderation is mandatory.
- Product moderation — status
ACTIVE='N' until verification. Auto-moderation filters obvious violations (banned words, missing photos), manual moderation handles disputes. Handler OnBeforeIBlockElementUpdate prevents bypass.
- Seller verification — TIN check via Federal Tax Service API, document scans upload. Statuses: new → verified → premium. Each level unlocks limits on product count and commissions.
- Rating system — not just stars. The algorithm considers shipping speed (
AVG(ship_date - order_date)), return rate, and answer quality.
- Anti-fraud — detect rating manipulation by patterns (same IP, identical texts, abnormal frequency). Duplicate accounts caught by TIN and bank details.
- Typical mistake: storing supplier data in a regular infoblock — with 1000+ sellers, queries become slow. Use highload infoblocks.
How Is the Seller Payout System Structured?
The financial module is why sellers join the platform.
- Commission calculation — handler on order status change. Commission depends on category, seller status, current conditions. Stored in a separate table
vendor_transactions.
- Periodic payouts — cron task generates a register: weekly, bi-monthly, or monthly. Minimum payout amount, holding until confirmation.
- Acts and reports — PDF generation via
PhpOffice\PhpSpreadsheet, automatic numbering, one-click download.
- Holding — funds held until product received. Reduces disputes and returns.
- Payouts via banking API — YooKassa, CloudPayments, direct banking APIs. Seller receives money without calls or reminders.
- Important: splitting orders at the
OnSaleOrderSaved handler leads to status mismatch. Split at the cart stage.
- Manual fiscalization of each sub-order violates 54-FZ. Use a single receipt with 'agent' attribute. On one project, fiscalization automation saved significant monthly costs. On another, search optimization via Elasticsearch reduced catalog loading time by 80% (from 3 seconds to 0.6 seconds).
How We Build Marketplace Architecture
- Define business model — choose marketplace type and monetization scheme.
- Database design — highload infoblocks for catalogs over 50,000 SKU, separate tables for sub-orders (
orders_split) and transactions.
- Core development — create module
marketplace.vendor, implement product-to-supplier binding, order splitting mechanism, agents for commission calculation.
- Payment gateway and 54-FZ integration — configure fiscalization via ATOL Online or CloudPayments.
- Load testing — use
k6 or ab to verify 5000 orders per day.
Typical Mistakes in Bitrix Marketplace Development
- Storing suppliers in a regular infoblock — causes slowdowns with >1000 records. Use highload infoblocks.
- Splitting orders after saving — breaks the status model. Split at the cart stage.
- Manual fiscalization of each sub-order — violates 54-FZ. Fiscalize with a single receipt with agent attribute.
- Ignoring tagged caching for the catalog — with multivendor, cache is invalidated entirely. Configure tags by
vendor_id.
Technology Stack
- 1C-Bitrix 'Business' or 'Enterprise' —
sale + catalog modules as foundation. Multivendor wrapper — custom modules.
- Highload infoblocks — catalogs over 100,000 SKU. Regular infoblocks at such volumes fail on filtering:
CIBlockElement::GetList with a dozen properties generates JOINs on dozens of b_iblock_element_prop_sNN tables. Highload solves this with a flat structure.
- Elasticsearch — full-text search. Elasticsearch processes queries 10 times faster than the built-in search module (Sphinx). User types 'nike sneakers' — finds 'Nike sneakers'.
- Queues — catalog import, payout calculation, report generation. Bitrix agents (
CAgent) for light tasks, separate queue via RabbitMQ or supervisor + custom CLI for heavy tasks.
We guarantee that the developed module will handle a load of up to 5000 orders per day on a standard VPS. Certified 1C-Bitrix specialists (over 10 years of experience, 50+ completed projects) perform architecture audit before development starts. At a scale of 2000 sellers, average moderation time is 15 minutes, and 95% of orders are processed automatically.
Industry Marketplaces
Each niche has its own pitfalls:
- Building materials — oversized delivery calculation. Pallets, tonnage, floor lift. Standard delivery calculator cannot handle it; we write custom
sale.delivery.handler.
- Food products — expiration dates in infoblock properties, temperature regime, same-day delivery slots. A logistics error means write-off.
- Auto parts — VIN selection via Laximo API, cross-references, originals and analogs. A separate headache is different delivery times from different sellers for the same part.
- Clothing — size charts (EU/US/RU), high return rate. Return processing logic with commission redistribution is a whole layer.
- Industrial equipment — B2B with tenders, quotation requests. Product card with 50+ parameters in table form.
Timelines and Stages
Trying to launch everything at once is a sure way to launch nothing.
| Stage |
Duration |
Result |
| Business model |
2-3 weeks |
Monetization model, MVP scope. We cut 80% of desires not needed at start. |
| Design |
3-4 weeks |
UX, prototypes for storefront and dashboards, database architecture. |
| MVP |
2-3 months |
Catalog, seller registration, orders, basic moderation. First real sales. |
| Pilot |
2-3 weeks |
First sellers, test purchases, load testing via ab or k6. |
| Scaling |
ongoing |
New features based on feedback, query optimization, horizontal scaling. |
MVP in 3-4 months. Full-featured platform — 6-12 months of iterative development.
What Is Included
- Documentation: architecture diagram, API description, seller instructions.
- Access: code repository, test environment, admin panel.
- Training: two sessions for administrators and managers.
- Support: 1 month free support after launch, then according to SLA.
- Warranty on developed modules — 12 months.
Contact us for an assessment of your project — we will calculate timelines and cost individually. Request a consultation, and we will show on a real case how we solve the multivendor problem in 30 minutes. Get a detailed development plan for your marketplace today.