MoySklad
Odoo
amoCRM
Tizimlashtirish
Marketing
AI agentlar
BUline
MoySklad
Odoo
amoCRM
Систематизация
Маркетинг
Маркетинг: обзор
Стратегия и контент
Стратегия и планКонтент и SMM
Рекламные каналы
Google AdsYandex DirectРеклама в TelegramInstagram и FacebookМаркетплейсы
Органический рост
SEO
Измерение и аналитика
Аналитика и KPI
AI-агенты
BUline
MoySklad
Odoo
amoCRM
Systematization
Marketing
AI agents
BUline
Home/Odoo/Pharmacy chain
Odooimplemented by BUline
Odoo · Industries · Pharmacy chain

Pharmacy chain — batches, expiry dates and branches in one system

Every medicine is tracked by batch number and expiry date, branches supply each other with stock, and the POS warns about an expired medicine. Prescriptions, e-prescriptions and product marking lie outside the Odoo standard: we describe them openly, with sources.

Batch and expiryBranchesRecipeLabelingPOS
Problems

Everyday obstacles in a pharmacy

A medicine is a product with an expiry date, a batch and its own rules. A mistake here costs more than money: it affects patient safety and inspections.

Batch and expiry

  • Several batches of the same medicine get mixed on the shelf
  • A medicine nearing expiry is found too late
  • When a notice about a substandard batch arrives, no one knows which branches it went to

Prescription and documents

  • Prescription and non-prescription medicines are sold under the same rule
  • The prescription record (batch, pharmacist) stays on paper and gets lost
  • The e-prescription, marking and the POS run in three separate programs

Branches and pricing

  • A branch's stock reaches head office late
  • Transfers between branches are arranged by phone
  • Whether the retail price matches the reference price is checked by hand
Industry package

Does Odoo have a package for pharmacies: what is included and what is not

Odoo S.A. lists a “Pharmacy” industry package in the Apps Store (technical name pharmacy_retail; available in the 19.0 and 20.0 series). The page describes it as a retail pharmacy management system: purchasing and sales, batch-based inventory and tracking of batch expiry dates. The package relies on the Point of Sale, Inventory, Sales, Purchase, Invoicing, Studio, Knowledge, Calendar, Contacts and Discuss apps. It requires Odoo Enterprise and is available on Odoo Online, Odoo.sh and your own server. Odoo's Pharmacy industry page, for its part, lists Knowledge for the POS, inventory, sales, purchasing, accounting and staff training. Prescription processing is mentioned there in a single sentence, without detail.

The package is a pre-configured base, not a ready-made pharmacy program. The pages do not describe prescription checks, e-prescriptions, medicine marking, reference-price control or the Uzbekistan localization of Odoo. We assess these at the diagnostic as work added on top of the package.

A search for “pharmacy” in the Apps Store showed more than a hundred apps in the 19.0 series (25 October 2026). Most of them are third-party modules. They cannot be installed on Odoo Online; the quality of each and its fit with Uzbekistan's requirements are checked individually.

—
—
—
In Odoo

Which apps cover pharmacy operations

The core is the POS and inventory run by batch. Which apps are needed is determined at the diagnostic.

Point of Sale

Sales, batch selection, a warning on an expired batch, customer account, returns, shifts.

Warehouse

Central warehouse and branch warehouses, internal transfers, goods in transit, stocktaking.

Expiration date

Four dates per batch (lot), a warning, and issuing the medicine closest to expiry first (FEFO).

Barcode

Scanner for receiving and counting; the GS1 nomenclature reads the batch and expiry date. Included in Enterprise.

Purchase

Minimum stock rule, supplier orders, reconciliation with the supplier's records.

Quality control

A quality checkpoint at receiving, separation of a substandard batch. Included in Enterprise.

Loyalty

Loyalty card, coupon, gift card, a separate price list for B2B customers.

Accounting

Journals by branch, supplier invoice, cash journal, bank reconciliation.

Studio

The prescription register form and additional fields without code. Included in Enterprise.

Process

From supplier to patient to report

At every stage the document stays in Odoo, so head office sees branch stock and batches on its own screen.

01Receiving

The medicine arrives with a waybill and an invoice. The quantity is checked with a scanner, and the batch number and expiry date are entered. For marked medicines, code tracking is separate (below).

02Quality check

A checkpoint fires on receipt. A substandard or suspicious batch is set aside in a separate location.

03Hosting

Locations are created by storage condition: ordinary shelf, refrigerator, quarantine. Each medicine is counted only in its own place.

04Distribution

