1C-Bitrix to Ozon Integration: API, Mapping, Sync

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
1C-Bitrix to Ozon Integration: API, Mapping, Sync
Medium
~1-2 weeks
Frequently Asked Questions

Our competencies:

Development stages

Latest works

  • image_website-b2b-advance_0.webp
    B2B ADVANCE company website development
    1368
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Website development for FIXPER company
    956
  • 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
    699
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Development based on 1C Enterprise for MIRSANBEL
    843
  • image_crm_dolbimby_434_0.webp
    Website development on CRM Bitrix24 for DOLBIMBY
    737
  • image_crm_technotorgcomplex_453_0.webp
    Development based on Bitrix24 for the company TECHNOTORGKOMPLEKS
    1086

1C-Bitrix to Ozon (Marketplace) Integration

Ozon does not work via product feeds. Unlike Yandex.Market, where the main channel is a YML file, Ozon requires product upload via the Seller API. This involves POST requests with JSON body, a strict category-based attribute system, and mandatory linking to Ozon product cards. Without API integration, managing a catalog from 1C-Bitrix is impossible — manual filling through the personal cabinet is unviable for more than 50 products. Our experience: 10+ years of Bitrix marketplace integrations, including 50+ projects for Ozon, from small shops to catalogs of 50,000+ SKUs. We guarantee a turnkey, correct exchange. Typical integration cost ranges from $500 to $2000 depending on complexity.

How to Set Up Ozon Attribute Mapping in Bitrix?

The key complexity of Ozon is its category-based attribute system. Each category (category_id) has its own set of mandatory and optional attributes. They can be retrieved via /v1/description-category/attribute. Mapping is built according to the table:

Ozon Attribute attribute_id Mandatory Bitrix Field
Brand 85 Yes "Brand" property
Name 4180 Yes NAME
Model 9048 Yes "Model" property
Color 10096 Yes SKU property
Memory capacity Yes SKU property
Weight with packaging, g 4382 Yes Property or computed
Packaging dimensions 4383–4385 Yes Properties

Reference values

Many attributes are not free text but a selection from Ozon's reference. Brand "Samsung" is a specific option_value_id that must be found via /v1/description-category/attribute/values. When mapping Bitrix properties to Ozon attributes, a correspondence table must be created: infoblock property value → Ozon option_value_id.

Linking to product cards

Ozon combines identical products from different sellers into one card. Linking is done by barcode (EAN), manufacturer's article, or via manual moderation. If the product already exists in Ozon's database, your offer will be linked to the existing card. If not, a new one is created and passes moderation (1–3 days).

Data Mapping: Infoblock → Ozon API

A typical mapping scheme for the integration module:

Infoblock "Catalog" (iblock_id = N)
  ├── NAME → attribute_id 4180 (Name)
  ├── PROPERTY_BRAND → attribute_id 85 (Brand, reference)
  ├── PROPERTY_ARTICLE → offer_id (seller's article)
  ├── PROPERTY_BARCODE → barcode
  ├── DETAIL_TEXT → description (up to 6000 characters)
  └── DETAIL_PICTURE → images[] (up to 15 photos, min 200×200)

SKU Infoblock (iblock_id = M)
  ├── PROPERTY_COLOR → attribute_id 10096 (Color, reference)
  ├── PROPERTY_SIZE → attribute_id (size, depends on category)
  └── Catalog price → price / old_price

Mapping is stored in the integration module settings (if using a ready module from Marketplace) or in the configuration file of a custom solution. Our engineers develop customization for your structure. According to Ozon Seller API, when uploading products, all mandatory attributes must be transmitted.

Price and Stock Synchronization

Prices. Ozon works with two prices: price (selling price) and old_price (strikethrough). The difference must be at least 5% — otherwise Ozon won't show the discount. Update via /v1/product/import/prices, limit 1000 products per request. In Bitrix, prices are stored in the b_catalog_price table. For Ozon integration, a separate price type (e.g., "Ozon Price") is allocated, or the main retail price is used. The synchronization agent runs via cron every 15–30 minutes, selects products with changed price (TIMESTAMP_X) and sends a batch request.

Stocks. Method /v2/products/stocks. Critical for FBS — if the stock on Ozon > 0 but there is no product in the warehouse, you'll receive a fine for order cancellation. Stock synchronization should be as frequent as possible: every 5–15 minutes for fast-moving goods. For multi-warehousing, Ozon supports transmitting stocks by warehouse (warehouse_id). Each Ozon warehouse is mapped to a warehouse in Bitrix (if warehouse accounting via the catalog module is used).

Order Processing

FBS orders are fetched via /v1/posting/fbs/list with filter status = awaiting_packaging. The handler:

  1. Retrieves a list of new orders.
  2. Creates an order in Bitrix via Bitrix\Sale\Order::create() with field mapping: items, quantity, address (if available), total.
  3. Upon order assembly and handover to delivery — calls /v1/posting/fbs/ship with posting_number and tracking number.

Ozon order statuses → Bitrix:

Ozon Action in Bitrix
awaiting_packaging Create order, status "New"
awaiting_deliver Status "Assembled"
delivering Status "Shipped"
delivered Status "Completed"
cancelled Order cancellation

Why Is It Important to Sync Stocks Every 5 Minutes?

Stock discrepancy is the main cause of Ozon fines. If an order is created on Ozon but the sync agent hasn't fetched it yet — the stock in Bitrix hasn't decreased. The next stock request will send outdated data. Solution: upon receiving an order from Ozon, first reserve the stock in Bitrix, then synchronize. Our integration works 2 times faster than standard Marketplace modules due to async agents and batch processing.

Typical Issues

Product fails moderation. Reason #1 — incorrect attribute mapping. Check via /v1/product/info/list the field status_description. A common mistake: brand transmitted as text instead of option_value_id.

Rate limiting. Ozon API limits requests: ~60 requests per minute for most methods. For catalogs of 10,000+ products, price updates must be split into batches with delays.

What's Included

  • Documentation on attribute mapping and data structure.
  • Configuration of cron agents with required frequency.
  • Testing of initial product upload and order processing.
  • Employee training on working with the integration.
  • 6-month guarantee for uninterrupted exchange operation.

Timeframes

Scale Duration
Up to 500 products, simple structure 5–7 days
500–5000 SKUs, multi-warehouse 1.5 weeks
5000+, full automation (orders + stocks + statuses) 2 weeks

The cost is calculated individually. Contact us for a free evaluation of your project. Get a consultation on integration timelines and costs.

All references to API methods are from the official Ozon Seller API documentation.

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

  1. Define business model — choose marketplace type and monetization scheme.
  2. Database design — highload infoblocks for catalogs over 50,000 SKU, separate tables for sub-orders (orders_split) and transactions.
  3. Core development — create module marketplace.vendor, implement product-to-supplier binding, order splitting mechanism, agents for commission calculation.
  4. Payment gateway and 54-FZ integration — configure fiscalization via ATOL Online or CloudPayments.
  5. 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.