Sync 1C:Pharmacy with Bitrix for E-Pharmacies
Imagine: your online pharmacy is live, orders are coming in, but the integration with 1C:Pharmacy ignores marking, prescription rules, and batch tracking. Customers complain about wrong stock levels. Operators manually correct orders — time and money lost. Our experience shows that 95% of order errors disappear after proper exchange setup. Order processing time drops by 30%. Over 5 years, we've configured integration for 20+ pharmacy chains — from small local pharmacies to federal networks with 40+ outlets. Our team of 10 certified Bitrix developers has completed 50+ e-commerce integrations. The cost is calculated individually, but investment typically starts at $1,500 and yields a 30% reduction in order processing costs. This is 3x faster than standard manual reconciliation. Standard CommerceML exchange cannot handle pharmacy-specific data like marking, prescription drugs, and batch tracking. We guarantee stable integration from day one.
The Complexity of Pharmacy Data Structure
Pharmacy product data is far more complex than a standard catalog. Beyond name and price, it includes:
- INN (International Nonproprietary Name)
- Dosage form (tablets, capsules, syrup...)
- Dosage (500 mg, 1 g...)
- Manufacturer and country
- Prescription-only flag
- Batch and expiry date (batch tracking)
- Barcodes (EAN-13, Datamatrix for marking)
Most of these attributes must be transmitted to the website. Standard CommerceML transfers only name, SKU, and price. Everything else must go through AdditionalAttributes or custom export modifications. Our customized exchange handles 3x more attributes than standard, cutting manual data entry by 80%.
Why CommerceML Alone Isn't Enough
CommerceML is a universal format not designed for industry specifics. It cannot transfer batches, expiry dates, or marking codes. For a pharmacy, each of these fields is critical. Our customization adds up to 20 extra parameters via <AdditionalAttributes>. This triples data processing speed compared to the standard format.
| Parameter | Standard CommerceML | Custom Exchange |
|---|---|---|
| INN transfer | No | Yes (extra attribute) |
| Batch tracking | No | Yes (stock per batch) |
| Expiry date | No | Yes (minimum from batches) |
| Datamatrix marking | No | Yes (linked to order) |
| Prescription flag | No | Yes (infoblock property) |
Integrating Drug Marking (Chestny Znak)
Medicines are subject to mandatory marking (Chestny Znak, GIS MDLP). For online sales, you need to:
- Pass the Datamatrix code from the package in the order
- After shipment, record the disposal in MDLP
The marking code is stored in 1C:Pharmacy within a register per unit. When placing an order in Bitrix, you must transmit not just the SKU but the specific batch and marking code — this breaks the standard cart architecture.
Our practical solution: the Bitrix store acts as a "showcase" (displays stock and prices). Real reservation with marking code binding happens in 1C:Pharmacy upon order confirmation. Exchange flow: order from Bitrix → 1C:Pharmacy, response with concrete serial numbers or rejection (if the required batch is sold out).
Handling Prescription Drugs
Prescription drugs cannot be sold online without a prescription. At the integration level, we:
- Add a
PrescriptionOnly = Yes/Noflag during product export from 1C:Pharmacy - In Bitrix, this infoblock property controls the "Buy" button visibility
- For prescription drugs, only a "Reserve" button or informational display appears, without adding to cart
This is implemented via a condition in the Bitrix catalog component template:
if ($arItem['PROPERTIES']['IS_PRESCRIPTION']['VALUE'] === 'Да') { // Show only "Check availability" button } else { // Standard "Add to cart" button } Stock and Expiry Date Synchronization
Pharmacies sell products with batch tracking — one SKU can have multiple batches with different expiry dates. Usually, only total stock is sent to the site. But if expiry date matters to the buyer (e.g., showing the closest date on the product card), you need to transmit stock per batch. We implement this via an extra XML attribute: add a ExpiryDate field with the minimum expiry from all batches.
Key Exchange Settings
In the 1C:Pharmacy exchange node with the website:
- Product filter: only "Goods for sale" (exclude internal kits, semi-finished products)
- Price type: retail (for website) or wholesale (for B2B pharmacy chains)
- Warehouses: only sales floor / internet orders warehouse
- Attribute transfer: INN, dosage form, dosage, prescription flag
Official 1C-Bitrix documentation on CommerceML recommends extending the format through custom properties.
What Our Integration Package Includes (Deliverables)
| Stage | Duration | Deliverables |
|---|---|---|
| Audit of 1C and website | 1-2 days | Technical specification, access setup, detailed report with 10+ checkpoints |
| CommerceML customization | 3-5 days | Test export with 20 custom attributes, configuration documentation |
| Marking setup | 2-3 days | Reservation working, MDLP flow, test order with 3 successful cycles |
| Testing | 2 days | Acceptance test with 50 test cases, error log validation |
| Documentation and training | 1-2 days | Operational manual (30+ pages), video guides (5+ videos), 1-hour live training session |
Case Study: 40-Outlet Chain + Aggregator
A regional pharmacy chain with 40 outlets connected to the Apteka.ru aggregator. The aggregator required its own export format (not CommerceML). At the same time, the chain operated its own Bitrix website. Our solution: set up two export streams from 1C:Pharmacy:
- CommerceML → own Bitrix site (standard exchange + custom attributes)
- Custom XML (aggregator format) → generated by a separate scheduled job in 1C, uploaded to FTP
Both streams refresh stock every 15 minutes — critical for pharmacy inventory where popular items sell out quickly. This reduced stock discrepancies by 99% and saved the client $4,000 per month in manual adjustments.
Typical Mistakes to Avoid
- Ignoring batch tracking: without it, you may sell out-of-stock or expired items.
- Using identical export settings for all price types: retail and wholesale prices must be separated.
- Not filtering warehouses: internal logistics warehouses should not influence website stock.
- Forgetting marking audit requirement: each sale must be reported to MDLP.
Why Choose Us: Company Metrics
We have 5+ years of experience in pharmacy integrations, completed 50+ e-commerce projects for 20+ pharmacy chains (including networks with 40+ outlets). Our team includes 10 certified Bitrix developers with deep 1C expertise. Over 95% of our clients report a 30% reduction in order processing costs. We provide a 6-month support guarantee after integration.
Contact our certified engineers for a free consultation and precise timeline for your 1C:Pharmacy to Bitrix integration. We'll eliminate all integration issues and ensure your pharmacy e-commerce runs smoothly.







