The Complete Pharmacy Operating System
One pharmacy. One living stock record.
Vevilo runs the counter, follows every batch to its expiry date and powers your own online store, all from the same stock.
- 14-day trial on a new workspace
- Keeps selling offline
- Demo uses made-up data
Amoxicillin 500 mg capsulesBatch AX-2291 · expires Aug 2027 · sample data
Counter can sell
24
Scanned at the till
Online store shows
24
0 held for online orders
One strip of 24 capsules. Watch both channels read the same number.
A working model of how stock moves in Vevilo. Press the buttons to try it.
- Counter billing
- Batches and expiry
- Purchases and receiving
- Suppliers
- Returns and waste
- Stock transfers
- Customers and credit
- Reports
- Staff roles
- Audit log
- Online store
- Offline desktop app
How it works
One day in a pharmacy, start to close.
Six moments every pharmacy knows, and what Vevilo does in each of them. The screens are illustrations with sample data.
08:55
Open the register
The cashier opens a shift with the float in the drawer. From here every sale and cash movement belongs to a named person and a named till.
Opening floatRs 5,000CashierAyeshaShiftMorningEvery sale, return and cash movement in this shift is recorded against this register until it is closed.
?Shortcut listCtrlKCommand palette
09:20
The morning queue
Search by name or scan a barcode, change quantities and take payment without leaving the keyboard. Prescription medicines ask for a recorded prescription before they can be sold.
amox│Amoxicillin 500 mg Rx recorded Rs 320 Paracetamol 500 mg × 2 strips Rs 140 ORS sachet × 4 Rs 120 TotalRs 580F1SearchF2ScanF8HoldCtrlEnterPay
11:40
A delivery arrives
Stock is received against the supplier's invoice, batch by batch, each with its own expiry date and cost. Nothing enters the shelf as an anonymous number.
Product Batch Expires Qty Amoxicillin 500 mg AX-2291 Aug 2027 240 Cetirizine 10 mg CT-0417 Jan 2028 300 Insulin glargine IG-8830 Mar 2027 24 Each line becomes its own batch with its own expiry date and cost, so the counter always knows which strip to sell first.
14:05
An online order lands
It appears where the staff already work, with the customer, delivery area and items. The units are held the instant the order is placed, so the counter cannot sell them twice.
CustomerGuestDelivery areaZone 2PaymentCashVitamin C 500 mg × 2 Paracetamol 500 mg × 1 3 units were held the moment the order was placed. Complete it and they are deducted; cancel it and they go back on sale.
17:30
The internet drops
The desktop app carries on selling from stock set aside for that device. When the connection returns it syncs, and conflicts are listed for review instead of being silently overwritten.
No connection. This device keeps selling from the stock set aside for it.
Waiting to sync Total Sale 17:31 Rs 260 Sale 17:36 Rs 1,140 Sale 17:44 Rs 95 When the line returns the sales sync, and anything that conflicts is listed for a person to review.
21:00
Close the day
The register is closed with a Z-report, and the owner reads sales, stock value and waste from the same records the counter wrote all day.
SalesRs 84,210ReturnsRs 1,300Cash countedRs 41,650Cash Rs 36,650 Card Rs 31,960 Customer credit Rs 15,600 Figures come from the day's recorded sales, not from a separate tally.
Counter and billing
Built for the queue, not the mouse.
The counter is driven from the keyboard and the scanner. The six keys a cashier uses all day are on the right; press ? on the counter for the full list.
- F1SearchJump to the medicine search from anywhere on the counter.
- F2ScanFocus the barcode field and scan the pack.
- F5Quick returnStart a return without leaving the sale screen.
- F8Hold salePark the cart while the customer fetches something.
- F9Held salesBring a parked cart back.
- CtrlEnterTake paymentCash, card, customer credit or a split of them.
Batches and expiry
Every strip knows when it expires.
- First expired, first out. Stock is tracked by batch and the earliest expiry is sold first.
- Expired means blocked. An expired batch can't be sold at the counter or online.
- Alerts from real stock. Low-stock and near-expiry warnings are calculated from your own batches.
Sample batches of one medicine, ordered the way the counter sells them.
Online store
Your own online pharmacy, included.
Give customers a proper place to shop under your pharmacy's name, without keeping a second catalogue.
- Your brand. Add your logo, colours, banners and homepage sections yourself.
- Your catalogue. Choose what appears online; prices and stock come from your records.
- Your delivery rules. Set areas, fees and minimum orders for each area.
- Simple for customers. They check out as guests, pay cash on delivery and track the order.
Illustration with sample products.
Branches
Several shops, one set of books.
Each branch keeps its own stock and can carry its own prices. Move stock between them with transfers, and both sides stay accounted for.
Offline selling
The line drops. The queue doesn't.
The desktop app sells without internet from stock set aside for that device, then syncs. Try it: cut the connection, ring up a few sales, and bring it back.
Connected. Each sale is saved to the shared record as it happens.
Owners, pharmacists and cashiers get different access, and it is checked on the server, not just hidden on screen.
Important changes are written to an audit log, so you can see who did what and when.
Sales, top sellers, stock value and waste are calculated from your own records.
Getting started
From sign-up to first sale.
Create your workspace
Add your pharmacy and its branches.
Import your products
Bring in medicines and batches from a spreadsheet.
Add your staff
Give owners, pharmacists and cashiers the right access.
Open your store
Pick what is sold online and set delivery areas.
See it working before you decide.
Open the demo to explore with made-up data, or create a workspace and start with your own.
- A new workspace starts with a 14-day trial.
- Plans and current prices are shown inside your workspace, under Settings.
- The demo is separate from every real pharmacy.
Questions
Straight answers.
Including the things Vevilo does not do yet.
Can my online store sell stock that was just sold at the counter?
No. Both read one stock record. Online orders hold their units inside a database transaction, and the counter sees those holds, so the same unit can't be sold twice.
Can customers order prescription medicines online?
Not at the moment. Prescription medicines can be shown in your catalogue, but online checkout refuses them. Narcotic and restricted schedules are blocked from online sale.
Which payment methods work online?
Cash on delivery today. Card and mobile wallet payments are not available yet, and we won't show them at checkout until they are working.
What happens if the internet drops at the counter?
The desktop app keeps selling from stock set aside for that device, then syncs when it reconnects. Your online store catches up after the sync, and anything that conflicts is listed for review.
Does it connect to Shopify or WooCommerce?
Not directly. You can use the built-in store, or connect a custom store through the documented API with signed webhooks.
Can I try it first?
Yes. The public demo is a separate workspace with made-up data, so nothing you do there affects a real pharmacy. A new workspace also starts with a 14-day trial.