A transfer document is created from the central warehouse to the branch. Goods in transit sit in the “transit” location and remain the company’s property.

05Sale at the POS

The cashier scans the medicine, and the batch is selected or imported. If the batch is expired, a warning appears. Even when the batch is missing or wrong, the POS does not stop the sale; it only requires the warning to be confirmed.

06Dispensing on prescription

Checking the prescription and keeping its record are built as a rule outside the POS (section below).

07Expiry control and destruction

When the alert date arrives, the medicine becomes visible. A substandard or expired medicine is withdrawn from circulation and written off by an act.

08Report

A manager sees sales, stock, batches nearing expiry and write-offs by branch and medicine group.

The most delicate area

Prescription sales: what Odoo does and what it does not

Odoo's documentation does not describe the prescription operation, prescription checks or a prescription register. For that reason this part counts as work added on top of Odoo.

The rules are official: the regulations on retail sales for pharmacies (Cabinet of Ministers Resolution No. 185 of 6 April 2017, Annex 2; latest edition in force since 3 July 2026). Under them, a prescription medicine is not placed where a customer can see it. A prescription is on paper or electronic. The medicine is dispensed under the international nonproprietary name (INN) given in the prescription. On a paper prescription the pharmacist writes the medicine name, the batch number and their own name, signs it, and the pharmacy stamp is applied. A fully dispensed prescription is stamped “Prescription is invalid”, and a prescription that does not comply with the rules is recorded in a separate register. The prescription registration journal is given in the regulation's annex: date, patient, institution and doctor, medicine name, quantity, dose, form, price, patient's address and phone, notes.

The route in Odoo: a prescription register form built in Studio (prescription number, doctor, institution, INN, quantity), its output as a report, and a mandatory-field rule at the POS for prescription medicines. The type of customization (Studio or process automation) is chosen at the diagnostic.

  • Both paper and electronic prescriptions are allowed by law; the e-prescription is covered below
  • The prescription register is built in Odoo as a custom form and report: Studio →
  • A medicine that has been sold is not taken back (Resolution No. 185, Annex 2, para. 39): the return function is given to a restricted role, on access rights
  • We confirm in writing with the responsible pharmacist the list of prescription medicines and the groups that require special accounting
—
—
—
Hypothetical case

The supplier warned about a batch: what is left in which branch

The example is hypothetical. A supplier reports that one medicine batch has been found substandard. The warehouse clerk needs to find the answer in a few minutes.

  • The clerk finds the batch number on the “Lots/Serial Numbers” page
  • The “Location” button shows how much is left in which branch and location, and “Traceability” shows all movements with that batch
  • In Odoo 20, the “Transfers” button on the batch form opens exactly the delivery lines: you can see which branch or customer the batch went to
  • The remaining stock is moved to a quarantine location and is not reserved for other orders
  • Under the regulations, a medicine withdrawn from circulation is destroyed within 30 days; the responsible person is appointed by order, and the act records the name, batch and quantity
—
—
—
Honest scope

What Odoo includes as standard and what we add

Batches, expiry dates and branches are in the standard apps. The prescription, e-prescription, marking and fiscal receipt are separate work. The information follows the Odoo 20 documentation; if your version differs, we check it at the diagnostic.

GoalIn standard OdooExtra work (BUline)
Batch (lot) and shelf lifeAvailable: four dates under batch tracking (expiration, best before, removal, alert)Which medicine groups to enable it for, and how it is entered at receiving
Issuing the batch nearest expiry first (FEFO)Available: the removal strategy. At the POS the cashier selects the batch, or it is importedTesting automatic selection at the POS
Stopping the sale of an expired medicinePartial: the Odoo 20 POS warns; blocking the sale is not described in the documentationA mandatory-stop rule, plus a custom module if needed
Receiving by 2D code (Data Matrix)Available: the GS1 nomenclature in the Inventory barcode settings, batch and expiry fields. Scanning at the POS is not described in the documentationTesting the scanner model and the code structure
Connecting to Asl Belgisi (the national marking system): code check, sale reportingNot available: not mentioned in Odoo's documentationA separate project: the connection route is established in writing with the operator's documentation
Sale on prescription, prescription registerNot available: the documentation describes neither the prescription operation nor the registerStudio form, report and POS rule
E-prescriptionNot available: not mentioned in the documentationThe terms for connecting to the digital health system are established in writing
Transfers between branches, central purchasingAvailable: several warehouses, a transit location, minimum and maximum rulesBranch structure, locations, roles
Reference price and markup controlPrice lists and discount rules exist; there is no check against the reference priceA reference price field and a report comparing it with the POS price
Sale by the piece (blister)Can be set up with units of measure and packagingThe regulations allow sale by the piece (if the name, batch, expiry date and manufacturer are written on the pack), but prohibit dispensing a medicine whose primary packaging has been broken (Annex 2, para. 30)
Fiscal receipt (online or virtual cash register)No: the Odoo documentation does not mention a connection to an Uzbekistan fiscal moduleConnecting to a cash register device from the registry. POS page
Uzbekistan requirements

