1C:Enterprise to Website Integration: Orders, Products, Stock
Manual data entry from 1C to a website and back is a constant source of errors and wasted time. Orders are lost, stock becomes outdated, customers leave. Over 10 years, we have integrated 1C:Enterprise with dozens of websites on various CMS: from 1C-Bitrix to custom solutions on Laravel. Each 1C configuration is unique—standard CommerceML export often does not cover business logic. We build a reliable exchange architecture that eliminates data loss and blocking. We guarantee stable synchronization with any data volume.
One of our projects—a chain of 50 stores—transmitted 10,000 orders daily via RabbitMQ. After implementation, order processing time dropped from 30 minutes to 30 seconds. Time savings—up to 80%. Average maintenance cost savings—up to 40%. We will assess your project for free.
Architectural Integration Options
Option 1: 1C as Master Data 1C holds authoritative data (stock, prices, catalog), the site periodically syncs. Suitable if 1C is the primary accounting system and the site is just a storefront.
Option 2: Two-Way Synchronization Orders are created on the site and sent to 1C. Data updates flow from 1C to the site. Requires careful conflict resolution logic.
Option 3: Site as Master for Orders The site manages orders, 1C receives them for accounting and fulfillment. Catalog data comes from 1C.
How to Choose the Integration Method?
If the load is low and simplicity outweighs fault tolerance, direct web services suffice. For high-load projects, a message broker is 3 times more reliable than direct HTTP. With rare catalog updates (once a day), CommerceML may be enough.
| Architecture | Description | When to Use |
|---|---|---|
| 1C as master | 1C is data source, site is storefront | Rare catalog changes, no online stock |
| Two-way | Full sync of orders and stock | Online store with real-time stock and orders |
| Site as master | Site manages orders, 1C for accounting | Offline + online sales, simplified logic |
Methods of Connecting to 1C
1C Web Services (SOAP/REST) – 1C publishes an HTTP service via a web server (Apache/IIS). The site calls it directly. Requires publishing 1C externally or using VPN.
Message Broker (recommended) – A queue (RabbitMQ or Redis Queue) sits between the site and a 1C agent. The agent (Node.js, Go, Python) reads the queue and calls the 1C COM object or HTTP service.
Site → RabbitMQ (exchange: site_to_1c) → 1C agent → 1C
1C → RabbitMQ (exchange: 1c_to_site) → PHP Worker → Site
CommerceML (1C→site) – XML format for catalog export from 1C. More details in the CommerceML description.
1C: Connector for Websites – Ready module for 1C-Bitrix. For other CMS, no off-the-shelf solution; custom development is required.
What Data Do We Synchronize?
Synchronization of Nomenclature
From 1C we export: SKU, name, description, characteristics (color, size), unit of measure, VAT, images (URLs or base64), barcodes. Export format: JSON via 1C REST API or XML via CommerceML.
// Process received nomenclature
foreach ($nomenclature as $item) {
Product::updateOrCreate(
['sku_1c' => $item['code']],
[
'name' => $item['name'],
'description' => $item['description'],
'price' => $item['price'],
'stock' => $item['stock']
]
);
}
Synchronization of Stock and Prices
Stock and prices change more often than the catalog. They need more frequent sync (every 15–30 minutes). Incremental export—only changed items since last sync—is optimal.
-- In 1C: only export changed items since last sync
SELECT Items.Code, StockBalances.QuantityBalance
FROM AccumulationRegister.WarehouseStock.Balance AS StockBalances
WHERE StockBalances.Period > &LastSync
Transfer of Orders to 1C
Orders are sent to 1C after confirmation and payment. The format depends on the 1C configuration. For "Trade Management", it's a "Customer Order" object:
{
"Number": "SITE-12345",
"Date": "2025-01-01T10:30:00",
"Contractor": {
"TIN": "7712345678",
"Name": "IE Ivanov"
},
"Items": [
{
"SKU": "ART-001",
"Quantity": 2,
"Price": 1500.00,
"Amount": 3000.00,
"VATRate": "20%"
}
],
"TotalAmount": 3000.00,
"Comment": "Courier delivery"
}
Reference Data: Counterparties, Warehouses, Organizations
Before sending an order, we may need to create or find a counterparty in 1C by TIN or email. This is a separate request to the 1C service. If not found, a new one is created.
Typical Errors and Their Solutions
1C is a system with limited fault tolerance. Common errors:
- 1C locked by another user (exclusive mode)
- Referential integrity violation (item in order missing from 1C)
- Timeout with large data volumes
All operations are logged in sync_log with request and error details. Alerts for error bursts are sent to Telegram/email.
| Error Type | Cause | Solution |
|---|---|---|
| 1C lock | Exclusive access | Use transactions with timeouts |
| Referential integrity | Item deleted from 1C | Introduce a deactivation flag, don't delete immediately |
| Timeout | Large data volume | Split into batches of 100 records |
Step-by-Step Integration Plan
- Audit of current 1C and website configuration
- Design integration architecture
- Develop REST API/broker/CommerceML
- Configure sync of catalog, stock, and orders
- Test and debug with production data
- Documentation and training for your staff
- Post-launch technical support
Why Is Security Important?
1C should not be directly accessible from the internet. We recommend:
- VPN or dedicated network between the website server and 1C
- Message broker as the single point of contact
- IP whitelist for the 1C REST service
What Is Included in the Work
- Audit of current 1C and website configuration
- Design integration architecture
- Develop REST API/broker/CommerceML
- Configure sync of catalog, stock, and orders
- Test and debug with production data
- Documentation and training for your staff
- Post-launch technical support
Time savings on order processing—up to 80%, and average maintenance cost savings—40% after implementation.
Development timeline: 6–10 weeks depending on 1C configuration, data volume, and chosen integration method.
Get a consultation for your project. Order an audit of your current integration. We have years of experience and dozens of successful 1C integration projects.







