Skip to main content

Suppliers, purchase orders and wholesale integrations

A supplier in Lupa is a wholesaler or vendor you buy stock from β€” NVS, MWI, Covetrus, plus any local pharmacy, food distributor, or specialist supplier you order from directly. Once a supplier is connected, you can browse their catalogue, build a basket, and submit a purchase order without leaving Lupa. The order then lives in the Orders tab where the dispensary tracks it through to delivery.

πŸ’‘ In short: Connect a wholesaler in Settings β†’ Suppliers, browse their catalogue from Inventory β†’ Supplier Catalogue, build a basket, then click Place Order in the Basket tab. Each order appears in the Orders tab so you can track its status and process it when stock arrives.


Why It Matters

⚠️ Place orders through the Basket not the wholesaler portal. Once a supplier is connected, the basket sends the order electronically and the result is tracked end-to-end in Lupa: status, costs, items, batch numbers when stock arrives.

Benefit

Why it matters in the practice

One ordering surface for every wholesaler

NVS, MWI, Covetrus all live in the same Basket tab. The team never has to flip between portals or remember separate logins for each supplier.

Costs and pack sizes flow through automatically

Each supplier's catalogue is synced to Lupa, so item codes, pack sizes, and procurement costs are already correct on every order line β€” no copy-paste from a price list.

Per-supplier sub-baskets, one click each

If you've added items from three suppliers, the Basket tab splits them into three sub-baskets. One Place Order click per supplier β€” no manual sorting.

Status visible at a glance

Every submitted order lands in the Orders tab with a status pill β€” Requested, Pending, Part Processed, Completed, or Cancelled β€” so the dispensary knows what's still expected without chasing.

Receiving is one tab away

When the delivery arrives, the same order is opened from the Orders tab and the stock is processed in. The supplier, lines, and pricing are already there β€” see .


Step 1: Connect Your Suppliers

Connecting a supplier is a one-time job per wholesaler. Once connected, the supplier's catalogue and credentials are reused for every future order.

  1. Click the Settings (cog) icon in the top navigation

  2. Open the Suppliers tab in the left-hand menu You'll see two sections:

  • Connected Suppliers β€” wholesalers connected for this store, with a green Enabled pill on each card.

  • Custom Suppliers β€” vendors that don't have a Lupa integration (a local pharmacy, a food distributor, a specialist). Custom suppliers are managed at the company level and shared across every store; click the link to jump to Company Settings to add or edit them.

    The Settings β†’ Suppliers page β€” Connected Suppliers section showing MWI Animal Health and National Veterinary Services as Enabled, each card with order email, phone, website, and an Edit button. A plus-icon card sits next to them for adding another integrated supplier. The Custom Suppliers section below links to Company Settings.

πŸ“ Permission required: Connecting or updating an integrated supplier needs the Integrations Settings permission. If your role doesn't include it, the Suppliers tab is hidden β€” ask your Practice Manager to grant it under Settings β†’ Roles & Permissions.

Connecting an integrated wholesaler

  1. Click the + card under Connected Suppliers

  2. In the Connect Supplier dialog, pick the wholesaler from the Supplier dropdown β€” only suppliers you haven't already connected appear

  3. Name, Order Email and Website auto-fill from the supplier's defaults β€” adjust only if your account differs

  4. Fill in the Phone for the supplier's account team and toggle Enabled on

  5. Enter your account credentials in the lower section β€” the fields shown depend on the supplier (see the table below)

  6. Click Connect Supplier

    The Connect Supplier dialog with Covetrus selected. Supplier Details show the auto-filled Name, Order Email, and Website plus the Phone you've added. The Enabled toggle is on. Below, the credentials block shows Account, Username, Password, and Location β€” the four fields Covetrus requires.

    Lupa validates the credentials by connecting to the supplier's API as soon as you click Connect Supplier. If anything's off, you'll see an error and the supplier won't be saved β€” your account isn't locked by a bad attempt.

Supplier

Credentials it asks for

NVS

NVS Account Number

MWI

API Key β€” issue this from your MWI account, or ask MWI customer service for one.

Covetrus

Account, Username, Password, and Location β€” Location is optional and only needed for multi-site Covetrus accounts.

πŸ’‘ Each store has its own supplier connection. If your group runs multiple stores, each store sets up its own NVS / MWI / Covetrus credentials so deliveries and invoices route to the right account.

