Pharmacy management system
batches, expiry dates and stock you can trust
Every purchase recorded with its batch and expiry date, sales that take the batch expiring first, a near-expiry list and low-stock alerts. Start from a working stock app and describe how your store runs.
What it starts from
This page starts the Inventory starting point: products, stock in and out with a full history, suppliers, several locations and low-stock alerts. Pharmacy needs on top of that, batches, expiry and counter sales, are what the pre-filled request adds.
See the Inventory starting pointAlready in the starting point
- Products with SKU, category, unit, cost, sale price, reorder level, supplier and a searchable barcode field.
- A stock ledger: stock in with the supplier and delivery reference, stock out, counts and transfers. Mistakes are reversed, never edited.
- Several locations, such as the counter and the back store, with stock per location.
- Low-stock badges, a to-reorder list and the stock value at cost and at sale price.
- Import from Excel or CSV, export to CSV, and roles for owner, manager, staff and a view-only accountant.
What the first request asks Refinar to add
- Generic name, strength, pack size and a prescription-needed flag on every medicine.
- A batch number and expiry date on every purchase, with stock kept per batch.
- Counter sales that take the batch expiring first, and a printable bill.
- A near-expiry list for the next 90 days, and expired batches blocked from sale.
- Returns of expired stock to the distributor.
What a medical store gets
Every batch, every expiry date
Purchases from a distributor are recorded batch by batch, so the app knows how many strips of each batch are on the shelf and when each one expires.First expiry, first out
A sale takes the batch that expires soonest, and an expired batch cannot be sold. Nobody has to check dates at the counter.The near-expiry list
Everything expiring in the next 90 days, by batch and value, so it is sold, moved or returned to the distributor in time.Low stock before it runs out
A reorder level per medicine and a to-reorder list grouped by distributor, from the stock that is actually there.A history you cannot quietly change
Every purchase, sale, count and return is a ledger row with who and when. A mistake is reversed by a new row, and the count difference is recorded.Staff with the right access
Counter staff sell and receive stock, the manager runs counts and prices, and an accountant can read and export without changing anything.The tables behind it
Real Postgres tables you own. The solid ones come with the starting point; the dashed ones are what the pre-filled request adds.
products
In the starting point- id, sku, name (brand)
- category, unit, barcode
- cost, price, reorder_level
- supplier_id → suppliers
- generic_name, strength, pack_size (added)
- prescription_required (added)
stock_movements
In the starting point- id, product_id → products
- type: in | out | count | transfer
- quantity, location_id → locations
- supplier_id, reference
- occurred_on, reverses_id
- batch_id → batches (added)
suppliers · locations
In the starting point- distributors with contact and phone
- the counter, the back store, a second branch
batches
Added by your first request- id
- product_id → products
- batch_no
- expires_on
- cost, mrp
sales
Added by your first request- id, number
- sold_on, sold_by
- customer_name, doctor_name
- total
sale_lines
Added by your first request- sale_id → sales
- batch_id → batches
- quantity, price
How it works in 3 steps
01
Start from this page
Press Start your pharmacy app. The Inventory starting point is picked and the batch, expiry and sales rules are in your first request, ready to edit.
02
Your app runs in about a minute
Refinar creates the stock app with sign-in and a real database, then adds batches, expiry and counter sales in a live preview you can click through.
03
Import your stock, then launch
Bring your current list in from Excel, ask for anything else in plain sentences, and press Go live. The code and the database are yours.
What it is not
It is not a clinical system. There is no drug database, no interaction check, no e-prescription and no insurance claim. The app records what your staff enter about each medicine.
It does not keep any register your regulator may require for scheduled or controlled medicines unless you ask for one, and it does not check that register against the law. If your country has such rules, describe them and verify the result yourself.
Questions
What is a pharmacy management system?
Software that runs a pharmacy's stock and sales: medicines and their batches, purchases from distributors, expiry dates, counter bills, reorders and reports. Hospital and chain systems add prescriptions, insurance and clinical checks.
Can it track expiry dates by batch?
Yes, with the pre-filled request: every purchase is entered with its batch number and expiry date, stock is kept per batch, and sales take the batch that expires first.
Does it print a GST bill?
The request asks for a sale bill. Tax lines, your registration number and the bill format are one more sentence each; describe them as your accountant needs them.
Can I scan barcodes?
Barcodes are a searchable field, so a USB scanner that types the code into the search box works. There is no camera scanning in the starting point.
Building a pharmacy system as a college project?
See the pharmacy management system project page: features, an ER diagram and a viva checklist.
How much does it cost?
Building the app and changing it use credits from your Refinar plan, and hosting is part of going live. The details are on the pricing page.
More starting points
- Complaints and support ticketsNumbered complaints, internal notes, response deadlines, canned replies and a customer portal.
- Inventory & stock controlProducts, stock in and out with history, low-stock alerts, suppliers and several locations.
- School managementAttendance, marks and report cards, fees and a parent login that shows each family only their own children.
- Student information systemOne record per student: parents, class, attendance, marks and fees, with a parent login.
- Client portalA branded portal where each client follows their projects, approves work and checks invoices.
- Church managementPeople, households, groups, attendance, giving and volunteers, with a member page.
- Invitations & RSVPAn invitation page per event, a private link and QR pass per guest, men's and women's lists, and check-in at the gate.
- Real estate CRMListings and owners, leads matched to listings, viewings and leases, for an agency.
- Online booking systemSlots, periods or appointments on your own booking page, with deposits, a calendar and WhatsApp confirmations.
- Attendance managementClock in from a phone, who is in or late, corrections with a reason, monthly hours as CSV and PDF.
- Leave managementRequests from a phone, approvals, balances per leave type and who is off when.
- Employee managementStaff files with documents and expiry dates, onboarding, attendance, leave and the rota.
- Library managementCatalogue, accession numbers, issue and return, fines and reservations for a school library.
- Hostel managementRooms and beds, allocation, roll call, fees, out-passes and complaints for a college hostel.
- Invoices and quotationsInvoices, quotations and receipts as PDFs, with a client list and a view of what is paid and what is overdue.