Local requirements for pharmacies

The following has been checked against official sources. Rules change often: we reopen the current edition on the day of the decision and confirm it in writing with the responsible pharmacist.

Retail regulations (Resolution No. 185)

  • Medicines are sold only through a pharmacy and its branches (para. 3). The pharmacy manager must have a higher pharmaceutical education (para. 8)
  • The licence number, validity period and issuing body are displayed, or a copy of the licence is kept open to the consumer (para. 14)
  • A markup ceiling and a retail reference price are set for prescription medicines (para. 10). We establish the current values in writing from the official source
  • A substandard, counterfeit or expired medicine is withdrawn from circulation and destroyed within 30 days (destruction regulations)

E-prescription (Resolution No. 570)

  • Cabinet of Ministers Resolution No. 570 of 8 September 2025 (Annex 1) sets the procedure for prescribing prescription medicines on the basis of an e-prescription. Pilot phase: the city of Tashkent and 15 districts, from 10 December 2025
  • A pharmacy must be connected to the digital health platform or the ministry's electronic health system and have a stable internet and power supply
  • The pharmacist dispenses the medicine by matching its name, expiry date, batch and lot number to the prescription, and fills in the pharmacy section (para. 18)
  • Deadlines: under para. 2, connection to the platform across the republic by the end of 2026; a note to Annex 4 says the e-prescription procedure is introduced nationwide from 1 January 2027. We establish in writing with the ministry from which exact date it is mandatory

Digital marking (Resolution No. 149)

  • Medicines and medical devices are in the mandatory marking group: the Tax Committee's list gives 1 September 2022 for medicines
  • The transition schedule for retail organizations (Annex 4): registration in the “Asl Belgisi” system, equipment and software for receiving marked goods, code data on the invoice, reporting the sale to consumers, recording the movement of goods in the system
  • The deadlines for selling off or withdrawing stock without marking depend on the group: 1 August 2025, 1 November 2025 and 1 March 2026
  • The resolution was amended by Resolution No. 23 of 23 January 2026 and PF-35; from 1 July 2026 the code on the receipt is checked in Asl Belgisi. QR and Data Matrix in the warehouse

Tax, POS, data

  • Online or virtual cash register (Resolution No. 943, PF-5813). How it relates to the Odoo POS: POS page
  • PF-229 (27 December 2024), para. 3: from 1 April 2025, legal entities trading in pharmaceutical products are VAT payers regardless of income. We establish the procedure for other benefits in writing with the tax service
  • Health data falls into a special category (Article 25 of the personal data law): processing requires written consent, including electronic consent, or a case provided for by law. Which basis applies to a pharmacy we confirm with a lawyer
  • Where the database is located: the personal data law and hosting
Integrations

Systems that connect to a pharmacy

Each connection is assessed and built separately. We do not promise that a “ready-made connector exists.”

Labeling

  • The “Asl Belgisi” system: the connection method is established in writing with the operator's documentation
  • 2D scanner, code tracking at receiving, code on the receipt
  • Code data in the supplier's electronic invoice

Government systems

  • The e-prescription module and the digital health platform
  • Their public API documentation has not been confirmed: we ask the ministry for the terms in writing
  • A procedure for entering prescription data manually is also considered

POS and equipment

  • Cash register equipment from the registry and its API
  • Scanner, thermal printer, scale, customer display
  • Electronic invoice: electronic documents and tax
For managers

What the head office sees on screen

Reports are not copied into a separate spreadsheet: they are generated from the sales and inventory documents in the same database.

Sales

  • Sales by branch and medicine group
  • POS sessions and cash differences
  • Loyalty program participation

Warehouse and expiry

  • A filter for batches nearing or past expiry
  • Products about to expire in the Odoo 19 forecast report
  • Stock in quarantine and ready for destruction

Chain

  • Branch stock and medicines running low
  • Goods in transit during transfers between branches
  • Inventory count differences
The BUline Method

How we implement Odoo in a pharmacy chain

The stages follow the general BUline Method. The timeline is agreed in writing after the diagnostic. Implementation process →

