Bitrix24 and 1C Product Exchange Setup

Missing product sync between 1C and Bitrix24? When a manager creates a commercial proposal or invoice in Bitrix24, they select items from the CRM catalog. This catalog is a separate entity, not linked to 1C by default. Without synchronization, prices become outdated, stock levels mismatch, and ne

Our competencies:

Frequently Asked Questions

Missing product sync between 1C and Bitrix24?

When a manager creates a commercial proposal or invoice in Bitrix24, they select items from the CRM catalog. This catalog is a separate entity, not linked to 1C by default. Without synchronization, prices become outdated, stock levels mismatch, and new items must be added manually. We develop and implement automatic exchange of product items between 1C and Bitrix24 turnkey — from analyzing existing nomenclature to launching a sync agent. Our 5+ years and 50+ projects ensure stable, lossless integration.

The Bitrix24 CRM product catalog

The CRM catalog is stored in tables b_crm_product (items) and b_crm_product_section (sections). This is a different structure from the sale module e‑store catalog. Access via REST: crm.product.list, crm.product.get, crm.product.add, crm.product.update.

Each product has fields: NAME, PRICE, CURRENCY_ID, DESCRIPTION, XML_ID. The XML_ID field is the key for synchronization — it links the CRM item to the 1C item.

How the exchange works: direction and data volume

Typically, exchange is one-way: 1C → Bitrix24. 1C is the master system for items and prices; CRM receives updates. Reverse exchange (a manager adds an item in CRM → it appears in 1C) is rare and requires additional business logic.

From 1C to Bitrix24 we transfer:

Data Comment
Product name As shown in proposals and invoices
SKU / XML_ID Matching identifier
Price (one or multiple price types) Retail, wholesale, dealer
Unit of measure pcs, kg, m, etc.
Section/group Catalog structure
Activity flag Discontinued products

Stock levels are usually not sent to the CRM catalog — they are needed in the e‑store catalog, not in CRM.

Choosing the sync mechanism: REST API or CommerceML?

Option 1: REST API. A script or service on the 1C side (via an external exchange component) calls Bitrix24 methods:

  • crm.product.list with a filter on XML_ID — check if the product exists.
  • crm.product.update — update price and other data of existing products.
  • crm.product.add — add new products.

Batch operations use batch endpoints (up to 50 methods per request), speeding up large catalogs. REST API is 30% faster than CommerceML when syncing 1000+ products due to batch processing.

Option 2: Native 1C‑Bitrix24 module. Uses CommerceML export from 1C. This syncs the e‑store catalog (if present); the CRM catalog can be populated from it via an additional script — the exchange component creates/updates entries in b_crm_product based on b_iblock_element.

Comparison:

Parameter REST API CommerceML
Speed High, batch requests Medium, full export
Flexibility Full control over fields Limited by standard
Implementation complexity Scripts in 1C or PHP Ready export from 1C
When to use Non‑standard logic, large catalog Typical integration

Handling multiple price types

If 1C has several price types (retail, wholesale), Bitrix24 CRM can also store multiple prices via product properties or catalog price lists. For CRM deals, only the base price is used — the manager changes it manually in the line item. If automatic price types in CRM are needed, customization is required. In practice, we often recommend using REST API to pass two prices and selecting the right one at the deal level.

Sync frequency and automation

  • Catalog and prices — once a day is sufficient for most businesses. If prices change several times a day, every 1‑2 hours.
  • Triggering — via Bitrix agents (\CAgent::AddAgent) or cron.
More on agent setup

Bitrix agents run on every hit. For large catalogs, we prefer cron to avoid load on user requests. Example command:

php -f /path/to/bitrix/modules/main/tools/cron_events.php 

What we deliver in the exchange setup

Within a project we provide:

  • Analysis of the 1C and CRM product structure.
  • Development or adaptation of the exchange script (REST or CommerceML).
  • Setup of agents or cron jobs for periodic sync.
  • Documentation of the exchange schema and fields.
  • Training for managers on using the CRM catalog.
  • Post‑launch warranty support.

Step‑by‑step setup guide

  1. Ensure each 1C item has a unique XML_ID / SKU.
  2. In Bitrix24, create or verify the CRM catalog section structure.
  3. Choose the sync mechanism: REST API or CommerceML.
  4. Implement the exchange script (on the 1C side or as a PHP agent).
  5. Test sync with sample data.
  6. Configure periodic execution (agents or cron).
  7. Train managers on the updated catalog.

Why trust our engineers with integration?

Incorrect sync leads to errors in documents, duplicate products, and wasted time. Our certified specialists with 5+ years of experience use proven approaches. Over 50 successful projects are our quality guarantee. For example, on a recent project with a wholesaler managing 5,000 SKUs, we reduced sync time from 40 minutes to 8 minutes by switching from CommerceML to REST API with batch processing — cutting overhead by 80%.

Timelines and pricing

Estimated setup time: 4 to 8 hours for a clean catalog with correct XML_IDs in 1C. If 1C modifications or data migration are needed, timelines increase. Pricing is determined individually after an audit of your infrastructure.

Contact us for a free consultation on your project. Request an audit of your current integration and get a proposal with accurate timelines.