Batch and expiry
on every line.
Read the limits first.
A chemist counts stock the way a grocer does — by batch, with a date on it — and this plugin does that properly. It is not, and does not pretend to be, a prescription system. Which half of your counter that leaves uncovered is the first thing to work out, so it is the first thing this page says.
Two dates
on every box.
The same medicine sits on the shelf in three batches with three expiry dates, and the one that must go first is not the one at the front. Near-dated stock is money you have already spent and are about to throw away, and the only reliable way anyone finds it is by picking boxes up and reading them.
What stops happening
- The same product in several batches, each with its own date
- Near-dated stock discovered by hand, one shelf at a time
- Returns to the supplier with no record of which batch went back
- Stock counts that reconcile as a total but not as batches
- Cost prices visible to whoever happens to be on the till
Grocery &
convenience.
Not because a pharmacy is a grocery, but because it needs the same two things a grocery needs and no other profile turns them on: everything is barcoded, and some of it goes off.
You choose · Grocery & convenience
Batches, as a real dimension of stock
Stock is held per product, per outlet, per batch — not as one number with a note. Two batches of the same medicine are two separate figures that add up to what is on the shelf.
Expiry dates carried from receiving
The date goes on when the delivery is booked in, travels with the batch, and is there when you go looking for what is about to date out.
Fast scanning at the counter
Barcode in, line on the sale, next customer. The profile assumes a queue rather than a browse.
Anything the choice leaves out is hidden, not removed. You are not locked out of a thing by picking wrong at setup — a clothes shop simply is not shown expiry dates it will never use, and a grocery is not shown a size matrix. Change your mind and it is all still there.
What actually
helps here.
Near-dated stock you can find
Because expiry is data rather than a sticker, the stock that is about to expire can be listed instead of discovered. That is the difference between returning it to the supplier and skipping it.
Cost prices off the shop floor
Twenty-six separate permissions mean a counter assistant can sell, refund and take stock without ever seeing what you paid. In a trade where margin varies enormously by line, that matters more than in most.
A ledger behind every movement
Nothing changes stock without recording who, when and why. When a count does not match, there is a trail rather than a shrug — and in a trade that gets inspected, a trail is worth having.
Batches, expiry and the ledger are in the free plugin. Stock valuation, which is what tells you the money sitting in near-dated stock, is in the paid one.
What we
do not do.
This is the most important section on this page, and it is why the trade list points at it. A pharmacy has legal obligations this plugin does not meet. It is a shop system that happens to suit a chemist's stockroom, not a pharmacy system.
No prescriptions, and no drug schedules
There is no prescription record, no dispensing log, no Schedule H or H1 register, no prescriber details and no substitution checking. Nothing in this plugin knows that one product is prescription-only and another is not. Whatever you are legally required to keep, you must keep it somewhere else.
No pack-splitting
A strip of ten sold as four is not modelled. Stock moves in the unit you bought it in. Shops that routinely break packs will find the count drifts away from the shelf.
No expiry alerts
Expiry is recorded and can be reported on, but nothing emails you or blocks a sale when a date has passed. It will not stop somebody selling expired stock. That check stays human.
No wholesaler ordering integration
Purchase orders are raised and received here, but they are not sent electronically to a distributor and no catalogue is pulled in. Ordering happens the way it happens today.
We would rather lose the sale here than in week one.
For this trade.
Can I use this as my pharmacy software?
Does it really track batches, or is that a note field?
Can it tell me what is about to expire?
Is the data on my own server?
Can staff be stopped from seeing cost prices?
Good for the stockroom.
Not for the dispensary.
If that division works for you, the free plugin will run your retail counter today. If it does not, we would rather you knew now.