Pharmacy & Drug Store Management
Retail pharmacy ERP - batch and expiry tracking on stock lots, FEFO dispensing, allergy and interaction checking, controlled drug register, generic substitution, insurance claims with co-pay split, near-expiry write-offs and margin per dispense.
- Category
- Services/Pharmacy
- Odoo version
- Odoo 19.0
- Price
- USDย 299
- Odoo Apps Store
- Listed
Written for a retail chemist, a chain of drug stores, a clinic dispensary or a hospital outpatient pharmacy. Runs on Odoo Community with Inventory and Accounting.
The medicine master
- โ A medicine is a product with the things a pharmacist actually needs on it: generic name, strength, dosage form, the active molecules it contains, its therapeutic class with an ATC code, its controlled schedule, whether it is prescription only, and how it has to be stored. Reorder minimum and maximum sit on the same record, so the suggested purchase list writes itself.
Batches and expiry
- โ Every intake is a batch: batch number, expiry date, quantity, unit cost and the branch holding it. A confirmed batch is backed by a stock lot, so the batch number a regulator asks about resolves to a real traceable record in Inventory rather than a note in a spreadsheet.
- โ Dispensing pulls first expiry first out. If one batch cannot cover the quantity, the line splits across batches and each split keeps its own batch number on the label and in the register. A batch with less shelf life left than the branch allows is not offered at all.
The safety check
- โ Before anything leaves the counter the dispense is checked against the patient record and refused with the reason written out:
- โ The patient's recorded allergies, matched on the active molecule rather than the brand name, so a penicillin allergy stops a co-amoxiclav as well
- โ Interactions between everything on this dispense and everything the patient is already taking as chronic medication, graded minor through contraindicated. Major and contraindicated stop the dispense. Moderate and minor have to be acknowledged with a reason that is kept on the record
- โ Pregnancy category D and X against a patient recorded as pregnant
- โ Prescription-only medicine with no prescriber on the record, if the company has turned that requirement on
- โ Controlled medicine with no prescription at all, which is refused whatever the settings say
- โ A pharmacist whose licence has expired, or a branch whose controlled licence has expired
- โ More than the prescription authorised, and more than the counter limit for an over the counter sale
Controlled drugs
- โ Narcotics, psychotropics, controlled medicines and precursors each have their own schedule on the medicine. Every controlled line lands in the controlled drug register: date, patient, prescriber, medicine, schedule, quantity, batch number, the pharmacist who dispensed it, the second pharmacist who witnessed it, and the balance left in that batch afterwards. The register is a searchable list you can group by schedule, medicine, pharmacist or month, and it is the screen an inspector asks to see.
Generic substitution
- โ Suggest a cheaper generic with the same molecules, the same strength and the same form, in stock now, and show what the swap saves. Molecules flagged as narrow therapeutic index are never suggested, and a prescription line marked no substitution is left alone. When a swap happens the record keeps what was prescribed as well as what was handed over.
Insurance
- โ A policy per patient with the insurer, member number, plan category, validity dates, co-pay percentage and annual limit. Dispensing splits the money between the insurer and the patient, applies the insurer's tariff discount, and leaves uninsurable items entirely on the patient. Claims carry an e-claim reference built from the company prefix, an approval code, the approved amount and, when the payer refuses, a rejection reason from the list a Gulf pharmacy sees most: not covered, policy expired, limit exceeded, no pre-approval, duplicate, invalid member, missing prescription, price above tariff.
- โ Approving a claim writes the settled split back onto the dispense and draws the approved amount down against the policy's annual limit, so the next claim knows what is left.
Expiry and write-off
- โ Two lists that a pharmacy has to work every week: stock expiring inside the warning window, and stock already expired. Both carry the money, not just the count, because the number that matters is the value sitting on the shelf that will not sell. Expired stock goes onto a write-off with a reason, an approver and a witness, and prints as a destruction certificate with every batch number on it.
Money
- โ Cost is taken from the batch, not from an average, so the margin on a dispense is the margin on those specific boxes. The insurer's tariff discount comes off before the margin is worked out, which is the number that tells you whether an insurance contract is worth having. Branch level figures show the value expiring inside ninety days alongside the month's margin.
- โ Requires Odoo 19 Community with Inventory and Accounting.
What you get
- โFull module source code: Python, OWL, XML and CSS
- โInstallation on your Odoo instance, or a copy you install yourself
- โWritten documentation and a user guide
- โA one-hour walkthrough with your team
- โ90 days of bug-fix support
Buy it on the Odoo Apps Store
Pharmacy & Drug Store Management is published on apps.odoo.com at USDย 299. Buy there and you get every update we publish for that version.
View on Odoo AppsRelated modules
Auto Repair Garage & Workshop Management
Garage and workshop ERP - job cards from estimate to invoice, vehicle records with VIN and odometer history, red amber green inspection sheets, flat rate labour against clocked time, parts off stock, roadworthiness tests, service reminders on mileage or months, courtesy cars and gross profit split between labour and parts.
Services/AutomotiveAgriculture & Farm Management
Farm ERP - fields with land parcel references, crop cycles with gross margin per hectare, field work with labour and machinery costs, input applications with pre-harvest intervals that block an early harvest, herds, breeding, milk records and paddock rotation.
Services/AgricultureOnline Appointment Booking
Publish bookable appointment types on your website. Timezone correct slots, staff and resource assignment, confirmation and reminder emails, cancel and reschedule.
Services/AppointmentWT Car Wash Management
Complete Car Wash ERP - Bookings, Wash Packages, Service Bays, Staff, Commissions, Portal Booking & Invoicing
Services/Car WashConstruction & Material Management
Complete construction project, BoQ, materials, labour, equipment, subcontracts, costing & analytics for Odoo 19.
Services/ConstructionCoworking & Flexible Workspace Management
Coworking and serviced office ERP - hot desks, dedicated desks, private offices and meeting rooms with a clash check, membership plans with meeting room credits, company accounts, day passes, check in and check out with live occupancy, registered address and mail handling, and one monthly invoice per account.
Services/WorkspaceNeed it to work a little differently?
Every module here started as a client request. Tell us what is missing and we will quote the change, or build the thing you actually need.