Setting up a pharmacy
Pharmacy · checked 2026-10-24
This guide turns a shop that already sells on iVendNext into a pharmacy. The shop needs its company, stores, tills, a price list and users first. Do the steps in Desk, as a user who may create items, stores, prices and users, and in the order below. Several steps depend on the one before them. Each step names a screen as you find it by searching Desk.
The guide only changes settings and records that the shop already has. It adds no code. The pharmacy apps come last, in Pharmacy on iVendNext.
Telling medicine from the rest of the shop
The dispensary till, the lot checks and the expiry checks find medicine by its item group. You make those groups first.
- Search Desk for Item Group. Make a group for all medicine, such as Medicines, under your top group. Tick Is Group.
- Under it, make a group for each class you sell, such as Prescription Medicines, Controlled Medicines and Over-the-Counter Medicines.
Your own groups work as well. The rest of this guide calls them the medicine groups. A drug schedule, which is the class a medicine belongs to by law, is not an item group. You set it on the item in Pharmacy counter rules.
Receiving through an ERP connector
If an ERP connector posts your goods receipts, make sure each lot's expiry date comes across with the lot before you go on. For SAP Business One this is a mapping row on the connector's Integration Document Mapping that carries the lot's expiry date. Ask your partner to add it before you go on. Without the date, the steps below refuse the lot, or iVendNext gives it a date worked out from the receipt day, which is later than the date on the pack.
If you receive only in iVendNext or on Handheld, skip this step.
Older lots with no expiry date
Do this before the next step. Once an item has Has Expiry Date on, a later save of a lot with no expiry date is refused. Where the item has a shelf life, iVendNext gives the lot a worked-out date instead, which is later than the date on the pack. A save for a recall is one of these saves.
- Search Desk for Batch. Filter the list to your medicine items and to lots where Expiry Date is not set.
- Open each lot and tick Disabled. A disabled lot is no longer offered at an online till or by a barcode scan. A lot typed by hand on a Desk document is still accepted today.
- Give the list to the pharmacist. The pharmacist types the expiry date printed on each pack, then unticks Disabled. Leave a lot disabled if a recall names it.
Never work out a date yourself from Manufacturing Date. iVendNext fills that field with the day the lot was entered, so a date worked out from it is later than the date on the pack.
Putting expiry dates on your medicine
Search Desk for Item and open each medicine item that you sell by lot.
- Tick Has Expiry Date, and Has Batch No if it is not ticked. An item without lots cannot keep an expiry date. iVendNext refuses Has Batch No on an item that has a submitted sale, receipt or stock entry. For such an item, make a new item with both ticked and stop using the old one. If you do not want lots for an item, move it out of the medicine groups.
- Fill Shelf Life In Days where the pack has a fixed life, such as 1095 for three years.
- Where the item has no shelf life, untick Automatically Create New Batch. Without a shelf life, iVendNext refuses a new lot that it makes by itself.
Where an item has a shelf life, a lot received with no expiry date typed gets a date worked out from its manufacturing day plus the shelf life. That date is later than the one on the pack. The setting "Pack expiry required where the item has a shelf life" in Expiry and recall stops this at goods-in, and it is on by default. Until you turn that app on, check these receipts yourself. On Handheld the expiry field is optional, and Handheld cannot send the pack's date. If you receive on Handheld, turn this setting off in Expiry and recall and check those receipts yourself.
Making the dispensary store and till
The dispensary is the store that sells medicine. A second store keeps recalled and expired stock apart.
- Search Desk for Warehouse. Make a quarantine store, such as Pharmacy Quarantine, and a dispensary store, such as Pharmacy Dispensary. Put both under your company's group store. If an ERP connector owns your stores, as SAP Business One does, make them in the ERP first, then go on once they reach iVendNext.
- Open the dispensary store and tick Is Retail Store. Fill Selling Price List, Cash Customer and Company Currency the same way as on your shop's own store. The till reads them from the store.
- Search Desk for POS Profile. Open your shop's profile, choose Duplicate from the menu and name the copy for the dispensary.
- On the copy, set Warehouse to the dispensary store and clear Applicable for Users, because the front till's cashiers are not the dispensary's. Add the pharmacists. In Item Groups, keep only your medicine group, so the dispensary sells medicine only.
- On the copy, set POS Offline Selling to Disabled. The dispensary sells only while it is online, so a medicine sale is checked before it is paid.
- Check the payment methods the copy took from the shop's profile. The copy keeps the payment methods but not the card terminal. Give the dispensary its own terminal, or take card off its payment methods.
- Give the dispensary's sales their own numbers. Search Desk for Document Naming Rule and make one. Choose POS Invoice as Document Type, enter a Prefix such as
PHD-.YY.-, set Digits to 6, set Priority to 10, and add the condition that POS Profile equals the dispensary's profile. Check the number on the first sale.
Keep prescription and controlled stock only in the dispensary store, so that the front till cannot sell it. Name the quarantine store in the Quarantine stores setting of Expiry and recall.
Selling an expired lot
The stock ledger refuses an expired lot when the sale posts, and an online till never offers one. For a till sale, the refusal comes when the day is closed. If Retail Setting shows Allow selling an expired batch, leave it unticked. If your site does not show it, there is nothing to do.
Prices and discounts
- Search Desk for Price List. Make a list for your regulator's fixed price and tick Selling. Where your market sets a ceiling price instead, make a list for that price. Enter the prices with Item Price. Then open the dispensary store and change its Selling Price List to that list.
- Search Desk for Retail Permission. Open the shop's Cashier permission, choose Duplicate and name the copy, such as Pharmacy Dispensary Staff. On the Price and Discount Detail tab, set Maximum Item Discount(%), Maximum Sale Discount(%), Price Override Lower Limit and Price Override Upper Limit to 0.
- Open each dispensary user and choose that permission in Retail Permission. The limit applies to everything the user sells. This is why the dispensary profile sells medicine only.
- Do not set a Default Price List on a customer group for an insurer's members. It would price a member's cash sale on the insurer's list.
If your market charges levies on medicine, make a tax account for each levy, then an Item Tax Template that lists them with their rates. Put the template in the Taxes table of the medicine item group. This guide does not list any market's levies. Use the ones your law sets.
Customers
A patient should be one customer. A save rule refuses a second customer with the same mobile number.
- Search Desk for Retail Save Rule and make a new one. Name it, such as Pharmacy: one customer per mobile.
- Set Record type to Customer, Kind to unique_across and Field to
mobile_no. Set When the rule is broken to refuse and tick Enabled. Save.
If Kind has no unique_across, update the POS app first. On a site with a very large customer list, iVendNext may refuse to save the rule and tells you why.
Store credit
A pharmacy can give store credit as a gift card that expires. iVendNext allows one store-credit item for the whole site, so use the one your shop already has.
- Search Desk for Item and open the item with Is Gift Card and Use as Store Credit ticked.
- Fill Expiry Days, the days a credit stays valid, such as 7. The days apply to every store.
If the shop has no such item, make one. Tick Is Gift Card and Use as Store Credit, and untick Allow Sales and Maintain Stock. iVendNext refuses to save a store-credit item that can be sold. Set Gift Card Type to System Generated and leave Allow Multiple Redemptions unticked. Then fill Expiry Days.
Receiving goods
Do not make the supplier's invoice number a required field on Purchase Receipt. Handheld's receipt cannot send it, and a receipt posted by an ERP may not either, so a required field would stop two of your three ways to receive goods. If you receive only on the Desk or through an ERP connector, turn on the setting "Supplier's invoice or credit-note number required" in Expiry and recall instead. It refuses a Desk receipt with no number and flags one the connector posts. If you receive on Handheld, leave it off, because Handheld's receipt cannot send the number.
If you want only purchase managers to submit and cancel purchase orders, make two save rules in Retail Save Rule, one for each action. Set Record type to Purchase Order, Kind to role_for_action, Action to submit for the first and cancel for the second, and Roles that may pass it to Purchase Manager and System Manager. Set When the rule is broken to refuse. First list every role and every connector that submits or cancels purchase orders today, and add them to the roles. One you leave out is refused. An ERP connector may submit as a Purchase User.
Choosing the lot a sale gets
- Search Desk for Stock Settings. Set Pick Serial / Batch Based On to Expiry. The default, FIFO, picks the oldest lot record, which is not always the lot that expires first.
- Read "Auto Create Serial and Batch Bundle For Outward" on the same screen, and do not change it. The right choice depends on your shop:
- When it is on, iVendNext assigns a lot to a line that names none, such as an offline sale sent later. That lot may not be the pack handed over.
- When it is off, such a sale waits for review and the cashier supplies the lot.
Both settings apply to every company and every item on the site, not only to medicine.
Closing the day
Your accountant chooses how the company posts POS sales. This guide never changes it. If the company has no posting method set, ask your accountant to set one before you sell medicine. If the company posts at shift closure, a day cannot be closed once a lot it sold has passed its expiry date. Close each POS day on the day itself. Open days also keep prescription fills reserved in Pharmacy counter rules.
Setting the default company
Search Desk for Global Defaults and check Default Company. With no default company, an item sold by lot cannot be sold. When the site has several companies, new lot records take the default company.
What you set up next
Turn on the two pharmacy apps through your partner, then the general apps you want. They are listed in Pharmacy on iVendNext. Before you do, read Your duties under data-protection law.