Health & Wellness

Chemovar: Regulated Medicine Supply, End to End

Where Science and Nature Meet

IndustryMedicinal Cannabis
LocationAustralia
ServicesRegulated CommerceCompliance ReportingLaravelMulti-Tenant Access ControlLogistics Integration
Preview of Chemovar: Regulated Medicine Supply, End to End

4

Aromatic profiles classified

84

Single-purpose API actions

3

Audiences on one platform

Our role

Commerce is the easy half of this problem. The hard half is that every unit moved is a scheduled medicine, so the audit trail is not a feature bolted on afterwards: it is the transaction. We contributed to a platform where placing an order, dispatching a batch and reporting to the regulator are the same event observed three ways.

A regulated medicine platform answers to three parties who must never see the same screen. An administrator runs inventory, pricing and compliance. A dispensing pharmacy, verified by its AHPRA registration and licence, orders against a product list curated specifically for it. A patient sits behind that pharmacy, described by the minimum the system needs and nothing more. The architecture makes those boundaries structural rather than procedural: distinct authentication scopes, role middleware, cross-user access prevention, and independent maintenance windows so the pharmacy channel can be taken down for migration while the patient channel stays live. Underneath runs a full commerce stack that happens to be operating under the Office of Drug Control. Every inventory record carries a batch number and an import permit number. Pricing resolves through quantity tiers with coupon exclusions applied per product. Order states are gated by explicit eligibility rules rather than trusted to the interface, so a completed order cannot be cancelled and an in-flight one cannot be silently repriced. When an order completes, the monthly ODC report is written from it automatically, capturing quantity dispensed and stock on hand at that moment, because reconstructing that figure later is exactly the thing a regulator will not accept.

The Constraint That Shapes Everything

  • Three Audiences the Regulator Requires You to Separate

    Administrators, AHPRA-registered pharmacies and patients each need a different surface, different data and different permissions. Passport scopes, role middleware and cross-user access prevention enforce that at the request boundary rather than in the UI.

  • Traditional Labels Describe Lineage, Not Chemistry

    Inherited category names tell you where a plant came from rather than what is in it. A proprietary aromatic classification into floral, fruit, fuel and earth profiles gives the whole range one comparable axis, recorded against the patient it was matched to.

  • Compliance Cannot Be Reconstructed After the Fact

    Monthly reporting to the Office of Drug Control needs quantity dispensed and stock on hand as they stood at the point of sale. Derive that figure from a later stock count and the numbers drift. It has to be captured as the order completes.

  • Not Every Pharmacy May Order Every Product

    Availability is per pharmacy, not global. The catalogue a dispensing partner sees is a curated allowlist, maintained by the administrator and pruned automatically when a product falls out of supply.

How We Built It

  • Batch and Permit Tracked Through the Chain

    Inventory is recorded against a batch number and an import permit number, so a dispensed unit resolves back to the consignment that brought it into the country. Traceability is a property of the schema, not a report someone runs.

  • Order States With Enforced Eligibility

    Processing, on hold, completed and cancelled, each with explicit rules governing whether an order can still take payment, be amended or be cancelled. The state machine lives in the domain layer, where the interface cannot route around it.

  • Regulatory Reporting as a Side Effect of Fulfilment

    Order completion writes the monthly ODC record from the order items themselves, idempotently, capturing sold quantity and available stock at that instant. The compliance export is a query over settled facts rather than a monthly reconstruction exercise.

  • Tiered Pricing With Product-Level Coupon Exclusions

    Price resolves through quantity bands per product, with promotional codes able to exclude specific lines. Subtotals are computed server side from the tier that actually applies, never from a figure the client supplied.

  • Logistics and Payments Wired to the Lifecycle

    Queued jobs create shipments and reconcile courier status, with inbound tracking webhooks updating orders as they move. Card and bank transfer settle through the gateway, and invoices render to PDF against the same order record.

  • An Action-Per-Endpoint Backend

    Eighty-four single-purpose action classes on Laravel, each owning one operation with its own authorisation and validation. ULID identifiers throughout, Redis-backed queues, and an activity log recording every order, payment and shipment transition.

What It Delivers

  • An Audit Trail That Stands Up

    Batch, permit, dispensed quantity and stock position captured at the moment each order completes, exportable on demand for monthly regulatory submission.

  • A Dispensing Channel Partners Can Self-Serve

    Verified pharmacies manage their own profile, product availability, ordering, payment, invoices and shipment tracking without an administrator in the loop.

  • Operational Visibility for the Sponsor

    Order, pharmacy and compliance analytics with charted breakdowns, plus historical order migration so reporting spans the period before the platform existed.

  • Controlled Downtime, One Channel at a Time

    Maintenance mode is scoped per audience, so the pharmacy channel can be paused for release work while the patient channel continues serving.

Let's build what's next

Your next product starts with a conversation.

Share your idea, explore what is possible, and get a straight answer on scope, cost and timeline. No pitch deck required.

Start a Project