1C and Bitrix Order Sync: Reliable CommerceML and REST API Configuration

A client complains that an order has been stuck in "Processing" status for weeks? Or 1C does not see new orders, and managers have to manually call each buyer? We have encountered such cases dozens of times – configuring order exchange between 1C and 1C-Bitrix requires understanding CommerceML mecha

Our competencies:

Frequently Asked Questions

A client complains that an order has been stuck in "Processing" status for weeks? Or 1C does not see new orders, and managers have to manually call each buyer? We have encountered such cases dozens of times – configuring order exchange between 1C and 1C-Bitrix requires understanding CommerceML mechanics and status mapping. With 10+ years of integrations, we have developed a process that guarantees transparent synchronization without losses. Evaluate your project in 1 day, contact us.

Problems We Solve

Statuses do not synchronize. Standard mapping in Bitrix (Store → Settings → Order Statuses) sets the correspondence between the status code in 1C and on the site. Error – 1C returns "Unknown status", the update is not applied. We check each pair and add fallback options. If statuses are renamed in 1C after an update, the mapping breaks. We automate the consistency check on the first day.

Orders are duplicated. If the exchange session is interrupted after file transfer, orders are retransmitted on the next run. Protection – unique order identifier (ACCOUNT_NUMBER) and check for document existence in 1C. In complex cases, we use a REST API that atomically confirms receipt. This reduces CRM load and eliminates manual reconciliation.

Loss of order properties. UTM tags, promo codes, customer type – standard CommerceML does not transmit them. We add them via the OnSaleOrderExport1C handler. We ensure that corresponding requisites are created in 1C. Without this, advertising analytics will be incomplete.

Why Statuses Are Not Synchronized?

A typical reason is identifier mismatch. Example of standard mapping for UT 11:

Status in 1C Bitrix Status Code Description
In progress P Accepted, forwarded for processing
Ready for shipment D Being picked / Ready
Handed to courier F In delivery
Completed FF Delivered, closed
Cancelled by client C Cancelled

If the codes do not match, the status will not update. Problems also arise when statuses are renamed in 1C after a configuration update. We add logging for each call to quickly find mismatches.

How to Speed Up Order Exchange?

CommerceML works on a schedule (every few minutes or hours). If real-time is required, we use the 1C REST API. Transfer speed is an order of magnitude higher, and the order appears in 1C immediately after checkout. Comparison:

Characteristic CommerceML REST API
Latency 1 minute to 1 hour 1–5 seconds
Integrity control via XML, possible errors HTTP statuses, idempotency
Setup complexity low medium
Reliability depends on cron higher, atomic operations

REST API is tens of times faster than CommerceML but requires more work on the 1C side. We use a hybrid approach: basic exchange via CommerceML, and REST for critical orders. This balances cost and speed.

Typical Setup Errors

  • Incorrect status mapping (codes do not match)
  • Missing uniqueness check for orders (ACCOUNT_NUMBER)
  • Write permissions not set for the exchange folder
  • Disk space exhausted for XML files
  • Outdated CommerceML version (we recommend 2.11+)

How We Do It

Setup proceeds in several stages:

  1. Analysis – examine the 1C configuration (UT, UPP, ERP), Bitrix version, and existing handlers.
  2. Design – determine the list of orders to export, status mapping, and transmitted properties. If non-standard handlers (OnSaleOrderExport1C) exist, prepare the code.
  3. Implementation – enable export in the admin panel (Settings → Product Settings → Online Store → Order Exchange). Set statuses: usually N (New) and P (Paid). Period – since the last exchange date to avoid duplicates.
  4. Testing – create a test order, verify its appearance in 1C, and status update on the site. Log requests.
  5. Deployment – migrate to production, set up monitoring (e.g., Telegram bot on sync error).

Example of push sending via the OnSaleOrderSaved event:

Click to see code snippet
\Bitrix\Main\EventManager::getInstance()->addEventHandler( 'sale', 'OnSaleOrderSaved', function(\Bitrix\Main\Event $event) { $order = $event->getParameter('ENTITY'); if ($order->isNew()) { \MyProject\Exchange\OrderPusher::push($order->getId()); } } ); 

What Is Included in the Work

  • Documentation: exchange scheme, status mapping, handler descriptions.
  • Access rights: configure permissions for 1C and the site.
  • Training: instructions for managers on working with orders.
  • Support: 2 weeks of free assistance after launch.

We guarantee stable synchronization. Experience – more than 50 projects on 1C and Bitrix integration. Certified specialists. Contact us for a consultation – we will evaluate the project in 1 day. Investment in configuration pays off through automation. The cost is calculated individually depending on complexity. Starting from $500.

Estimated Timelines

Complexity Timeframe
Basic (CommerceML + mapping) 4–8 hours
Medium (custom properties, handlers) 1–2 days
High (REST API + real-time) 2–4 days

Write to us – we will make an accurate estimate.

According to 1C-Bitrix documentation, the CommerceML protocol supports order status mapping. We follow best practices.