Setting up data exchange between 1C and 1C-Bitrix via CommerceML

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.
Our competencies:
Development stages
Latest works
  • image_website-b2b-advance_0.png
    B2B ADVANCE company website development
    1173
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Website development for FIXPER company
    811
  • 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
    564
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Development based on 1C Enterprise for MIRSANBEL
    745
  • image_crm_dolbimby_434_0.webp
    Website development on CRM Bitrix24 for DOLBIMBY
    655
  • image_crm_technotorgcomplex_453_0.webp
    Development based on Bitrix24 for the company TECHNOTORGKOMPLEKS
    976

Configuring Data Exchange Between 1C and 1C-Bitrix via CommerceML

CommerceML 2.08 is the exchange standard between 1C and 1C-Bitrix. The XML format describes catalogue structure, product attributes, prices, stock levels, and orders. Understanding the file structure is critical for diagnosing issues and fine-tuning — the majority of failures occur precisely because of a misunderstanding of what data goes where.

CommerceML File Structure

A full exchange consists of several files transmitted sequentially:

  • import0_1.xml — catalogue structure: groups, properties, attribute types, classifiers
  • import0_2.xml, import0_3.xml... — products (split into N items per file for batch export)
  • offers0_1.xml — offers: prices by type and stock levels by warehouse
  • orders.xml — orders from the website to 1C (direction: website to 1C)

It is important to understand that import*.xml and offers*.xml are separate data flows. The catalogue can be synchronised once per day, while stock levels and prices can be updated every 15 minutes by configuring separate scheduled tasks in 1C.

Configuring Exchange Parameters in 1C-Bitrix

Settings → Product Settings → Online Store:

  • Number of items per file: 1,000–5,000 for large catalogues, to avoid PHP timeouts when parsing a single large XML file
  • Use ZIP compression: reduces transfer volume by 3–5x; mandatory for slow connections or remote hosting
  • Order exchange period: "from the date of last exchange" — the optimal option; does not re-pull previously processed orders
  • Use product offers (SKU): enable if products have attribute-based variants

Property Mapping

A key step — mapping 1C product attributes to info block element properties on the website. On the first exchange, 1C-Bitrix creates properties automatically with codes like PROP_12345 or transliterated names from 1C. This leads to an unreadable structure:

PROP_15234 = "Color"
PROP_15235 = "Size"
PROP_15236 = "Material"

The correct approach: before the first exchange, create properties manually with readable codes (COLOR, SIZE, MATERIAL), and in the OnIBlockElementBeforeAdd event handler define the mapping from auto-generated names to the required codes.

Exchange Authentication

CommerceML exchange operates via HTTP Basic Auth. The exchange user must:

  • Belong to a group with write permissions to the catalogue info block
  • Have access to the exchange component (/bitrix/admin/1c_exchange.php)
  • Not be blocked (a common cause of sudden failures after password rotation)

Create a dedicated user for the exchange — do not use the administrator account.

Verifying Exchange Correctness

After configuration — check the exchange log in 1C-Bitrix:

Store → 1C Exchange Log

Errors such as "Property not found" or "Data type mismatch" indicate mapping issues. An HTTP 500 error when uploading a file — check the PHP error_log and /bitrix/modules/iblock/tools/. Complete absence of entries in the log — the exchange is not reaching the website; check network settings and authentication.

Setup Timeline

Configuring the CommerceML exchange for a standard UT configuration — 4–8 hours. With non-standard properties, attribute mapping, and product offer configuration — 1–2 days.