Sync 1C:Pharmacy with Bitrix for E-Pharmacies

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

Our competencies:

Frequently Asked Questions

Latest works

  • B2B ADVANCE company website development
    B2B ADVANCE company website development
    1460
  • Website development for FIXPER company
    Website development for FIXPER company
    1019
  • Development based on Bitrix, Bitrix24, 1C for the company Development of an Online Appointment Booking Widget for a Medical Center
    Development based on Bitrix, Bitrix24, 1C for the company Development of an Online Appointment Booking Widget for a Medical Center
    764
  • Development based on 1C Enterprise for MIRSANBEL
    Development based on 1C Enterprise for MIRSANBEL
    882
  • Website development on CRM Bitrix24 for DOLBIMBY
    Website development on CRM Bitrix24 for DOLBIMBY
    810
  • Development based on Bitrix24 for the company TECHNOTORGKOMPLEKS
    Development based on Bitrix24 for the company TECHNOTORGKOMPLEKS
    1166

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:

  1. Pass the Datamatrix code from the package in the order
  2. 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/No flag 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:

  1. CommerceML → own Bitrix site (standard exchange + custom attributes)
  2. 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.