01Diagnostic1–2 weeks

We study the central warehouse, one or two branches and the POS process, the prescription and marking procedure, and the current program and cash register tool. Written questions to the government systems are prepared. Result: a business requirements document (BRD).

02Architecture1–3 weeks

We confirm the industry package or set of apps, the branch and warehouse structure, the prescription register form, the marking and POS route, and the hosting type.

03Pilot branch8–16 weeks

First one branch works with real sales: receiving, POS, prescription register, expiry control. Then the other branches are connected in turn.

04Training

The pharmacist, cashier, warehouse clerk and branch manager are trained by role; practice runs on your own medicine list. Instructions and video lessons are provided.

05Post-launch support30 days + ongoing

After launch, 30 days of intensified support, then agreed ongoing assistance. When the rules change, the connection is re-checked.

Preparation

What to gather before we start

This list speeds up the diagnostic. We can start even if not everything is ready.

Chain

  • List of branches, warehouses and POS terminals
  • Whether each branch is a separate legal entity
  • The licence and the list of responsible pharmacists

Medicines

  • Catalogue, barcode, INN and IKPU (MXIK) codes
  • Groups of marked and prescription medicines
  • Groups by storage condition (refrigerator, quarantine)

Rules and systems

  • The prescription register form and who keeps it
  • Who holds access to the current cash register tool, the marking system and the e-prescription system
  • How prices are set and compared with the reference price
Mistakes

Common mistakes and how to avoid them

MistakeConsequenceHow we prevent it
The POS skips a batch error as a “warning”A sale without a batch, and traceability breaks downA cashier instruction and, if needed, a mandatory rule
Putting all medicines under the same trackingExtra data entry grows at receiving and saleSplitting product groups and choosing the tracking type
Postponing the setup of the prescription registerThe paper register and the system drift apartApproving the register form at the start of the project
Treating marking and the POS as two separate processesThe same medicine is recorded differently in two placesConfirming the connection route in writing at the architecture stage
Taking e-prescription deadlines from an outdated sourceWrong preparationEstablishing the current position in writing with the ministry
FAQ

Frequently asked questions

Does Odoo have a ready-made package for pharmacies?

Yes. Odoo S.A. lists a “Pharmacy” industry package in the Apps Store: POS, purchasing and batch-tracked inventory. It requires Enterprise and is also available on Odoo Online. Prescription checks, the e-prescription, marking and the Uzbekistan localization of Odoo are not described on the page: they are assessed as separate work.

Does Odoo control prescription sales?

The standard apps do not describe the prescription operation or a prescription register. We build this part with a Studio form, a report and a POS rule. The rules themselves are in Annex 2 of Resolution No. 185; we reopen the current edition at the diagnostic.

Does Odoo work with the e-prescription?

Odoo's documentation has no connection to the e-prescription module. Under Resolution No. 570, a pharmacy connects to the digital health platform: across the republic by the end of 2026 (para. 2), while a note to the annex gives 1 January 2027. We establish the connection method and the current date in writing with the ministry.

Can marked medicines be sold?

Medicines are in the mandatory digital marking group. Odoo's documentation does not mention a connection to “Asl Belgisi”, so the connection is assessed as a separate project. Scanning a 2D code at receiving and recording the batch and expiry date are available in the Inventory barcode settings.

Can an expired medicine slip into sale?

The Odoo 20 POS warns when an expired batch is selected. The documentation does not describe forcibly stopping the sale, so control is built in two layers: expiry dates and FEFO on the warehouse side, and a cashier rule at the POS, plus a custom module if needed.

How do transfers between branches and the central warehouse work?

The head office and each branch are separate warehouses. A transfer travels with a document, goods in transit sit in a transit location and remain company property. If the branches are separate legal entities, Odoo 20 applies replenishment between companies.

Odoo Online, Odoo.sh or your own server?

The industry package is available on Odoo Online. Odoo Online is not compatible with third-party and custom modules: if you need a marking or e-prescription module, Odoo.sh or your own server is chosen. We decide the hosting type at the start of the project. Hosting types →

How much does the service cost and how long does it take?

The Odoo license depends on the number of users and apps (terms on odoo.com). The scope of BUline's service depends on the number of branches and cash registers, apps, customization, integrations, data volume and training. The exact cost and timeline are given in a written proposal after the free diagnostic.

Free diagnostic

Let’s decide together which Odoo apps to start with

During the diagnostic, we review your processes and tell you where standard Odoo is enough and where configuration is needed — with an app list, edition and phases.

Free diagnostic