Items, SKUs and CSV import
Manage the medicine and supply catalogue (SKU master), understand item fields and prices, and bulk-import items and opening stock from a CSV file.
An item (shown as a SKU on the pharmacy screens) is one thing you stock: a medicine in a given strength and form, a consumable, an implant, a housekeeping product. The item list is shared by all centres in your organisation. Stock quantities are then held per store and per batch.
This page is for administrators and pharmacy leads who maintain the catalogue. Doctors prescribe from the same list, so keeping it accurate matters for prescribing as well as for billing.
Where items are managed
Screen | Menu | What it lists |
|---|---|---|
Pharmacy, SKU master tab | SettingsInventoryPharmacy | All active items of every type |
General Store, Item master tab | SettingsInventoryGeneral Store | Active items of type |
Both menus are visible to administrators only.
Large catalogues are not shown in full
If your catalogue is large, these lists do not show every item, and the search box only searches the items that are shown. Items that do not appear on screen still exist and can be prescribed and billed.
Item types
Type | Typical use |
|---|---|
| Medicines. Only drug items can be prescribed and can carry prescribing defaults. Drug lines on a bill must have a batch. |
| Gloves, syringes, dressings |
| Surgical supplies |
| Implants |
| Parts and consumables for equipment |
| Housekeeping, stationery and other general-store stock |
| Anything else |
Controlled medicines carry a schedule: H, H1, X or NDPS. An item marked as controlled must have a schedule.
What the item fields mean
Field | Meaning |
|---|---|
SKU ID / Item ID | The item code. If you do not give one, LeapHealthOS creates a code starting with |
Brand name, Generic / composition | The brand name is shown as the item's name. When an item is imported without a brand name, the generic name is used instead. |
Drug code | Your own unique code for the medicine. It must be unique across the organisation and is used to match rows on re-import. |
Manufacturer, Presentation (dosage form), Strength, Route | Descriptive drug details. |
HSN, GST | Tax code and tax rate used on bill lines for this item. Prices are treated as tax-inclusive unless the item says otherwise. |
MRP | Maximum retail price per pack. Used on a bill when the batch being sold has no MRP of its own. A bill line can never be priced above the MRP. |
Selling price | Default price used when neither the batch nor the item has an MRP. |
Cost | Default cost of the item, used when a batch has no cost of its own. |
Reorder threshold | The quantity at or below which the item shows as Low stock in every store that has no store-specific rule. |
Base unit | The unit stock is counted in, for example |
On screen, prices are entered and shown in rupees.
SKU master (Pharmacy)
The SKU master tab shows SKU ID, SKU (brand and generic), Manufacturer, Group, Pack, MRP, Selling, Cost, Threshold and Consumable. Search with "Search brand, generic, SKU ID…".
Edit a SKU
Click the edit icon on a row to open Edit SKU. You can change:
- Brand name and Generic / composition
- Manufacturer
- Consumable (Yes / No)
- MRP / pack (₹), Selling / pack (₹), Cost / pack (₹)
- Reorder threshold
SKU ID, Pack, Group and Sub group are shown read-only. Click Save changes.
The Consumable switch changes the item type
Saving the Edit SKU dialog sets the item type to CONSUMABLE when Consumable is Yes, or to DRUG when it is No. An item that was SURGICAL, IMPLANT or any other type is changed to one of these two. Avoid using Edit SKU on items of other types.
Group, Sub group and Pack may show a type or a dash
These columns do not yet show the group names and units your items belong to. They fall back to the item type, the dosage form or "—".
Add a single SKU
Add SKU opens the form your implementation team publishes for the Inventory — Pharmacy: Add SKU placement. Items saved from it are created as DRUG items. Click Save SKU; you see "SKU saved". If the form has not been set up yet, the dialog shows "No Add SKU form is configured". See Clinical forms and placements.
The general store works the same way: Add item opens the form your implementation team publishes for the Inventory — General store: Add item placement, and creates HOUSEHOLD items. After saving there, refresh the page to see the new item.
Item master (General Store)
The Item master tab lists Item ID, Item, Item type, Default unit cost and Threshold. The edit icon opens Edit item, where you can change Item name and Reorder threshold; Item ID, Section and Unit are shown read-only. Click Save changes. Saving keeps the item as HOUSEHOLD.
Import items and opening stock from CSV
Use the CSV import to load your catalogue in one go and, optionally, the stock you already hold.
Pick the store
Administrator with the store MANAGER roleOpen SettingsInventoryPharmacy and check the store picker in the top bar. The import uses the centre of the selected store.
Open the upload dialog
On the SKU master tab, click Upload CSV.
Expected result: The Upload SKUs dialog opens.
Download and fill the template
Click Download template to get pharmacy_skus_template.csv. Fill one row per item (see the column reference below). Save it as CSV.
Upload
Drop the file in the dialog or browse to it (5 MB at most) and click Upload.
Expected result: A message such as "12 items added from stock.csv", or "10 items added, 2 rows failed".
Upload CSV files only
The dialog accepts .xlsx and .xls files, but only CSV files are read. An Excel file fails. Save your spreadsheet as CSV before uploading.
The result message does not list the details
The message only counts items added and rows failed. It does not show items that were updated, whether stock was received, or why a row failed. If the numbers look wrong, check the SKU master and the Stock tab against your file, using the checklist under "When rows fail" below.
Column reference
Use the column names from the downloaded template. Capital letters and spaces in column names do not matter.
Column | Required | Notes |
|---|---|---|
| Yes, one of them | The item name is the brand name, else the generic name. |
| Yes | Needed on every row, including household items. |
| No | Used to find an existing item. Must be unique. |
| No | One of the item types above. If empty, |
| No | yes / true / y / 1 means yes. Not in the pharmacy template; add the column if you need it. |
| No | Strength must be a positive number. |
| No | |
| No | Therapeutic group and sub-group. Created if they do not exist. |
| No | |
| No | Schedule must be |
| No | |
| No | In rupees. |
| Needed for stock | A unit code such as |
| No | Prescribing defaults used to prefill prescriptions. Only allowed on |
Stock columns
Add these to receive opening stock for the row. Leave qty empty or 0 for catalogue-only rows.
Column | Notes |
|---|---|
| Quantity to receive. |
| Cost per unit, in rupees. Required when |
| Required when |
| Optional. Format |
| Your receipt number. Required when |
| Required when |
The template also contains Opening stock and Consumption columns. They are ignored; use qty for stock.
How the import treats your rows
- Each row stands alone. A bad row fails on its own; the rest of the file still loads.
- Existing items are updated, not duplicated. A row is matched to an existing item by
drug_code, otherwise by an exact item name. Only the MRP and selling price are updated, plus the base unit if the item had none. If two active items share the name, the row fails: add adrug_code. - Stock goes into the pharmacy store. All stock rows are received into the single active
PHARMACYstore at the centre, as one receipt per supplier andgrn_number. You need theMANAGERrole at that store. - Re-uploading is safe. If a supplier and
grn_numberwere already imported, those stock rows are skipped, so the same stock is never added twice.
General Store uploads also put stock in the pharmacy
Upload CSV on the General Store screen (the Upload items dialog) uses the same import. Its template has no stock columns. If you add stock columns anyway, the stock goes into the centre's pharmacy store, not the selected general store.
When rows fail
Check the rows that did not appear, or whose stock is missing, against this list:
Check | Fix |
|---|---|
Every row has a brand or generic name, and a dosage form. | Fill them in. |
Prices and quantities are numbers of zero or more, in rupees. | Remove currency symbols and text. |
Rows with | Fill all the stock columns. |
Dates are written as | Reformat the dates. |
No two active items share the same name. | Add a unique |
The centre has exactly one active | |
The supplier and | Use a new |
Schedules and item types use the values listed on this page. | Correct the spelling. |
Prescribing columns are only filled for | Clear them or change the type. |
Rows with stock have a | Add the unit code. |
Things you cannot do on screen yet
Units of measure, purchase units and pack sizes, item categories and groups, and deactivating an item have no screen in LeapHealthOS yet. Your implementation team can set them up for you. Group names and base units can also be created through the CSV import.
Related pages
Last updated on
Stores and store roles
Set up inventory stores at each centre, choose the right store type, and give staff the store roles they need to receive, move and dispense stock.
Stock in, stock out and transfers
Read the Pharmacy and General Store stock screens, receive stock with Record inward, move it with Record outward, and set up the forms these buttons need.