How to build a clean pharmacy item master

Abstract
A practical guide to pharmacy item masters: naming, units, GST, batches and opening stock — and importing up to 5,000 items from one spreadsheet instead of typing them one by one.Most hospital pharmacy problems do not begin at the counter. They begin in the item master — the list that decides what every medicine is called, how it is counted, and what it costs. That list feeds billing, stock, purchase orders and your GST returns. Build it once, carefully, and everything downstream behaves. Build it in a hurry and you will spend the next three years correcting the same item in four different screens.
This guide covers the sequence that works: decide units, set up sub-heads, set GST, then import the whole catalogue in one file instead of typing it item by item.
1. Decide what one "item" is before you type anything
An item in a pharmacy system is a sellable unit that never changes shape. A strip of ten tablets is one item if you sell strips. The same tablets sold loose, per tablet, are a different item. Both can exist — but each must be a single, stable unit.
The unit you choose is the counting unit for both purchase and sale. If you buy a pack of ten strips, sell strips, and price per strip, say so in the unit column. Do not mix packs in one row and strips in another for the same product; you will reconcile stock forever.
Name the item the way your staff will search for it — brand or generic first, strength included, form at the end. The item name is also the identity used to detect duplicates: it is matched trimmed and case-insensitively, so "Paracetamol 500mg Tab" and "paracetamol 500mg tab " are the one item, and both cannot exist.
2. Create the sub-heads first
Every item has to sit under an item sub-head that already exists and is active under the pharmacy account — tablet, injection, consumable, surgical, and so on. The bulk upload validates this and will not create sub-heads for you. Spend five minutes building the list of sub-heads your store actually uses before you touch the spreadsheet.
3. Get the GST columns right
This is where most imports fail, because a spreadsheet of medicine prices rarely records GST the way a billing system needs it.
- CGST and SGST must be equal. For intra-state supply, 6% + 6% is a 12% item.
- IGST must be blank or zero in the upload. Use the CGST/SGST pair.
- Purchase price is always stored GST-exclusive. Enter the price you actually pay per unit before tax.
- Sale price can be either, based on the "Sale prices include GST" checkbox — ticked by default. With it ticked, ₹112 at 6% + 6% is stored as ₹100.
- HSN/SAC is optional, and worth filling for every medicine — it is what makes your GSTR-1 reconcile quickly.
4. Build the file
The upload accepts .xlsx, .xls or .csv. The template is a header-only CSV generated in your browser, so download it and delete nothing — the columns are matched by name, trimmed and case-insensitively, and any extra columns you leave in the sheet are ignored.
| Required | Optional |
|---|---|
| Item Name, Item Sub Head, Unit, Sale Price, Purchase Price, CGST %, SGST %, IGST % | HSN / SAC Code, Manufacturer, Opening Stock Qty, Batch No, Mfg Date, Expiry Date |
Keep the working file to a single sheet, one header row and one item per row — no merged cells, no colour-coded blocks. A file can carry up to 5,000 items; anything larger is rejected outright rather than silently truncated.
5. Upload, then read the errors properly
In Nice HMS go to Admin → Accounts → Item Masters → Item Masters → Bulk Upload. Choose the file and set the as-on date, which defaults to today. Bulk upload is available to administrators on paid plans.
Validation is all-or-nothing. Every row is checked before a single record is written, and if one row is wrong nothing at all is imported — not the good rows, not the opening stock. You get a table of Row, Column, Value and Reason, plus a downloadable error CSV. Fix the file and upload again; the whole write happens in one transaction, so a repeated upload cannot double your stock.
6. Opening stock and batches
If you fill the Opening Stock Qty column, the import also creates one physical-positive stock voucher dated on the as-on date, valued at quantity × purchase price. It is accounting-neutral by design: stock goes up, the counterpart goes to the opening balance, nothing hits the profit and loss for that period. A pharmacy account — or an IPD/OPD account — must exist before you import.
Batch number, manufacturing date and expiry date are optional but all-or-nothing: give all three or none, per row. If your stock is tracked by batch, fill them in the same file so you never re-enter the opening batch by hand.
7. Keep it clean afterwards
The upload is insert-only. It never re-prices or overwrites an item that already exists — if a name collides with your master, the row is refused and named, rather than merged. That is deliberate: imports that quietly update prices are how a pharmacy sells a ₹500 strip for ₹50.
Later corrections belong on the item screen. Later stock movements — new purchases, physical counts, write-offs — belong in Set Physical Stock, not in another import.
Frequently asked questions
Can I update prices by re-uploading the file?
No. The import only creates new items. To change a price, edit the item on the item screen, so the change is deliberate and traceable.
What happens if one row in the file is wrong?
Nothing is imported — not even the correct rows, and not the opening stock. You get an error list with the row number and the reason, and you fix the file before re-uploading.
How many items can I add at once?
Up to 5,000 rows per file. Larger files are rejected rather than cut short, so split very large catalogues into two uploads.
Is the sale price inclusive or exclusive of GST?
Your choice. With "Sale prices include GST" ticked, the system divides by 1 + CGST + SGST. Purchase price is always treated as GST-exclusive.
A catalogue you can trust
Most of the work in this guide happens before the upload: choosing one unit per item, building sub-heads, and getting the tax split right. Do that once and the import takes minutes — and every bill, stock report and GST return built on top of it starts from a clean base.
Hospital software updates, by email
What changes in Indian hospital software: new Nice HMS releases, ABDM/NHCX and PMJAY updates, and practical notes on running a hospital — a few emails a month. Unsubscribe in one click.
This Unlock the Future of Healthcare Management! 🚀🏥🌟
Is managing your hospital, clinic, or lab becoming a daunting task? Experience the ease and efficiency of our cutting-edge Management Software through a personalized demo.
