B2B Wholesale Section Development for 1C-Bitrix Online Stores

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
B2B Wholesale Section Development for 1C-Bitrix Online Stores
Medium
~1-2 weeks
Frequently Asked Questions

Our competencies:

Development stages

Latest works

  • image_website-b2b-advance_0.webp
    B2B ADVANCE company website development
    1354
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Website development for FIXPER company
    940
  • 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
    692
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Development based on 1C Enterprise for MIRSANBEL
    826
  • image_crm_dolbimby_434_0.webp
    Website development on CRM Bitrix24 for DOLBIMBY
    730
  • image_crm_technotorgcomplex_453_0.webp
    Development based on Bitrix24 for the company TECHNOTORGKOMPLEKS
    1070

We have been developing wholesale (B2B) sections for online stores on 1C-Bitrix for over 7 years. During this time, we have completed over 50 projects — from simple two-level price lists to full-scale dealer portals with credit limits, 1C integration, and electronic document workflow. If you need your retail catalog to work for wholesale clients as well — with separate prices, minimum order quantities, fast order by article, and Excel upload — we will provide a turnkey solution. Development of basic functionality starts from $500. We will assess your project and provide timelines within a day. Order the development of your wholesale section today to give your B2B clients a convenient purchasing tool. Our guaranteed timeline is 2 weeks for basic setup, and our certified developers have 7+ years of Bitrix experience.

Why standard Bitrix functionality is insufficient

The built-in price types and user groups cover only simple scenarios. Real B2B requirements include individual discounts, tiered prices, currency exchange rates, credit limits, and separate document workflow. Without core and module customizations, it is unavoidable. Our custom solution is 2 times faster than standard modules.

Configuring price types for B2B

The basis of the pricing architecture is the b_catalog_group table. Each price type ("Retail", "Wholesale", "Dealer") is linked to a user group. The CCatalogProduct::GetOptimalPrice() function returns the best price for an authorized customer. But in practice, this is not enough.

For individual contractor discounts, we use basket rules (sale.discount) with group conditions. Tiered prices (e.g., from 100 units one price, from 1000 another) are implemented through quantity ranges in b_catalog_price (QUANTITY_FROM / QUANTITY_TO). If wholesalers work in different currencies, we create price types in different currencies, with conversion via the currency module.

An important nuance: a price type is tied to a group, not a user. Creating 200 groups for 200 contractors is not rational. In such cases, we write a handler for the OnGetOptimalPrice event that pulls prices from 1C or ERP via cache. For more on price types, read the official documentation.

Scenario Implementation in Bitrix Limitations
3–5 price levels Price types + user groups Standard mechanism, works out of the box
Tiered prices by quantity Ranges in b_catalog_price Not displayed in the product card without template customization
Individual price per contractor OnGetOptimalPrice event + external source Requires caching, otherwise a request to 1C per each product
Category discount for a group Basket rules (sale.discount) Not visible in the catalog until added to cart

Minimum order quantity and order multiple

Wholesale products require a minimum quantity and a step (multiple). Bitrix has the "Unit of measurement coefficient" field (b_catalog_measure_ratio), but it only acts as a multiplier. A full implementation requires:

  • An infoblock property "Minimum order quantity" — validation via OnSaleBasketItemBeforeUpdate.
  • A "Multiple" property — rounding up to the nearest multiple.
  • Display in the product card: a selector with steps (10, 20, 30) or a field with validation.

Implementing quick ordering by article

Wholesale clients often order by article numbers without browsing the catalog. Follow these steps:

  1. Create a form "article + quantity" — a list of rows. The server matches the article with PROPERTY_CML2_ARTICLE or XML_ID and adds to the cart.
  2. Implement Excel/CSV upload using PhpSpreadsheet (via Composer). The parser processes the file and forms the cart. Unmatched articles are output in a report.
  3. Add a "Reorder" button in the personal account, copying the previous order composition into the current cart via Bitrix\Sale\Basket::loadItemsForOrder().

Credit limits and deferred payment

In B2B, payment often occurs post-factum. Mechanism:

  • In the contractor's profile (UF fields), store the limit and current debt.
  • The OnSaleOrderBeforeSaved handler checks: order sum + debt ≤ limit.
  • If exceeded, the order is not placed and the available balance is shown.
  • After payment (status via 1C exchange), the debt is recalculated.

