Skip to main content
Four small settings on this tab decide how forgiving your stock records are: when expiry alerts start, whether the till may sell something the system thinks you do not have, and whether a delivery can be booked in without an expiry date.

What this tab controls

The card is headed Inventory — “Expiry alerts, dispensing enforcement and inventory data controls.” The three switches save the moment you flip them. Expiry alert horizons and New-item defaults have their own Save horizons and Save defaults buttons.

Set it up

1

Set your expiry horizons

Type a number of days into the field and select Add. Each becomes a chip like 90 days; remove one by selecting its ✕. Up to four. Select Save horizons — you get “Expiry alert horizons saved”.
2

Decide about selling out of stock

Leave Allow selling items with no recorded stock on if goods routinely reach your shelf before they are booked in. Turn it off if you want the till to refuse instead.
3

Decide about expiry dates on delivery

Turn Require expiry date on new lots on if you want receiving to refuse an undated lot. The helper is blunt about the alternative: “Undated lots are allowed (not recommended for pharmacies).”
4

Set the new-item defaults

Enter a Low-stock threshold and a Reorder quantity in whole units, then select Save defaults. Leave either empty for no default.

What changes once you save

Requiring expiry dates does not fix the past. Lots already booked in without one stay undated, and an undated lot is invisible to earliest-expiry picking and to every expiry alert — it will never warn you. Find them and correct them through a stock count. See Batches and expiry.

The Danger Zone

Reset inventory… permanently erases the entire inventory module — catalog, lots, stock levels, ledger, purchase orders, vendors, locations and device history. It cannot be undone. Your medication list, store history and clinical records are kept. It exists for one purpose: a clean re-import after a bad first load.
The card is hidden entirely from anyone who is not the pharmacy owner — a manager or an accountant does not see a greyed-out button, they see nothing at all, and there is no explanation. That is intended. The owner gets a preview before anything happens. The dialog is headed “Reset the whole inventory?”, lists exactly how many records would go from each area, and only then asks you to type RESET to confirm deleting that many records. If your inventory is already empty it says so and offers no confirm button. When it finishes you get “Inventory reset — {n} record(s) across {n} table(s) deleted.”

Check it worked

Reload the tab — every switch and chip should be where you left it. Then test the behaviour: try to receive a lot with the expiry blank and see whether it is refused, and try to sell one unit of something recorded at zero.

Common issues

Either every lot is dated further out than your longest horizon, or the lots have no expiry date. Undated lots never trigger an alert — that is what Require expiry date on new lots prevents happening again.
You already have four, which is the maximum. Remove one and the field comes back. Trying to add a fifth gives “Up to 4 horizons.”
Allow selling items with no recorded stock is off. Either turn it on, or book the delivery in first.
It is owner-only, and hidden rather than disabled. Ask the pharmacy owner.
The banner reads “This inventory cannot be reset” — clinical administration records reference these lots and a reset would destroy that traceability. Adjust quantities through a stock count instead. See Stock counts.
The defaults apply only to items created after you saved them, and only where the item itself supplies no value. Edit the existing ones, or re-import them.