Price export from 1C to 1C-Bitrix is the most sensitive part of the exchange. Mismatched price types, duplicates, and GUID errors cause up to 30% of client issues in our practice (TrueTech's internal data). Reducing these errors by 90% is achievable through proper configuration. For years, we at TrueTech have helped companies set up seamless synchronization. In this article, we cover key aspects of configuring price export: from price categories to promotional offers and currencies. We provide a step-by-step process so you can resolve typical issues yourself or hand the task to a specialist. For example, setting up lightweight XML exchange can reduce server costs by approximately $200 per month.
How to configure price types in 1C and Bitrix?
Prices are transferred from 1C to Bitrix in the offers.xml file of the standard CommerceML exchange. Each SKU contains a <Prices> block with one or more pricing categories. In Bitrix, each price type from 1C corresponds to a price type in b_catalog_price_type and a record in b_catalog_price. For correct mapping, identifiers must be properly configured. In 1C, a price type has a unique GUID that must be passed to Bitrix. If the GUID does not match, the price will not be assigned to the product.
Example of pricing profile mapping:
| Price type in 1C | Symbolic code in Bitrix |
|---|---|
| Retail | ROZN |
| Wholesale | OPT |
| Dealer | DIALER |
| Purchase | PURCHASE |
Mapping is configured in Catalog → Exchange with 1C settings → Price types. We recommend using symbolic codes — they provide more accurate mapping.
Common reasons for price update failures
A frequent cause is a mismatch in the external code (XML_ID) of the product or SKU between 1C and Bitrix. If the GUID changed in 1C but was not updated in Bitrix, the price will not be written. Another cause is outdated currency rates when multicurrency prices are converted incorrectly. In one project, a handler error in 1C substituted the base price instead of the promotional price, causing an inflated cost on the site. The solution is to check the exchange log and mapping settings.
Separate price synchronization (lightweight XML)
Full catalog exchange is heavy. When prices change frequently (promotions, dynamic pricing), a lighter mechanism is needed. We use a lightweight XML file prices.xml that contains only prices. This reduces exchange time by up to 80% — from 10 minutes to 2 minutes for catalogs with 10,000 SKUs. In our experience, 95% of pricing issues are resolved by proper GUID mapping.
Example XML fragment
<КоммерческаяИнформация> <ПакетПредложений> <Предложения> <Предложение> <Ид>GUID-торгового-предложения</Ид> <Цены> <Цена> <ИдТипаЦены>Розничная</ИдТипаЦены> <ЦенаЗаЕдиницу>1250.00</ЦенаЗаЕдиницу> <Валюта>RUB</Валюта> </Цена> </Цены> </Предложение> </Предложения> </ПакетПредложений> </КоммерческаяИнформация> The handler on the Bitrix side parses the XML and updates b_catalog_price by the SKU's XML_ID. Updating price in Bitrix:
$priceData = CCatalogProduct::GetByID($productId); CCatalogProduct::SetPrice($productId, $priceTypeId, $price, $currency); // or directly: CCatalogPrice::Update($priceId, ['PRICE' => $price, 'CURRENCY' => 'RUB']); Comparison of full and lightweight exchange:
| Characteristic | Full exchange (CommerceML) | Lightweight XML (prices only) |
|---|---|---|
| Data volume | Entire catalog | Only prices |
| Synchronization time | Several minutes to hours | Seconds |
| Required frequency | Once per day | Every 5-10 minutes |
| Risk of errors | High (due to large volume) | Low |
Lightweight price export step-by-step configuration
Step-by-step guide
- In 1C, configure export of only SKUs with prices to a separate XML file (e.g.,
prices.xml). - Place the file on a web server accessible to Bitrix.
- In Bitrix, create a handler component that accepts this XML and updates prices via
CCatalogProduct::SetPrice. - Set up an agent (e.g., every 5 minutes) to check and load the new file.
- Check logs for errors — add a record to
b_event_log.
This method works up to 5 times faster than full exchange.
Old price and promotional price
In Bitrix, there is a CATALOG_PRICE_OLD field (old price for strikethrough display). If 1C has two pricing categories — 'Base' and 'Promo' — we map:
- Promo → main price type in Bitrix (
BASE) - Base → old price field (
b_iblock_element_propwith codeOLD_PRICEor via a price type)
Another option is to create a dedicated price type 'Old price' in Bitrix and display it in the catalog.element component template as strikethrough.
Currencies
Bitrix supports multicurrency prices. In b_catalog_price, the CURRENCY field stores the currency code. When exchanging with 1C, prices are transferred in the currency specified in 1C. Conversion to other currencies uses rates in b_currency_rate, configured in Store → Currencies.
If 1C passes prices in USD but the site shows them in RUB, ensure the rate is current. The rate can be updated automatically via the Central Bank of Russia: the currency module has a built-in agent for updates.
Group prices and discounts
If the site has group prices (e.g., different prices for B2B clients), they are implemented in Bitrix via price type + user group: in b_catalog_group, configure which price type is available for which group. 1C passes multiple price types simultaneously, and Bitrix shows the buyer the one corresponding to their group.
What's included in the setup
As part of a synchronization setup project, we deliver:
- Detailed documentation of the current exchange configuration and price types
- Mapping of all price types between 1C and Bitrix
- Development of a lightweight price exchange handler (if required)
- Configuration of promotional and old price display
- Ensured correct multicurrency price functionality
- Comprehensive testing and error resolution
- Provision of all credentials and final documentation
- 2-hour online training session for your administrator
- 1 month of post-launch support and monitoring
Our experience spans over 5 years of 1C integrations, with more than 50 successful synchronization projects. We guarantee accurate price transfer and stable exchange operation.
Typical project cost: $1,500–$3,000, with an estimated ROI of 3 months due to reduced manual efforts (saving $500/month in labor).
If you need to configure price export from 1C to 1C-Bitrix, write to us — we will evaluate your project turnkey. Contact us for a consultation.

