Skip to content

Clinic Inventory Software for Batch, Expiry and Central Orders

A skin clinic group now tracks every product by batch and expiry date, and each clinic order runs from head office to supplier and back with a clear owner.

HealthcareA skin and laser clinic group in India with a central purchasing office ยท 4 min read

Staff member placing an order on the phone at a laptop while a colleague checks stock in a glass-fronted cabinet
Client
A skin and laser clinic group in India with a central purchasing office
Industry
Healthcare
Platforms
Web
Download one-pager (PDF)
  1. The challenge

    The clinic stocks many products from different suppliers and brands, and many expire. It needed to track stock by batch and date, and know who used each item. As it grew into a group, orders, approvals, supplier purchases, returns and payments moved between clinics, a central office and suppliers with no single view.

  2. What we built

    We first built a web inventory system with batch-wise inward and outward stock, reorder levels and expiry reports. Later we designed a three-party ordering flow on Angular and MongoDB. Clinics order at fixed central prices, the central office approves and fulfills from stock or suppliers, and clinics validate deliveries.

  3. The result

    The group can see what it holds, where, and when it expires. Every order has a clear owner at each step, from clinic request to delivery. Stock at the clinics and the central office updates as goods move.

What the system does.

The parts of the system that made the difference for the client and the people who use it.

  • Batch-wise inward

    Each delivery is recorded with its batch number and expiry date.

  • Outward by batch

    Stock leaves by batch and is allotted to an employee or a retail sale.

  • Reorder and expiry reports

    Filtered reports list items below reorder level and items by expiry date.

  • Clinic stock dashboard

    Each clinic sees its own stock and spots what needs reordering.

  • Orders at central prices

    Clinics build orders using fixed prices set by the central office.

  • Central approval and supplier orders

    The central office approves each order and raises a supplier order when its own stock is short.

  • Receive, validate and return

    Deliveries are checked against order and invoice before stock updates, and problems become returns.

  • Clinic invoicing

    The central office invoices clinics that have not prepaid and records their payments.

Built with

The tools behind it, layer by layer.

  1. Front end

    • Angular
  2. Back end

    • Node.js
    • Express.js
  3. Database

    • MongoDB
  4. Cloud and hosting

    • AWS
  5. CI/CD and DevOps

    • GitHub Actions
    • Git

The full story

The challenge

A skin and laser clinic uses a wide range of products from different suppliers and brands, kept in several storage locations, and many of them expire. The clinic needed clinic inventory management software that showed what it held, which batch each item came from, when that batch would expire and who had used it.

Then the business grew into a group. Buying moved to a central office, which supplied each clinic at fixed prices and either filled orders from its own shelves or bought from suppliers. Every order now involved three parties.

Orders, approvals, supplier purchases, returns and payments moved between the clinics, the central office and suppliers with no single view. Simple questions became hard to answer: who approved this order, has it shipped, has the clinic paid, and where did the faulty box go?

The clinic inventory management software, in two stages

We built the inventory in two stages, both as web applications.

Stage one: stock by batch and expiry. On Node.js, Angular and MongoDB, we set up masters for categories, items, suppliers, brands and storage locations, with a reorder level on every item.

  • Batch-wise inward. Each delivery is recorded with its batch number and expiry date.

  • Outward by batch. Stock leaves against a chosen batch and is allotted either to an employee or to a retail sale.

  • Six filtered reports covering suppliers, items, expiry dates, employee use, consumption and reorders.

Stage two: central ordering. As the group took shape, we designed a three-party ordering flow on Angular and MongoDB that links each clinic, the central office and suppliers.

  • Each clinic has a dashboard of its own stock and builds orders at prices fixed by the central office.

  • The central office approves each order, checks its own stock and raises a supplier order when it falls short, recording the supplier's invoice, payment and any returns.

  • Incoming goods are validated at the central office before its inventory updates. The office then ships to the clinic and invoices it if it has not prepaid.

  • The clinic checks the delivery against the order and invoice before its own stock changes, and raises a return if anything is wrong.

