What you can do here
- Add a product once, then add stock to it as many times as you like, one batch at a time.
- See total stock, nearest expiry, stock value at MRP, GST rate and rack for every product in one table.
- Open any product to see its individual batches with batch number, expiry, quantity, cost and MRP.
- Spot problems fast: Low stock, Near expiry, Expired and Out of stock are counted at the top and can be tapped to filter.
- Add a product by speaking its name into the phone.
- Add a product by taking a photo of a medicine strip, the app reads the label for you.
- Bring in your whole old stock list from an Excel sheet, a CSV, or even a photo of a register.
- Search by brand name, salt, company or HSN code.
- Filter by expiry window, category, schedule, rack and quantity range, then download the result as a CSV.
Products and batches: the one idea to understand first
A product is the item itself, for example "Dolo 650". You create it once. It holds the details that never change from purchase to purchase: name, salt, company, HSN code, GST rate, unit, rack, reorder level, schedule and category.
A batch is one lot of that product that you actually bought. It holds the batch number, the expiry date, how many you received, what it cost you, and the MRP printed on that lot.
So one product can have many batches. If you buy Dolo 650 three times in a year from three different lots, that is one product and three batches. The stock number you see in the table is the total across all of that product's batches.
Good to know
- The app always shows the nearest expiry, which is the earliest expiry date among the batches that still have quantity left. Empty batches are ignored for this.
- Stock value at MRP and stock value at cost are also worked out only from batches that still have quantity left.
- A batch with zero quantity stays in the list, marked Empty, so you keep a record of it.
Add a product
Steps
- Tap Add product at the top right of the Inventory page.
- Type the product name in the Name * field, for example Dolo 650. As you type two or more letters the app suggests matching names from its built-in medicine and FMCG list. Tap a suggestion to fill the name, salt, company and category in one go.
- Fill Generic / salt, for example Paracetamol 650mg. Optional but very useful for searching later.
- Fill Manufacturer, for example Micro Labs. Optional.
- Fill HSN code, for example 3004. Optional.
- Set GST rate (%) *. It starts at 12. Change it if this item is taxed differently.
- Set Unit. It starts at "strip". Put whatever you count in: strip, bottle, tube, piece, box.
- Set Tablets per strip. Leave it at 1 if you only ever sell the whole pack. Put 10 if a strip has 10 tablets and you sell loose tablets.
- Fill Rack / location, for example A3, so counter staff can find it on the shelf. Optional.
- Set Reorder level. It starts at 10. When total stock falls to this number or below, the product is flagged Low stock.
- Pick Schedule: None, Schedule H or Schedule H1.
- Pick Category: Medicine, Beverages, Confectionery, Personal Care, Baby Care, Health & Nutrition, Surgical & Devices or General. It starts at Medicine.
- Tap Add product. You will see a green "Product added" message.
Good to know
- Only the name, GST rate and reorder level are compulsory. Everything else can be left blank and filled in later.
- If you leave Unit blank the app puts "strip".
- GST rate must be a number between 0 and 100. Reorder level must be a whole number, 0 or more. If you type something else, the form tells you before saving.
- Tablets per strip is always saved as a whole number, and never less than 1.
- Adding a product does not add any stock. The new product starts at zero quantity and will show as Out of stock until you add a batch.
- There is a microphone button next to the Name field. Tap it, say the medicine name, and it types the name for you.
Add a batch, which means adding stock
Steps
- Find the product in the table.
- Tap the Batch button in the Actions column on the right of that row.
- Type the Batch no * exactly as printed on the pack, for example DL2405A.
- Pick the Expiry date *.
- Type the Quantity *. This is counted in the product's unit, so the field hint reads "in strips" if the unit is strip.
- Type the Cost price (₹), what you paid per unit. Optional.
- Type the MRP (₹) *, the printed price per unit.
- Tap Add batch. You will see "Batch added to" followed by the product name.
Good to know
- Batch number, expiry date, quantity and MRP are all compulsory. Cost price is not, and is saved as 0 if you leave it blank.
- Quantity must be a whole number bigger than 0. MRP must be bigger than 0. Cost price, if entered, cannot be negative.
- Each time you buy the same medicine again, add a new batch. Do not edit the old one. That is how the app keeps expiry and cost correct per lot.
- The new batch appears immediately in the product's stock total and in the batch list under the product.
See the batches inside a product
Steps
- Tap the product name in the first column of the table.
- The row opens and shows all batches for that product: Batch, Expiry, Qty, Cost, MRP.
- Tap the name again to close it.
Good to know
- Batches are listed with the earliest expiry first.
- A batch that still has stock and is already past its expiry date shows a dark red Expired tag.
- A batch that still has stock and expires within 90 days shows a red tag with the number of days left, for example "42d left".
- A batch with zero quantity shows a grey Empty tag.
- If a product has no batches yet you see "No batches yet, add one to stock this product."
Read the status labels
The app works out the status of every product for you. A product can carry more than one label at the same time.
| Label | What it means |
|---|---|
| Expired | At least one batch that still has stock is past its expiry date. |
| Near expiry | At least one batch that still has stock expires within the next 90 days. |
| Low stock | Total stock is more than zero but at or below the product's reorder level. |
| Out of stock | Total stock is zero. |
| In stock | None of the above. Stock is healthy. |
A Sch H or Sch H1 tag also appears next to the status if you set a schedule on the product.
Good to know
- The default sort is Priority (needs action). It puts expired items first, then anything expiring within 30 days, then anything expiring within 90 days, then low stock, then out of stock, then everything else. Within the same level, the soonest expiry comes first and then names run A to Z.
- The "Nearest expiry" column shows the date and, under it, either "N d left" or "expired N d ago".
Use the summary tiles
The six tiles above the table count every product in your register, not just the ones on screen.
Steps
- Tap Low stock, Near expiry, Expired or Out of stock to show only those products.
- Tap the same tile again to switch that filter off.
- Tap Products to clear all status filters and show everything.
Good to know
- You can switch on more than one status at a time. The table then shows products matching any of the chosen ones.
- Stock @ MRP is the total selling value of everything you have in stock. It is a display only, tapping it does nothing.
- The same statuses are also available as the round chips inside the Filters panel, which add an In stock chip as well.
Search and filter your stock
Steps
- Type in the Search name, generic, brand, HSN… box at the top. It looks inside the product name, the salt, the manufacturer and the HSN code at the same time.
- Tap Filters to open or close the filter panel. The button shows how many status filters are active, for example "Filters (2)".
- Set Expiry within: Any, Already expired, ≤ 30 days, ≤ 90 days or ≤ 180 days.
- Set Category to one of the eight categories, or All categories.
- Set Schedule to Any, Schedule H, Schedule H1 or None.
- Type a Rack value, for example A3, to see only that shelf.
- Type Min qty and Max qty to see only products inside a stock range.
- Set Sort by: Priority (needs action), Expiry: soonest first, Stock: low to high, Stock: high to low, Stock value: high to low, Name A to Z, or Name Z to A.
- Tap Clear to reset everything back to normal.
Good to know
- Above the table you always see "Showing X of Y" and "Filtered stock @ MRP", which is the value of just the rows currently on screen.
- The expiry window filters on the product's nearest expiry, and it ignores products that are already expired unless you pick "Already expired".
- Rack matching is partial, so typing "A" finds A1, A2 and A3.
- Your search text, filters, sort choice and whether the filter panel is open are all remembered while the app stays open. If you go to Billing and come back, they are still set. They are forgotten once you close the tab or the app. Use Clear if the table looks emptier than you expect.
Edit a product
Steps
- Find the product in the table.
- Tap the pencil button in the Actions column.
- Change any of the fields.
- Tap Save changes. You will see "Product updated".
Good to know
- Editing changes the product details only: name, salt, company, HSN, GST rate, unit, tablets per strip, rack, reorder level, schedule and category.
- It does not change any batch. Batch number, expiry, quantity, cost and MRP are set on the batch, not on the product.
- The name suggestion list does not appear while editing, only while adding a new product.
- Changing the reorder level takes effect straight away, so a product can move in or out of Low stock the moment you save.
Add stock by voice
Useful when your hands are busy at the counter.
Steps
- Tap the microphone button next to the Add product button.
- Say the medicine name clearly, for example "Dolo 650".
- Tap it again to stop, or just wait, it stops on its own after about 7 seconds.
- Wait a moment while the app writes down what you said.
- If the medicine already exists, the Add batch window opens for it and a short message asks you to enter the quantity. Fill batch number, expiry, quantity and MRP as usual.
- If it does not exist, the Add product window opens with the spoken name already typed. Fill the rest and save.
Good to know
- The first time you use it, your phone or browser asks permission to use the microphone. You must allow it. If it is blocked you see "Microphone blocked. Allow mic access in your browser."
- Voice needs internet. Offline, the button is greyed out with a crossed microphone icon.
- The matching is forgiving. It tries an exact name first, then a partial match either way, then a match on just the first word.
- If the app did not hear you properly it says "Didn't catch that, try again."
- There is a second microphone button inside the Add product window, next to the Name field. That one only fills the name.
- On a very old browser that cannot record audio, the microphone button does not appear at all.
Add a product by photographing a strip
Steps
- Tap Scan at the top of the page.
- Take a photo of the medicine strip or pack, or pick one from your gallery.
- Wait while the button spins. The message "Label read, check details, then Save to add the batch" appears.
- The Add product window opens with the name, salt and manufacturer already filled from the label. Check them and correct anything wrong.
- Fill in the rest of the product details and tap Add product.
- The Add batch window then opens on its own, already carrying the batch number, expiry date and MRP read off the strip.
- Type the Quantity, add the cost price if you know it, and tap Add batch.
Good to know
- Scan needs internet. Offline the button reads "Scan (online)" and cannot be tapped.
- The photo is shrunk on your phone before it is sent, so it uploads fast even on a weak connection.
- Strips usually print expiry as a month, for example 08/2026. The app saves that as the last day of that month, which is the standard reading.
- Quantity and cost price are never read from the label, you always type those yourself.
- If the photo is blurry you get "Could not read the label, try a clearer photo." Take another one in better light.
- Always check what the scan filled in before you save. Printed labels are small and mistakes happen.
Import your old stock from a file
Use this when you are moving from another software, from a hand written register, or from an Excel sheet your distributor sent.
Steps
- Tap Import at the top of the page.
- Pick the file. Excel (.xlsx, .xls), CSV, TSV, plain text, XML and photos are all accepted.
- Wait while the button spins. Large files take a little longer.
- A confirmation box appears saying how many products were found in the file, for example: Found 412 products in "stock.xlsx". Add them to your inventory?
- Tap OK to bring them in, or Cancel to stop.
- When it finishes you see a message like "Imported 380 new products, 412 stock batches."
Good to know
- A tidy file with a proper header row is read on your own phone or computer, instantly and exactly, with no limit on the number of rows.
- A messy file, a sales register or a photo of a register is sent to our servers to be read. That path handles roughly 9,600 rows and needs internet.
- If some rows could not be read, the confirmation box adds "(some rows may have been skipped)". Everything readable is still brought in.
- If the file has junk lines above the real header, such as the shop name, phone number or a total value line, the app looks through the first 40 lines to find the real header and ignores the rest.
- If nothing at all can be read you get "Could not read that file. Try a clearer file or paste the text", or "No products found in that file."
- Import can bring in past sales too, when the file contains them. Those feed the sales history, not your stock.
Which column names the app recognises
For the fast, exact reading, your file needs a name column plus at least one of quantity, selling price, MRP or cost. Any of these spellings work, with or without spaces, capitals or dots.
| Field | Accepted column headings |
|---|---|
| Product name | Name, Item Name, Product Name, Product, Description, Item Description, Particulars |
| Quantity | Stock Quantity, Quantity, Qty, Stock, Closing Stock, Closing Qty, On Hand, Current Stock, Balance Qty |
| Selling price | Selling Price, Sale Price, Sale Rate, Sell Price, Retail Price |
| MRP | MRP, Maximum Retail Price |
| Cost | Purchase Price, Cost Price, Cost, Purchase Rate, Buying Price |
| Batch number | Batch No, Batch, Batch Number, Lot, Lot No |
| Expiry | Exp Date, Expiry Date, Expiry, Exp, Exp Dt |
| Category | Item Category Name, Category, Category Name, Item Category, Group |
| Manufacturer | Manufacturer, Mfr, Company, Brand, Maker |
| HSN | HSN, HSN Code, HSN SAC |
| GST | GST, GST Rate, Tax Rate, GST Percent |
What the import cleans up for you
- A quantity written with a unit, such as "2.0 PCS" or "6.0 ANA", is read as 2 and 6.
- A negative stock figure, which some old software produces after an oversell, is brought in as 0.
- Decimal quantities are rounded to the nearest whole number.
- If a row has both a selling price and an MRP column, the selling price is used as the retail price. If selling price is blank, the MRP column is used.
- Money is rounded to two decimals.
- Rows with no product name are skipped.
- Each column is used once only, so a file with two similar headings like "Batch No." and "batch no." will not confuse it.
Download your stock list as CSV
Steps
- Set the search and filters so the table shows exactly what you want.
- Tap Filters if the panel is closed.
- Tap the CSV button on the right of the status chips row.
- The file downloads with today's date in the name, for example inventory-2026-07-20.csv.
Good to know
- The download contains only the rows currently showing after your filters, not the whole register.
- Columns in the file: Product, Category, Generic, Manufacturer, HSN, GST%, Unit, Rack, Reorder level, Schedule, Total qty, Nearest expiry, Days to expiry, Stock value (cost), Stock value (MRP), Status.
- The button is greyed out when no rows match your filters.
Common questions
I added a product but it says Out of stock. What did I do wrong? Nothing. A new product starts with no stock. Tap Batch on its row and add the batch number, expiry, quantity and MRP.
Why can I not change the quantity of a batch here? The Inventory page adds batches, it does not edit or delete them. Quantity moves through the rest of the app, for example when you sell or receive goods.
Where do I set the price a customer pays? On the batch, as MRP. Each batch carries its own MRP, so an older lot printed at a lower price keeps that price.
How does the app decide "Near expiry"? Any batch that still has stock left and expires within the next 90 days makes the product Near expiry. Items expiring within 30 days are pushed even higher up the Priority sort.
A product shows both Low stock and Near expiry. Is that a mistake? No. A product can carry several labels at once, and all of them are shown.
I set a filter earlier and now the list looks short. Filters stay set while the app is open, including when you move to another page and come back. Open Filters and tap Clear. Closing the tab or the app also clears them.
What is "Tablets per strip" for? It tells the app how many single units are inside one pack, so loose selling is possible. Leave it at 1 if you only sell whole strips or bottles.
Can I use Scan, voice or Import without internet? Scan and voice need internet and are switched off when you are offline. Import reads a tidy Excel or CSV file on your own device, but a photo or a messy file has to go to our servers, so that needs internet too.
Will Import create duplicate products? The message after import tells you how many were new, so rows that matched something you already had are counted separately from the batches added.
Does anything on this page need the Pro plan? No. Everything described here works on every plan. The separate stock value at cost report is a Pro feature. For anything to do with plans or upgrading, write to info@entyti.com.
The page says "Failed to load inventory". Check your internet, then tap Retry on the message.