For the chemist behind the counter, not a hospital pharmacy system.
Every batch carries its own lot number, cost and remaining quantity.
Expiry dates are tracked per batch, so new stock stays visible by date.
Stock moves oldest-first by default, and soonest-to-expire first when batches have expiry dates.
The same reason-and-approval flow applies to every stock change.
Quick look shows the description, pack size, stock and expiry right in the catalog while you serve.
Record a return in seconds. Items that can't be resold stay out of stock.
Know the cash and M-Pesa you should have, and count the drawer at closing to catch anything missing.