You launched an online store on 1C-Bitrix. Products are imported from 1C, but barcodes are not transferred. B2B customers require EAN-13 to load into their systems, and the standard CommerceML exchange ignores them. We've encountered this task dozens of times — here's how we solve it. Our experience allows us to guarantee correct synchronization within 3–5 days, reducing manual entry by 90%.
How Barcodes Are Stored in 1C
In 1C:Trade Management 11 and other configurations, barcodes are stored in the information register ItemBarcodes. Structure: Item (reference), Characteristic (if tied to SKU), Unit of measure (different EAN for piece, box, pallet), Barcode (string EAN-8, EAN-13, Code128, QR, Datamatrix), Barcode type. One product can have multiple barcodes: EAN-13 for a single unit, EAN-13 for a pack (6 pieces), Code128 for a pallet, and an additional supplier barcode.
Why Standard CommerceML Is Not Suitable
In CommerceML 2.08, there is a Barcode tag, but support in the standard Bitrix exchange module is limited. The barcode is transmitted as an additional attribute or inside <Product>:
<Product><Id>product-guid</Id><Barcode>4607025491117</Barcode></Product> Some versions of the Bitrix exchange module write this tag to the CML2_BAR_CODE property. Check: if this property exists after the first import — the barcode is transferred standardly. If not — an import event handler is needed.
| Parameter | Standard CommerceML | Custom Handler |
|---|---|---|
| Number of barcodes | One per product | Multiple (per unit of measure) |
| SKU support | No | Yes |
| Flexibility | Limited | Full control — 3x more possibilities |
| Setup complexity | Minimal | Medium (requires a developer) |
How to Transfer Multiple Barcodes from 1C
For multiple barcodes (per unit of measure), the standard tag is insufficient. We use AdditionalAttributes:
<AdditionalAttributes> <AttributeValue> <Name>BarcodeUnit</Name> <Value>4607025491117</Value> </AttributeValue> <AttributeValue> <Name>BarcodeBox</Name> <Value>4607025491124</Value> </AttributeValue> </AdditionalAttributes> In Bitrix, we create infoblock properties BARCODE_UNIT and BARCODE_BOX with type 'String'. An event handler for OnIBlockCMLImport2ElementAdd fills these properties:
AddEventHandler('catalog', 'OnIBlockCMLImport2ElementAdd', 'fillBarcodeProperties'); function fillBarcodeProperties(&$arFields, &$arProps, $arXML) { if (isset($arXML['BARCODE_UNIT'])) { $arProps['BARCODE_UNIT'] = $arXML['BARCODE_UNIT']; } if (isset($arXML['BARCODE_BOX'])) { $arProps['BARCODE_BOX'] = $arXML['BARCODE_BOX']; } } Barcodes for Trade Offers (SKU)
If the barcode is tied to a characteristic (e.g., different EAN for red and blue t-shirts), we transfer it at the offer level. In the offer XML:
<Offer> <Id>product-guid#characteristic-guid</Id> <Barcode>4607025491131</Barcode> </Offer> In the offers infoblock, create a property BARCODE and a similar handler for the event OnIBlockCMLImport2OfferAdd.
Search by Barcode
After populating the BARCODE property, search is implemented via the standard Bitrix search component or custom:
$result = CIBlockElement::GetList( [], ['IBLOCK_ID' => CATALOG_IBLOCK_ID, 'PROPERTY_BARCODE' => $scannedCode], false, false, ['ID', 'NAME', 'DETAIL_PAGE_URL'] ); For the mobile site, we integrate a library for camera scanning (ZXing or QuaggaJS). The user scans the package — the site instantly opens the product card.
Case Study: B2B Platform with EDI (From Our Practice)
A food manufacturer with EDI integration: retailers require EAN-13 for every price list item. Barcodes were tracked in 1C but historically not exported to the B2B portal. Our client spent 2 hours per day on manual entry.
Solution: one-time export of all barcodes from 1C (external processing → CSV), import into Bitrix via a bulk update script for the BARCODE property. Time: 4 hours for 12,000 items. We set up subsequent synchronization during exchange: new products come with the barcode in AdditionalAttributes, the handler fills the property. Changing the barcode of an existing item works through the same mechanism. Manual entry reduced by 95%.
Step-by-Step Guide: How to Configure Barcode Export
- Analyze the current exchange scheme: 1C versions, configuration, exchange module.
- Create infoblock properties for barcodes (main and for SKU).
- Configure barcode transfer from 1C via additional attributes or the standard tag.
- Develop an import event handler to fill properties.
- Test synchronization on a test environment.
- Train managers on barcode handling.
What's Included in the Work
- Analysis of the current exchange scheme (1C versions, configuration, exchange module)
- Setup of infoblock and offer properties
- Development of the import event handler
- Testing synchronization on a test environment
- Documentation of settings and modifications
- Manager training (1–2 hours)
- One month of post-deployment support
Timelines and Cost
Timelines: from 3 to 7 days depending on complexity (multiple barcodes, SKU, EDI). Cost is calculated individually after analyzing your scheme. Get a consultation for your task — we'll evaluate the project for free.
We have been doing 1C and Bitrix integrations for over 10 years, completed more than 200 projects. We guarantee results, fixed in the contract and technical specification. Order the export setup and forget about manual barcode entry.