Document workflow in the personal account

A wholesale client expects: invoices (generated when an order is created, PDF via sale_print or TCPDF), reconciliation statements (from 1C, in a highload block), waybills and UPD (with digital signature), order history with filtering by period, status, and amount. The standard component sale.personal.order is customized or replaced with a custom one.

Why basket separation is critical

Technically, Bitrix has one basket per user. If a customer buys both retail and wholesale, isolation is needed. Solutions:

  • Two sites in one installation — baskets are separated by FUSER_ID + LID. Downside: duplicate settings.
  • Basket item property (BASKET_TYPE = wholesale). During checkout, only wholesale items are filtered. Downside: more complex implementation.

The first option is more reliable: two sites with a shared catalog, different templates, and independent baskets. Switching is done via subdomain or URL section.

1C integration for the wholesale section

Standard CommerceML (Wikipedia) does not cover B2B entities: contractors (mapping by TIN), mutual settlements (debt, credit limit), individual prices (contractor-product-price). Customization is required: either extending XML nodes or a separate REST exchange.

Common mistakes to avoid

  • Price types not tied to user groups — price is not recalculated.
  • No handling of minimum order quantity — a client can order 1 piece.
  • Basket is shared between retail and wholesale — confusion in stock.
  • No caching of individual prices — catalog slows down.
  • Documents not generated automatically — clients leave.
Stage Duration Result
Analysis and design 2-3 days Technical specification
Price type configuration 2-4 days Working pricing scheme
Module development 5-10 days Ready functionality
1C integration 3-5 days Data exchange
Testing 2 days Report

What is included in our work

When you order the development of a wholesale section, you receive:

  • Audit of the existing catalog and configuration of price types.
  • Implementation of mechanisms for minimum order quantity, multiples, and credit limits.
  • Development of a quick order interface and Excel upload.
  • Document workflow setup (invoices, statements) in the personal account.
  • 1C integration (contractors, mutual settlements, price lists).
  • Testing and handover of documentation, including admin training.
  • Access to development environment and post-launch support (under contract).

Our expertise

Over 7 years of experience in developing on 1C-Bitrix. Stack: PHP 8.1+, infoblocks v2.0, ORM, components 2.0, MySQL/MariaDB, integrations with YooKassa, Sber, CDEK, Russian Post. We work with both cloud and on-premise versions of Bitrix24. We guarantee 95% client satisfaction.

Get a consultation on your project — we will propose the optimal solution and provide timelines.

Why is 1C-Bitrix the flagship of e-commerce?

A faceted index on a catalog of 200,000 SKUs is not built — bitrix:catalog.smart.filter takes 4 seconds instead of 200 ms, and the customer leaves. Our online store development on 1C-Bitrix eliminates such scenarios: from infoblock architecture and price types to cluster balancing under peak loads. With over 12 years of experience and 200+ completed e-commerce projects, we have solved every performance bottleneck.