How it works day to day

Take a clinic manager checking supplies ahead of a busy week. The dashboard shows what the clinic holds, and the reorder report lists anything under its reorder level. The manager builds an order from the central office's fixed prices and submits it.

At the central office, the order waits for approval. Lines that the office holds are picked from its own stock; anything short becomes a supplier order. When those goods arrive, staff validate them, add them to central stock and ship the clinic's order complete.

Back at the clinic, the manager ticks the delivery off against the order and invoice, and only then does clinic stock change. A damaged item becomes a return routed through the central office. Meanwhile the expiry report, filtered by date, shows which batches should be used first.

The result

The group can see what it holds, where it is kept and when it expires. Every order has a clear owner at each step, from clinic request to delivery, and stock at the clinics and the central office updates as goods actually move.

Items under their reorder level and batches nearing expiry surface in reports before they turn into a shortage or a write-off.

What the research says

  • Live stock data cuts waste and gaps. A 2025 systematic review of nine studies on digital tools in hospital pharmacies found real-time inventory tracking through automated dispensing cabinets cut stock-outs by 35%, and one study reported a 20% drop in expired medicines (Journal of Preventive Medicine and Public Health, 2025). The clinic group's system works on the same idea: stock updates as goods move, and expiry reports show which batches to use first.

  • Growing firms move to ERP-style systems. Eurostat found that in 2025, 41% of small EU enterprises used ERP software, against 89% of large ones (Eurostat, 2026). As this group grew from one clinic to several, its orders, approvals and invoices moved into one connected system.

  • Cloud is now the default. Just over half of EU enterprises, 52.74%, paid for cloud computing services in 2025, up 7.42 percentage points on 2023 (Eurostat). Running on AWS lets the clinics and the central office see the same stock figures.

Where AI fits next

The group has not built any of this yet, but its stock history makes each idea feasible. Forecasting could suggest each clinic's next order from its past consumption, for the manager to approve.

A model could flag batches likely to expire unused and suggest moving them to a clinic that uses more, and supplier invoices could be read automatically and matched to orders for staff to confirm.

Planning something similar?

Before you build clinic inventory software, it helps to answer four questions:

  1. Do you need batch and expiry on every item, or only on some categories?

  2. Who sets the prices between head office and clinics, and do clinics prepay?

  3. What should happen when a delivery does not match its order or invoice?

  4. Should each clinic see only its own stock, or the whole group's?

This group also runs the patient lead and events CRM we built for it. There is more on our web application and workflow automation services, a guide to predictive inventory optimization, and other healthcare builds to browse.

Common questions

What should clinic inventory management software track?

At minimum: each item's supplier, brand and storage location, its batch number and expiry date, a reorder level, and who used it. This group's system also tracks orders between its clinics, its central office and suppliers.

How does batch and expiry tracking work in practice?

Staff record the batch number and expiry date when stock arrives, and pick the batch when it goes out. An expiry report filtered by date then shows which batches to use first.

How does central ordering work for a group of clinics?

Each clinic orders from the central office at fixed prices. The office approves the order, fills it from its own stock or buys from a supplier, and ships it. The clinic validates the delivery before its own stock updates.

What happens when a delivery is wrong or damaged?

The clinic checks each delivery against the order and invoice. If something does not match, it raises a return through the central office, and the office can return faulty goods to the supplier.

Which tech stack suits clinic inventory software?

This group's first stage runs on Angular, Node.js and MongoDB as a web application, and the central ordering flow was designed on Angular and MongoDB.

More of our work.

Projects that used the same services or served the same industry.

See all our work

Free project estimate

Talk through a project like these.

Thirty minutes with a founder, not a salesperson. Bring the problem; leave knowing what we'd build first and what it would cost.

What you get back

  • An indicative budget range
  • A realistic timeline
  • What moves the cost up or down
  • A reply within 4 business hours
  • Answered by a founder
  • NDA on request, before you share details

Tell us what you need

A few lines is plenty. You get a number before any call.

Fields marked * are required.