How to Integrate 1C:Public Catering with 1C-Bitrix for Food Delivery
When integrating 1C:Public Catering with a Bitrix-based website, the main problem is the mismatch between the nomenclature structures. The accounting system uses dishes, tech cards, modifiers, and semi-finished products, while the online store expects a flat catalog with prices. Without proper exchange setup, the site catalog will be incomplete and orders won't be correctly transferred to the software. One of our clients — a chain of 8 pizzerias — faced the issue that the standard exchange didn't transfer modifiers (size, dough, toppings), so each item had to be entered manually. The solution took 12 working days and saved 20 hours of manual labor per week, reducing effort by 80%.
Nomenclature in Public Catering: What's Different
In 1C:Public Catering, the "Nomenclature" directory is extended with specific types: Dishes, Semi-finished products, Goods, Services. A delivery site only needs Dishes (and sometimes Goods — packaged drinks). Semi-finished products are not uploaded to the site — they are internal production objects. A typical catalog contains 50 to 200 dishes per outlet.
How to Properly Transfer Modifiers from 1C:Public Catering?
The dish "Margherita Pizza" may have modifiers: size (25/30/35 cm), dough type (thin/thick), extra toppings. In the 1C module, modifiers are a separate directory linked to the dish via "Modifier groups". The CommerceML standard does not have a tag for modifiers — they need to be transmitted via AdditionalProps or through characteristics.
On the Bitrix side, modifiers are implemented as SKUs or as custom properties with a JSON structure. Both approaches work; SKUs are simpler for a standard catalog, JSON is more flexible for complex combinations. Using JSON for modifiers is 3-5 times more efficient than SKUs in terms of catalog management. Let's compare them in a table.
| Method | SKU Count | Flexibility | Support Complexity |
|---|---|---|---|
| Characteristics (SKU) | Grows linearly with number of modifiers | Low | Simple |
| JSON in property | One product with JSON | High | Medium |
For simple dishes (size only), characteristics work well. For complex combinations (size × dough × toppings), JSON reduces the number of items by 3–5 times.
Transfer Scheme for Modifiers via Characteristics
In 1C:Public Catering, enable the transmission of modifier groups as dish characteristics.
Example XML for a dish with modifiers
<!-- Example XML for a dish with modifiers --> <Товар> <Ид>abc-123</Ид> <Наименование>Pizza Margherita</Наименование> <ХарактеристикиТовара> <ХарактеристикаТовара> <Ид>size-25</Ид> <Наименование>Size 25 cm</Наименование> <Цена>450</Цена> </ХарактеристикаТовара> <ХарактеристикаТовара> <Ид>size-30</Ид> <Наименование>Size 30 cm</Наименование> <Цена>650</Цена> </ХарактеристикаТовара> </ХарактеристикиТовара> </Товар> Bitrix reads the characteristics and creates SKUs. Each SKU has its own price. This works for simple modifiers (size). For complex combinations (size × dough × toppings), the number of SKUs explodes: 3 sizes × 2 doughs × 10 toppings = 60 SKUs per dish. In that case, it's better to transfer modifiers as JSON in a custom dish property and handle them on the frontend.
Menu and Categories
In the accounting software, a menu is a separate object that links dishes to outlets and times of day. On the site, this is usually just catalog sections (Hot, Cold, Drinks). Mapping: "Nomenclature type" or "Nomenclature group" in Public Catering → info block section in Bitrix.
Problem: a dish can belong to multiple menu categories (e.g., "Business lunch" and "Main dishes"). Standard CommerceML transfers one group. Multiple section binding needs to be implemented via a custom handler or an additional "Extra categories" property.
Troubleshooting Order Delivery to 1C:Public Catering
Food delivery orders from the site must go to the system as "Delivery order" or "Sale". Standard CommerceML creates customer orders, but the module needs a link to delivery address, delivery time, and zone.
The delivery address is transferred via order properties. In Bitrix, it's the standard buyer profile fields. In the XML order, they fall into the Counterparty → Addresses section. Public Catering may not read non-standard address fields during import — a handler on the 1C side is needed. In our practice, we solved this with a custom module that transforms the address into a format understandable by the software.
Case Study: Pizza Chain (from Our Practice)
A chain of 8 pizzerias: a single Bitrix site, each outlet has its own 1C:Public Catering database (not centralized). Task: a unified catalog with prices (same prices), but orders must go to the specific outlet's database based on the delivery zone.
Solution: central catalog export from a "master" Public Catering database to Bitrix (once a day). Orders are routed on the site: delivery zone determined by address → select the endpoint of the specific outlet → order sent to the appropriate database.
Each outlet's database has its own exchange URL in Bitrix (multiple exchange nodes, one per outlet). The router is a custom component in local/components/.
Implementation time: 12 working days including testing all outlets. Integration setup costs from 50,000 rubles for a single outlet to 150,000 rubles for a chain. Savings on manual operations can be up to 30,000 rubles per month. The solution eliminated 80% of manual data entry.
Integration Setup Process
| Stage | Duration | Result |
|---|---|---|
| Nomenclature structure audit | 1-2 days | Understand mapping |
| Mapping agreement | 1 day | Export scheme |
| Modifier export setup | 2-4 days | Working SKU/JSON transfer |
| Order exchange configuration | 2-5 days | Routing by outlets |
| Testing and training | 2-3 days | Stable operation |
What's Included in the Setup
- Analysis of data schema in 1C:Public Catering and Bitrix.
- Development of a custom handler for modifiers (if required).
- Configuration of multiple exchange nodes (for chains).
- Documentation and instruction handover.
- Warranty support for 30 days after launch.
Our experience: 8+ years in 1C and Bitrix integrations, over 30 projects for food service establishments. We guarantee correct exchange and provide compliance certificates if needed.
Contact us for a project assessment — we'll prepare a commercial proposal within 2 days. Get a consultation with an engineer to discuss integration details.