Updating a supplier

Click Edit on a connected supplier card to open the Update Supplier dialog. Use this when:

  • A password or API key has rotated

  • The order email or phone for the supplier's customer service has changed

  • You want to temporarily disable a supplier without deleting it (toggle Enabled off β€” the supplier stays connected but products linked to it can't be added to the basket until re-enabled)


Step 2: Build a Basket from the Supplier Catalogue

Once a wholesaler is connected, its full catalogue is searchable inside the Inventory module.

  1. Go to Apps β†’ Inventory

  2. Click the Supplier Catalogue tab The table shows every product across every connected wholesaler with Description, Item Code, Pack Size, Cost, Supplier, Manufacturer, In Stock, and VAT columns.

    The Inventory β†’ Supplier Catalogue tab. The data table shows 28,016 supplier products across NVS and MWI with description, item code, pack size, cost, supplier, in-stock flag, and VAT code. The Filter, Search products, and Scan controls sit in the top toolbar.

    Search by product name, active ingredient, or item code in the Search products... box at the top.

    The same Supplier Catalogue tab filtered to "Amox" β€” 62 results across MWI and NVS, including Amoxibactin Tablets in three pack sizes and Amoxicillin in caps, injectables, and oral suspensions.

πŸ’‘ Catalogues are synced in the background. Lupa refreshes each wholesaler's catalogue on a regular schedule, so prices and pack sizes track the supplier's published list. Real-time stock availability is the wholesaler's responsibility β€” the In Stock column reflects what they last reported.

Adding an item to the basket

  1. Click the β‹― menu at the right of any product row

  2. Choose Add to Basket

  3. In the Add to Basket dialog, set the Quantity (the unit shown is the supplier's pack β€” PK 100, 1 Vial, 250 Blister Pack)

  4. Lupa shows the Purchase Price Per Unit and the calculated Total Purchase Price

  5. Click Add

    The Add to Basket dialog mid-flow. The Product Details card shows code 907534, description "0.3ML INSULIN U100 SYR 29GX0.5' SOL", pack size PK 100. The Estimated Cost card shows Quantity 5, Purchase Price Per Unit Β£14.65, Total Purchase Price Β£73.25. The Add button is highlighted in the bottom right.

    There are three other places Add to Basket appears, all of which feed the same basket:

Where

What it does

The Stock tab's row menu

The same β‹― β†’ Add to Basket action on a product in your own catalogue (not the wholesale catalogue). Only available when the product is linked to a connected supplier β€” see .

The bulk action bar

Tick several products in the Stock tab and click Add to Basket in the action bar at the bottom. Each product is queued at quantity 1 β€” adjust in the Basket tab afterwards.

Suggested Orders

The Add All to Basket button inside the Suggested Orders dialog dumps every low-stock item into the basket in one go. See .


Step 3: Review the Basket

Open Inventory β†’ Basket to see everything you've queued. If you've added items from more than one supplier, the basket splits automatically into a tab per supplier with the item count next to each name (e.g. MWI 2, NVS 9). Each sub-basket is its own purchase order β€” you submit them independently.

The Inventory β†’ Basket tab with two sub-tabs: MWI (2 items) and NVS (9 items). The MWI sub-basket shows two products β€” DOMITOR INJ 10ML at quantity 2 (Β£181.30) and ANTISEDAN INJ 10ML 5MG/ML at quantity 3 (Β£311.79). The toolbar across the top has Filter, Search, Supplier Info, Export CSV, and a purple "Place order for Β£493.09" button.

For each row in the active sub-basket:

Action

How

Adjust the quantity

Click the pencil icon at the end of the row, change the quantity in the dialog, click Update.

Remove an item

Click the trash icon at the end of the row.

Bulk-remove items

Tick the checkbox on each row you want to drop, then click Remove from Basket in the action bar.

Sanity-check the supplier's contact details

Click Supplier Info to see the supplier's order email, phone, and website without leaving the basket β€” handy if you need to ring them about a back-order.

Hand off to someone outside Lupa

Click Export CSV to download the basket as a spreadsheet β€” useful for forwarding to a custom supplier who can't take an electronic order.


Step 4: Place the Order

When the sub-basket looks right, click Place order for £… in the top right. The button shows the basket total so you can sanity-check before committing. What happens next depends on the supplier:

  • Integrated wholesaler: Lupa submits the order electronically to NVS / MWI / Covetrus and the wholesaler returns an order code. The order lands in the Orders tab with status Pending (or Requested for MWI, which awaits supplier confirmation before moving to Pending).

  • Custom supplier: Lupa generates an internal order code and saves the order at status Pending. You then place the actual order with the supplier through your usual channel β€” phone, email, or their portal β€” using the Export CSV download as a hand-off. Lupa places the order, clears the matching basket items, and takes you back to the Orders tab so you can see the new order alongside everything else in flight. The other sub-basket (e.g. the NVS one) is untouched.

βœ… The submission is atomic. Lupa either creates the order and clears those basket items, or does neither. If the supplier's API rejects the order or the connection drops mid-submit, the basket stays exactly as it was β€” nothing partial is saved, so a retry is safe.

⚠️ A placed order can't be unsubmitted. If you need to back out, cancel individual lines from the order page, or contact the supplier's customer service if the wholesaler has already started picking. Cancelling lines updates the order's status β€” it doesn't remove the audit record.


Tracking Orders in the Orders Tab

Every order β€” past, current, integrated, custom β€” lives in Inventory β†’ Orders. By default the list hides Completed and Cancelled orders so active work stays front and centre. To bring those back, open the filter menu and adjust the Status filter.

The Inventory β†’ Orders tab. Each row has the order code (e.g. ORD-LUPAOR28022075) with item count and total price underneath, the date placed, the price, the employee who placed it, a status pill, the supplier, and a Process button. Statuses across the visible orders include Pending and Completed.

Each row carries:

  • Code β€” the order reference. For integrated suppliers this is the wholesaler's own order code; for custom suppliers Lupa generates one.

  • Date placed

  • Price β€” the basket total at submission

  • Employee who placed the order

  • Status β€” see the status table below

  • Supplier

  • Process / Unlock β€” for orders that are still open (Pending, Requested, or Part Processed), Process opens the order's receiving page so the dispensary can mark stock as it arrives. On that page you can search by product name, Item Code, or barcode β€” both the supplier's product details and your own internal product fields β€” and filter the lines by Status, to find exactly what you need in a large delivery. For a Completed order, the button changes to Unlock β€” click it to reopen the order and land straight on the receiving page so you can correct a mistake or add a missed line.

Click any row to expand it inline and see its line items.

What each order status means

Status

What it means

Requested

The order has been submitted but the supplier hasn't yet confirmed receipt. Used by MWI as an intermediate state β€” others move straight to Pending.

Pending

The supplier has accepted the order and it's on the way. This is the most common status while you're waiting for delivery.

Part Processed

Some lines on the order have been received and processed into stock; others are still outstanding. Common with split deliveries.

Completed

Every line on the order has been received and processed. If an order was completed by mistake or a delivery line was missed, click Unlock on the order row to reopen it β€” the order moves back to Part Processed (if any items were already received) or Pending (if none were), and you land straight on the receiving page. See .

Cancelled

The order (or the remaining lines) was cancelled before delivery. The cancellation is kept in the audit trail.

Lupa polls each integrated supplier in the background to refresh delivery status. If a wholesaler returns an updated delivery report, the matching order's lines are advanced automatically β€” no manual lookup required.

Tips

βœ… Habits from practices that run Lupa well:

  • Connect every wholesaler you actually order from on day one β€” costs and pack sizes only start syncing after a supplier is connected

  • Keep credentials current: when a wholesaler portal rotates a password, update it in Lupa the same day so the basket doesn't fail mid-order

  • Leave the Enabled toggle on once a supplier is in production β€” only flip it off when you're temporarily winding a supplier down

  • Toggle Enabled off rather than removing a supplier; you keep the historical orders linked to their source

  • Use the Phone and Order Email fields on each connected supplier card as the practice's single source of truth for that wholesaler's contact details

  • For custom suppliers, use Export CSV from the basket to hand the order to the supplier's rep β€” it doubles as your own audit copy

  • The Orders tab opens showing only active orders β€” Completed and Cancelled are hidden by default. Use the filter menu to bring them back when you need to review historical orders

  • Filter the Orders tab by Pending weekly so the dispensary spots wholesaler back-orders before they bite


Troubleshooting

Problem

Solution

Connect Supplier rejects my credentials

Lupa validates against the supplier's live API. Double-check account number, username, and password β€” copy-paste rather than retyping if possible. For Covetrus, confirm the Location field matches your branch ID. If the supplier's portal logs in fine but Lupa rejects, ask the supplier whether your account has API access enabled β€” some suppliers gate this separately from web access.

A wholesaler I expect isn't in the Supplier dropdown

The dropdown only shows suppliers Lupa has an integration for. If you don't see your wholesaler and they don't appear under Custom Suppliers either, talk to Lupa support about adding them as a custom supplier in Company Settings.

The Supplier Catalogue is empty for a supplier I just connected

The first sync runs on the wholesaler's schedule, so a brand-new connection may show no products for an hour or two. If the catalogue stays empty for half a day, edit the supplier and re-save β€” that re-validates the connection and queues another sync.

Heiland rejects an order with a "customer reference" error

Heiland needs your clinic's customer reference set on its side before any order will go through. Log in to your Heiland account, add or correct the reference, then retry Place Order β€” Lupa surfaces the underlying Heiland error message so you know which is missing or invalid.

Place Order is greyed out

The basket is empty for that supplier, or the supplier's Enabled toggle is off. Re-enable it under Settings β†’ Suppliers, refresh, and the button comes back.

I need to correct a completed order

Find the order in the Orders tab (you may need to remove the Status filter to show completed orders). Click Unlock on the order row β€” this reopens the order and takes you straight to the receiving page so you can process any missed or incorrect lines.

An order is stuck on Requested

Requested means the supplier (typically MWI) hasn't acknowledged receipt yet. Lupa checks periodically and will move the order to Pending once it does. If it sits at Requested for more than a day, contact the supplier's customer service and quote the order code β€” there's a good chance the wholesaler dropped the message and you'll need to resubmit.

The Orders tab is missing an order I just placed

Check that the Status filter isn't hiding the order β€” the Orders tab hides Completed and Cancelled orders by default, so if the order was immediately completed it may be filtered out. Clear the status filter to show all orders. If the order still isn't there, refresh the page; a brand-new order lands at the top. If the supplier rejected the submission, no order is created at all and the items remain in the basket β€” check there first.


Frequently Asked Questions

Can I order from a wholesaler that isn't NVS / MWI / Covetrus / Heiland?

Yes. Add them as a Custom Supplier in Company Settings. You won't get electronic ordering or live catalogue browsing, but you can still link products to them, build a basket of those products, place an order in Lupa for the audit trail, export the basket as CSV to send to the supplier, and process the delivery into stock when it arrives. When you're linking a product to a custom supplier and the product doesn't exist in that supplier's list yet, click Add Custom Supplier Product next to the supplier product field to create it on the spot β€” fill in the Item Code, Description, Pack Size, and Cost, then click Add.

Do I have to clear my basket before placing an order?

No. Each supplier sub-basket is its own order. Click Place Order on the MWI tab and only MWI items are submitted β€” your NVS sub-basket stays untouched, ready for you to submit separately.

What happens if my internet drops while submitting an order?

Submission is atomic β€” either the whole order goes through and the basket items are cleared, or neither happens. So if the connection drops mid-submit, you can safely click Place Order again. Lupa won't have created a half-saved order or lost any of your basket items.

Why does MWI use "Requested" while NVS goes straight to "Pending"?

The wholesalers themselves work differently. MWI returns an acknowledgement separately from confirmation, so Lupa shows Requested in the gap. NVS, Covetrus, and Heiland confirm immediately, so their orders open directly at Pending.

Can I edit a supplier without breaking past orders?

Yes β€” historical orders link to the supplier record, but they keep the prices, codes, and details that were on them at the time. Updating the supplier's email, password, or notes today doesn't rewrite anything on yesterday's order.

Can I disable a supplier temporarily?

Toggle Enabled off in the Update Supplier dialog. The supplier stops appearing in the basket and Add to Basket is disabled for any product linked to it, but the supplier record, its catalogue, and every past order remain intact. Toggle back on whenever you're ready.

Where do I see what's currently expected in deliveries?

Filter the Orders tab to Pending and Part Processed β€” those are the orders the wholesaler has accepted but hasn't fully delivered. Click into any row to see the line-by-line breakdown.


Related Articles

Did this answer your question?