How GalenDesk thinks
Five rules explain most of what the app does. Knowing them first makes every screen below read as obvious rather than surprising.
- Stock lives in batches, not in a single number. A product is what the drug is; a batch is a delivery of it, with its own expiry, cost and selling price. You add a product once and receive batches against it forever.
- The nearest expiry sells first. Every sale takes stock first-expiry-first-out, automatically. You never choose a batch at the counter.
- Owner and staff see different things. Staff can sell and see what is on the shelf. Cost prices, profit, other people's sales, and anything that changes the shelf are the owner's.
- The records live on the device. Each device holds its own pharmacy database. A GalenDesk account puts it in the cloud so a second till can share it — and it is what makes the records survive a lost phone.
- Nothing is written until you say so. A cart, an invoice, an import preview — all can be walked away from with no trace. Stock moves on Make sale, and on nothing else.
Getting in
First run shows a short tour, then asks how you want to begin. The three answers are genuinely different — pick by what already exists, not by what sounds closest.
Set up a brand new pharmacy
Creates the pharmacyUse this once, on the first device, when the shop has no GalenDesk anywhere yet.
- Open the app. Press Continue through the four welcome cards, or Skip.
- On Get started, choose Sign up.
- If the build has cloud sign-in switched on, it asks for an email and password first. That GalenDesk account is how the pharmacy is reached from a second device later, and how you get back in if this one is lost.
- Fill in the three sections of the setup form:
- Pharmacy — name and address. Both print at the top of every receipt.
- Your account — your full name, a username (3+ characters, no spaces) and a password (8+ characters, with a letter and a number). This is the login you use at the counter each day.
- Recovery — a question and answer. Capitalisation and spaces are ignored. Write the answer down somewhere safe: there is no reset email, and this is the only way back into an owner account.
- Press Create pharmacy. You land on the dashboard, signed in as owner.
Bring an existing pharmacy to a new device
OwnerA new phone, a replacement counter PC, or a browser that lost its data.
- On Get started, choose Sign in to pharmacy.
- Sign in with the GalenDesk account email and password used at setup.
- If the account is not verified yet, follow the link in the email, then press I've verified — check again.
- Press Find my pharmacies and pick the one you want on this device.
- Confirm with Clear and bring it here. Leave the app open while it downloads.
Join as staff, using an invite
Staff- Ask the owner to invite your email (Settings → GalenDesk account → Send invite) and to read you the Pharmacy ID from the same panel.
- On Get started, choose Sign in to staff account.
- Sign in with your own GalenDesk account, enter the Pharmacy ID, and press Join.
- Press Finish setup and create the username and password you will use at the counter.
Sign in, day to day
Anyone- Enter your username and password, and press Sign in.
- If the owner created your account with a temporary password, you are asked to set your own before you reach the counter.
- To leave the till, open the account menu at the top right and choose Sign out.
Forgotten the owner password? Press Forgotten your password?, enter the owner username, answer the recovery question, and set a new one. Staff passwords have no recovery question — the owner resets those from Settings.
Dashboard
The first screen each morning: what the shop has taken, what is running out, and what is about to expire. Every figure is calculated from the records, live.
- Period control — Today, week, month, all time, or a shift
- Re-read the figures after someone else has been selling
- Batches inside the 90-day window
- Products with nothing sellable left
- How the period was paid — cash, transfer, card
- The period’s sales, searchable and sortable
Read the figures for a period
Anyone- Use the period control on the stats panel: Today, This week, This month, All time.
- For a shift, choose Shift, type a start and end time as 24-hour HH:MM, and press Apply. A shift that ends before it starts is treated as running overnight into the next day.
- Press refresh after someone else has been selling, to re-read the figures.
| Card | What it counts |
|---|---|
| Sales / POS | Today's takings so far. Press it to open the counter. |
| Sales | Takings for the chosen period, compared with the same weekday last week. |
| Profit Owner | Selling price minus the cost of the batches those sales actually came from. |
| Expiring Soon | Batches expiring within 90 days. Turns urgent above zero. |
| Low Stock | Products at or below their reorder level. |
| Out of Stock | Products with nothing sellable left. |
The shelf cards — expiring, low and out of stock — are always current. They do not follow the period control, because a product being out of stock is not something that happened last Tuesday.
Use the charts and the recent sales table
Anyone- Graph Report splits the period's takings by how they were paid — cash, transfer, card.
- Total Sales Overview plots takings over the period, so a slow day stands out against the ones around it.
- Recent Sales List lists the period's sales. Search by receipt number or cashier, filter to one payment method, sort by date or total, and hide columns you do not want.
- Press a stat card to jump to the matching filtered list — the filter travels in the address, so the back button works and the link can be shared.
Inventory
Everything on the shelf. Adding a product describes the drug; receiving stock is what actually puts units and an expiry date behind it.
- Search by generic, brand or class
- Download every batch as a CSV to count against
- Bring in an existing stock list
- Register a new product
- Receive a new batch against this product
Find a product
Anyone- Type into the search box — it matches the generic name, the brand and the therapeutic class.
- Or press Browse categories and pick a class or dosage form to filter the shelf.
- Remove a filter with the × on its chip, or Clear to drop them all.
- Read the Nearest expiry column — it warns when the first batch to go is close.
Add a product from the catalogue
Owner onlyThe built-in drug catalogue knows the generics, brands, forms and strengths, so most products are four taps and no typing.
- Press Add product, and stay on the From the catalogue tab.
- Which drug? Search by generic name, or narrow with the class filter, and pick one.
- Which brand? Pick the registered brand on the pack, or Unbranded / generic. If the pack carries a brand the catalogue does not list, enter it and its manufacturer by hand.
- Which presentation? Choose the dosage form, then the strength. Where the catalogue has no confirmed record for that exact brand it says so — check the pack rather than trusting the list.
- How does the shop stock it? Set the unit (what one of them is), the reorder level, and the NAFDAC number if the pack differs from the catalogue.
- Press Register product. Receive a batch next — until you do, the product exists but has nothing to sell.
Add a product manually
Owner only- Press Add product, then the Enter manually tab.
- Enter the generic name — the only required field, and what the drug actually is (e.g. Paracetamol).
- Add the brand (leave blank for a plain generic), strength, dosage form, therapeutic class, manufacturer, NAFDAC number and unit as they appear on the pack.
- Set the reorder level: stock at or below this reads as low and raises an alert.
- Press Add product.
Receive stock
Owner onlyEvery delivery is a batch. This is the screen that decides expiry alerts and which units sell first.
- Reach it from the product's row (Receive), from the product page (Receive New Batch), or straight after registering a product.
- Expiry date — from the pack. Required, and it cannot be in the past.
- Batch number — from the pack if it has one. The same product cannot hold two batches with the same number.
- Quantity — how many units arrived, in the unit you set on the product.
- Cost price per unit — what you paid. Staff never see this.
- Selling price per unit — what the customer pays. The margin is worked out and shown as you type.
- Press Receive batch.
- Drives every expiry alert, and which batch sells first
- From the pack — must be unique for this product
- How many units arrived
- What you paid. Staff never see this
- What the customer pays
- Writes the batch and puts it on the shelf
Import a stock list from a spreadsheet
Owner onlyFor onboarding a shop that already keeps its stock in Excel — hundreds of products without typing them.
- Inventory → Import.
- Download the template (CSV or Excel) and arrange your list to match its columns.
- Choose your file. CSV and Excel both work; a PDF cannot be read — export it as CSV first.
- Read the check. Valid rows and rejected rows are listed separately, each rejection with its reason. Nothing is written yet.
- Confirm to import. Rows sharing a name, brand, strength and form become one product with several batches — which is what a stock list with a row per delivery should produce.
Open a product, and edit it
Anyone can view- Press View on any inventory row.
- The top carries the details — sellable stock, anything expired on the shelf, reorder level, manufacturer and NAFDAC number.
- Batches are listed first-to-expire first, which is the order they will sell in, each with its quantity, cost, selling price and expiry.
- Owners can press Edit Product Details to correct what the drug is. Stock, prices and expiry are not here — they belong to batches.
- Press Save changes.
Take a stock count
Anyone- Press Stock take on Inventory.
- A dated CSV downloads listing every batch — product, batch number, expiry and the quantity GalenDesk believes is there.
- Print it, walk the shelves, and mark what you actually count against it.
Categories
Browse the shelf by class or form
Anyone- Open Categories. Two lists: Therapeutic class (what the drug treats) and Dosage form (how it is taken), each with a product count.
- Search to narrow both lists at once.
- Press any group to open Inventory filtered to it.
These groups are read from the products themselves. To move a product between groups, edit the product and change its class or form.
Sales / POS
The counter. Three stages in the order the shop works in — cart, invoice, sale — and nothing at all is recorded until the last one.
- Search the shelf — only sellable products appear
- Optional: bill this sale to an account
- Payment method
- Cash received — the change is worked out for you
- Goes to the invoice — still nothing recorded
- Park this cart and free the counter
- The carts already parked
Ring up a sale
Anyone- Search stock by generic, brand or class. Only sellable products appear — anything out of stock or holding only expired batches is not offered.
- Press a product to put one unit in the cart. Press again to add another.
- In the cart, adjust quantity with − and +, or type the number straight into the box for a big count. Remove a line with its bin icon, or empty the basket with Clear.
- Add a discount if you are giving one: switch between Amount and Percent, and it comes off the total.
- Choose the payment method:
- Cash — enter the cash received and the change is worked out. Less than the total is refused.
- Transfer — check your bank, then tick Confirm transfer received. That tick cannot be undone once the sale is made.
- POS / Card — add the terminal reference in the note if you keep one.
- Attach a customer if this is an account you invoice. Most sales are walk-ins and need nobody.
- Press Make sale to go to the invoice.
- On the Invoice — marked NOT YET PAID — check the lines and the amount due. Print it and hand it over if the customer wants to see the bill, or press Back to the cart to change something. Nothing has been recorded and no stock has moved.
- Press Make sale again to record it. Stock leaves the shelf, first-to-expire first, and a receipt number is issued.
- On Sale recorded, press Print receipt or Share receipt, then New sale for the next customer.
Attach a customer to a sale
Anyone- In the cart, press Add a customer.
- Search by name, premise or phone, and pick them. The receipt then carries Billed to / Sold to, and the sale collects against them on their customer page.
- Nobody matching? Press Add one, or Keep as walk-in and carry on.
- Remove a picked customer with the × beside their name.
Park a cart and come back to it
AnyoneFor the customer who has gone to find more cash, so the counter stays free.
- Press Hold in the cart. It is parked straight away and labelled Customer 1, Customer 2 and so on — enough to tell parked baskets apart.
- The counter clears, ready for the next person.
- To bring one back, open Customers waiting and press Resume. The lines return to the cart.
- Press Discard for a cart nobody came back for. Anything parked longer than four hours is flagged as probably abandoned.
Transactions
Every sale ever recorded, and the only place a receipt is reprinted or a sale undone.
Find a sale and reprint its receipt
Anyone- Choose the period — Today, Week, Month, All, or a Shift window.
- Find the row by receipt number, cashier, item count, total or date.
- Press Receipt to open it — the same slip that printed at the counter, with the shop's name and address, the lines, the payment, who served, and a QR code carrying the receipt.
- Press Print / save PDF to print it or save it as a PDF. On the phone app this opens Android's print service or a share sheet instead.
Void a sale and put the stock back
Owner only Cannot be undone- Open the sale's receipt in Transactions.
- Press Void this sale.
- Type a reason — “wrong item”, “customer returned it”. It is kept with the sale.
- Press Void and restock.
The units go back on the shelf and the sale stays in history marked Voided, out of every total. Nothing is deleted — a void is a correction the records can show, not an erasure.
Customers
For the wholesalers, retailers, clinics and staff you invoice. A walk-in needs no record, and sales work perfectly without one.
Add a customer
Owner only- Customers → Add customer.
- Choose the category: Wholesaler, Retailer, Walk-in, Hospital / Clinic or Staff.
- Enter the name — the person or business you invoice — with the premise, phone and address.
- Use Note for credit terms, delivery days, anything worth remembering.
- Press Add customer. They are now offered at the counter.
Read a customer's account
Anyone- Search the list by name, premise or phone, filter by category, and open the customer.
- The top shows total spent, order count and last purchase.
- What they buy ranks their products by spend, voided sales excluded.
- Their orders lists every sale recorded against them, with its receipt.
Edit, deactivate or bring back a customer
Owner only- Open the customer and press Edit to change their details. Receipts already printed keep the name they were written with.
- Press Deactivate for an account that has stopped buying. They disappear from the counter; their history is kept.
- Tick Show inactive on the list to find them again, then Reactivate.
Suppliers
Who you buy stock from, and how to reach them.
Keep the supplier book
Owner adds and edits- Suppliers → Add supplier. Name, company and phone are required; email is optional.
- Press Add supplier to save.
- Search the list by name, company, phone or email; open one to see their contact details.
- Edit changes what is on file. Delete asks for confirmation and cannot be undone.
Anyone signed in can look a supplier up — that is the point of having them on file at the counter.
Alerts
What needs attention before it costs money: batches running towards their expiry date, and products running out.
Work the three lists
Anyone- Expiring — every batch expiring within 90 days, soonest first, with anything already expired at the top.
- Low stock — products at or below the reorder level you set, with how many to order.
- Out of stock — products with nothing sellable behind them at all.
- Press a row to open the product and act on it — receive a new batch, or check what is left.
| Colour | Meaning |
|---|---|
| Red | Expired, or expiring within 30 days |
| Orange | Expiring within 60 days |
| Yellow | Expiring within 90 days |
Export a list to work from
Anyone- Open the tab you want — the export follows the tab you are on.
- Press Export CSV.
- Open it in Excel to build a reorder list, or send it to a supplier.
Reports
See what the shop actually made
Owner only- Open Reports and choose the period.
- Read the three figures: Revenue, Cost of goods and Profit, with the margin as a percentage.
- Most profitable products ranks what earned, as a chart and a table of revenue, cost and profit per product.
- Press Export sales CSV for a row per sale line, to hand to a bookkeeper or open in Excel.
Profit is worked out from the batch each line actually sold from, not an average cost — so a delivery bought cheaper shows up as the better margin it was.
Settings
Change the pharmacy details
Owner only- Settings → Pharmacy details.
- Edit the name and address. These print at the top of every receipt, so a move or a rename belongs here first.
- Press Save.
The Pharmacy ID shown underneath is what a staff member types when joining this pharmacy from their own device.
Manage staff accounts
Owner only- Settings → Staff accounts. Inviting staff needs the pharmacy linked to its GalenDesk account — see below.
- Enter their email and press Send invite. They are emailed, and the invite waits under Invited, not yet joined until they use it.
- Press Set shift beside a member to record which shift they work.
- Press Remove to take someone off the pharmacy. They lose access to the shared records; their own device keeps what it already had.
Check who did what
Anyone- Settings → Activity log.
- Read the last 50 actions on this device: sign-ins, products registered and edited, stock received and adjusted, sales made and voided, staff created, disabled and reset.
Every entry carries who did it and when — which is what makes a disagreement at the counter answerable.
Licence & payment
A 15-day free trial that starts at your first sale, not at install — so setting up the shelf costs you none of it.
Buy or renew a licence
Owner only- Open Settings → Subscription, or press Buy a licence on the trial card at the bottom of the sidebar.
- Pick a plan: ₦5,000 / month or ₦55,000 / year.
- Enter the email Paystack should send the receipt to.
- Press Pay. Paystack opens as a separate step — pay by card or transfer there.
- Come back to GalenDesk. It unlocks itself; if it has not caught up, press I have paid — check now.
What an expired trial or licence stops
Good to know| Still works | Needs a licence |
|---|---|
| Dashboard, sales history, receipts | Recording a new sale |
| Inventory, alerts, reports | Receiving stock |
| Every export |
Your records are never held hostage — an unlicensed GalenDesk still shows and exports everything the shop has done.
More than one device
A second till, the owner's phone, a replacement PC. All of it runs through the pharmacy's GalenDesk account.
Put this pharmacy on the cloud
Owner only- Settings → GalenDesk account → Open.
- Sign in with the owner's GalenDesk account, and verify the email if you have not already.
- Press Enable multiple devices. Everything on this device is sent up — a big catalogue takes a moment.
- This device carries on exactly as it was. What changes is that the records now exist somewhere else too.
Add a second till
Owner invites- On the same panel, note the Pharmacy ID.
- Enter the staff member's email under Their email and press Send invite.
- On the second device, they choose Sign in to staff account and join with that ID — see Getting in.
- Both devices then hold the same stock and sales, kept in step.
Theme, language, phone
Set up your own till
Anyone- Press the sun / moon control in the top bar to switch between light and dark.
- Press the language pill beside it and choose English, Français, العربية or Português. Arabic lays the screen out right-to-left.
- Both are per-device preferences, not pharmacy settings — your choice does not change what anyone else sees.
- On a phone, the sidebar becomes a tab bar along the bottom, and More reaches everything that does not fit.
When something looks wrong
| What you see | What to do |
|---|---|
| “GalenDesk is open in another tab” | Only one tab can use the pharmacy at a time — two writing at once would damage the records. Switch to the tab you already have open, or close it and press Try again. Nothing has been lost. |
| “The date on this device was changed” | The device's date is earlier than one GalenDesk has already seen. Set the date correctly and reload. A wrong date also files sales under the wrong day and misjudges expiry. |
| A product will not appear at the counter | It has no sellable stock — either nothing was received against it, or every batch it has is expired. Receive a batch. |
| “Only the owner can…” | You are signed in as staff. Selling and looking things up are yours; changing the shelf is the owner's. |
| Your dashboard shows less than the owner's | Staff figures are your own sales for today, by design. Cost price and profit are not shown to staff at all. |
| The browser's site data was cleared | That deletes the pharmacy on that browser. Sign in with the pharmacy's GalenDesk account to bring the records back down — which is exactly why setup asks for one. |
Habits worth keeping
- Receive every delivery the day it arrives, with its real expiry date. Every alert and every profit figure is built on that date.
- Set a reorder level on each product as you add it, so Low stock means something.
- Work the Alerts screen weekly, not when something has already expired.
- Keep the pharmacy linked to its GalenDesk account. It is what makes a lost or broken device an inconvenience rather than a disaster.
Getting help
If the table above does not cover it, there is a person at the other end of all of these.
When you write in, say what you were doing and what the screen said. A receipt number, a product name, or the exact wording of a message gets to an answer far quicker than “it is not working”.