Two-way synchronization with 1C via CommerceML — catalog, prices, balances, orders, and statuses. Configured from the admin panel via the catalog module -> 'Exchange with 1C'. Export to marketplaces via YML feeds (catalog.export) for Yandex.Market, Google Shopping, Ozon, Wildberries. According to Wikipedia, 1C-Bitrix is used by more than 70,000 commercial sites in Russia and the CIS (https://en.wikipedia.org/wiki/1C-Bitrix). Contact us to evaluate your current architecture.

How do we solve key performance problems?

bitrix:catalog.smart.filter without faceted index generates queries that bring down MySQL. Solution: build b_catalog_iblock_index — response time drops from 4 seconds to 100–200 ms. For SEO filters, we use catalog.seo.filter — indexable filter intersection pages with unique meta tags.

Composite cache (bitrix:main.composite) speeds up page loading by 3–5 times compared to regular. Goal — product card TTFB < 200 ms. For sessions we use Redis (SESSION_SAVE_HANDLER = redis in .settings.php). Lazy load images, CDN for static, SQL optimization (especially JOINs on b_iblock_element_property). As noted in the official Bitrix documentation, composite cache delivers a page from HTML, bypassing PHP execution and database requests, giving a speed advantage of up to 5x.

Why is caching critical for an online store?

Each second of page load delay reduces conversion by an average of 7%. At TTFB > 400 ms, 32% of users leave the site. Composite cache delivers a page from HTML, bypassing PHP execution and database requests — this gives a speed advantage of up to 5 times. For product cards with frequent price and stock changes, we use tagged caching: invalidation occurs only for affected entities. In practice, we have reduced TTFB from 1.2 seconds to 180 ms. Time savings on catalog loading — up to 60%.

Store types and their features

Store type Key modules Features
B2C retail catalog.smart.filter, catalog.compare.list, reviews, ratings Faceted index, conversion funnel from card to payment
B2B wholesale dealer prices (b_catalog_group), min. lots, credit limits Personal accounts, quick order by SKU, PDF invoices
Digital goods licenses, subscriptions, files OnSaleOrderPaid -> automatic access granting
Marketplace "Marketplace" module or custom Multiple sellers, separate accounting, commission model
PWA / mobile Progressive Web App, React Native + REST API Offline catalog, push notifications

Integrations: payment systems, delivery, CRM, marketplaces

Payment systems. Handlers in sale.handlers: YooKassa, CloudPayments, Tinkoff, Sberbank, Apple Pay, Google Pay, installment. Callback sale.payment.notify for status confirmation. Delivery. Handlers sale.delivery for CDEK, Boxberry, Russian Post, DPD — real-time cost calculation via API, tracking. Warehouse management. Reservation (RESERVED = Y in b_sale_basket), automatic write-off upon shipment, notifications when stock falls below threshold, pre-order for goods in transit. CRM. Bitrix24 or amoCRM — orders from b_sale_order are sent automatically, client base is synchronized. Triggers: abandoned cart, review request, reactivation. Marketplaces. Export via YML to Ozon, Wildberries, Yandex.Market. Orders flow into a single system. Analytics and marketing. GA4, Yandex.Metrica, email newsletters (Unisender, SendPulse). Logistics. MyWarehouse, Antor — labels, picking lists.

Migration from other CMS

Migration from OpenCart, WooCommerce, Shopify, MODX: transfer of catalog (elements, properties, sections, images, SEO-URLs), migration of client base (b_user) and order history (b_sale_order), 301 redirects via urlrewrite.php. Parallel operation during the transition period — old site sells, new one is accepted. Team experience — 50+ migration projects.

Example migration: from OpenCart with 50,000 products We transferred all data, including custom attributes and review history, in two weeks with zero downtime. The new store was tested in parallel before switching DNS. Result: 25% faster page load and 15% increase in sales.

What is included in the work (deliverables)

Deliverable Description
Technical specification Business requirements, catalog structure, integrations, cart logic
Infoblock architecture Price types, properties, sections, HL-blocks, ORM entities
Components and templates Custom or adapted standard (Component 2.0)
Integrations Payments, delivery, CRM, marketplaces, 1C
Documentation Content filling instructions, REST API, DB schema
Team training Working with admin panel, exports, updates
Warranty Free support 3 months after launch, bug fixes

Stages and timelines

Average project duration — 2 to 4 months:

  1. Analytics (1–2 weeks) — business requirements, catalog structure, integrations, technical specification
  2. Design (2–3 weeks) — prototypes, design system, layouts
  3. Development (4–8 weeks) — components, templates, integrations, content
  4. Testing (1–2 weeks) — functional, load, acceptance
  5. Launch (2–3 days) — deployment, monitoring, operational support

Budget range: from $10,000 for a basic store to $60,000+ for a complex marketplace with multiple integrations. Clients typically see a 20–30% increase in conversion after optimization. Contact us for a precise estimate — we tailor the solution to your specific catalog size and business logic.

Loyalty program and conversion

Bonus system: points for purchases, reviews, recommendations. Accrual rules by categories, points payment limit, expiration period — all in personal account. VIP levels (bronze, silver, gold, platinum) with increased cashback and free shipping. Recommendations 'You may also like', 'Complete your purchase' — built-in Bitrix tools + RetailRocket or Mindbox. Triggers: birthday discount, promo code for return, interest chain. Personalization via catalog.recommended.products and catalog.viewed.products. A/B testing of two card variants on real traffic. Enhanced E-commerce in GA4 and Yandex.Metrica — full path from click to return visit.

Request a free technical audit of your current store. Our engineers will identify performance bottlenecks and migration risks. Order turnkey online store development — get a ready solution with warranty and support.