Magento for medical supplies: pack sizes, lot numbers and who may buy what
I build Magento for medical supplies stores, and most of the hard work sits behind the product page. Gloves sell by the box and by the case, at two different prices. Some devices carry an “Rx only” label and cannot go to just anyone. When a manufacturer recalls a lot, you need the list of customers who received it today, not after a week of digging through spreadsheets. Below is how I handle each of these, including the parts Magento cannot do on its own.
- Each, box and case pack sizes on one product page, each with its own price and stock
- Lot and expiry saved on every shipment, so a recall becomes a search
- Rx-only devices hidden from accounts that have not been verified
Four problems medical supply stores hit early
A general store can ignore all four. A medical supply store runs into them as soon as the first clinic places an order, so I sort them out while the catalog is still on paper.
-
Box / case One product, three ways to buy
Exam gloves come as a box of 100 and as a case of 10 boxes. A clinic buys the case, a home-care customer buys one box. Magento has no unit-of-measure setting, so each pack size is its own SKU with its own price and stock, and the page has to make the difference obvious so nobody orders ten cases by mistake.
-
UDI Devices carry a lot and an expiry
Under the FDA’s Unique Device Identification rule, many device labels carry a device identifier plus production data such as the lot number and expiry date. Magento Open Source counts stock per SKU and has no lot or expiry field, so that data has to come from your warehouse system or an extension and be saved against the shipment.
-
Rx only Not every buyer can buy everything
Some devices are labelled for sale by or on the order of a licensed practitioner. Selling them online means collecting a prescription or a professional license and checking it before the order ships. Which products belong on that list is a question for your regulatory advisor. The store’s job is to enforce the list.
-
Two buyers Clinics and patients in one store
A clinic wants contract prices, a purchase order number and 30 day terms. A patient at home wants to pay by card and get a plain, discreet parcel. Both fit in one Magento store through customer groups, but what each group sees and how each group pays has to be decided before launch, not patched in later.
Six parts of a medical supply build
Here is the setup I would propose, part by part. Where a part needs an extension or custom code, I name it, because that is where most of the budget goes.
-
Pack sizes and units of measure
I usually set up each pack size (each, box, case) as its own simple product and show them together as a grouped product, so the buyer sees all three prices in one table and enters a quantity per row. Stock stays right because every SKU counts its own units. If your ERP already treats a case as ten boxes, I handle that in the import instead of asking Magento to do the maths at checkout.
-
Sizes, sides and materials
Gloves come in XS to XL and in nitrile, latex or vinyl. Knee braces come left or right. Compression stockings have a size and a pressure class. These become configurable products, and the attributes behind them turn into layered navigation filters, so a clinic can narrow the list to “nitrile, powder free, size M” in two clicks. I agree the attribute list with you before the import, because changing it afterwards means touching every product.
-
UDI, lot and expiry on every shipment
The device identifier is fixed per product, so it goes on the product as an attribute. Lot and expiry change from carton to carton, so they belong on the shipment. Magento Open Source has no lot tracking, which leaves two routes: pull the lot data from your warehouse system when it confirms the shipment, or add an extension that records it at picking. Both end with the lot printed on the packing slip and visible in the admin order view.
-
Rx-only devices and license checks
Products that need a prescription or a professional buyer get a flag attribute. New accounts start in a standard customer group. A small module lets the buyer upload a prescription or enter a license number, your staff check it, and the account moves to a verified group. Flagged products stay hidden or unbuyable for everyone else. Magento has no approval step like this built in, so I scope it as custom work.
-
Clinic accounts, contract prices and terms
Clinics and care homes go into their own customer groups, with tier prices or catalog price rules for their contract rates. Magento Open Source ships with a Purchase Order payment method, which is how many facilities want to pay. Limiting it to approved accounts takes a small plugin. Adobe Commerce adds company accounts with several buyers, shared catalogs, requisition lists and approval rules, which earns its cost once you sell to groups of clinics.
-
Recalls and lot lookups
When a manufacturer recalls certain lots, the first question is always who received them. Once lot numbers sit on shipments, I add an admin grid where you type a lot and get every order, customer and ship date that included it, ready to export for your notice letters. Without that data the answer lives in paper files, which is why I set up lot capture before launch and not after the first recall.
Your quote
Get a fixed quote for your project
Send your store URL and describe what you want to change. We can review the requirements and agree a written scope, quote and timeline before work starts.
- Free first call
- Written scope, price and timeline
- You approve every change
Five steps from audit to compliant, billing-integrated store
Audit → plan → build → deploy → stabilise. Tuned for medical’s regulatory cadence: every cutover includes an EDI 856 sandbox test, a FDA mock-recall drill, and a HIPAA pen-test on the staging mirror. Optional ongoing retainer covers quarterly mock audits + payer-matrix updates.
-
01
Audit
SKU inventory + HCPCS coverage gap report, payer mix (% Medicare, % Medicaid, % commercial, % cash), current DME billing software (Brightree / CareCloud / NikoHealth / Bonafide / TIMS / spreadsheet), distributor relationships (McKesson / Cardinal / Medline contracts), HIPAA + 21 CFR Part 820 posture, prior-auth volume + denial rate. 1 week, written gap report.
Baseline + gaps -
02
Plan
Catalog architecture (HCPCS-keyed taxonomy, configurable SKUs for size/flange/fit variants), HIPAA + 21 CFR Part 820 scope (BAA partners, encryption boundaries, audit-log retention, training plan), DSCSA serialization plan (lot + UDI per SKU per shipment), distributor EDI sequencing (which one first by GMV), prior-auth payer matrix. Written spec + Gantt.
Locked scope -
03
Build
Catalog import with HCPCS mapping, 1 distributor EDI (850/855/856/810), DME billing connector to your existing system, prior-auth checkout block, recall workflow, B2B + B2C customer-group setup, Hyvä storefront. 6-14 weeks depending on scope. Test fixtures for every payer path. Sandbox EDI testing with the distributor before production cutover.
Build + UAT -
04
Deploy
Blue-green cutover with EDI 856 test order through the distributor sandbox first, FDA mock-recall drill on a synthetic lot, HIPAA pen-test on the staging mirror, prior-auth flow tested on 3 payer paths (Medicare DME MAC, BCBS, UHC). DNS / TTL prep. War room for the first 48 hours. Audit log baseline captured.
Live + verified -
05
Stabilise
Monthly DSCSA lot-level reconciliation, quarterly mock HIPAA + 21 CFR Part 820 audit, payer reimbursement reporting (denial rate, days-to-pay, average reimbursement per HCPCS), recall-drill rehearsal, EDI exception monitoring. Optional ongoing retainer ($2k to $6k/mo) for compliance ops + payer-matrix updates as carrier rules change.
Optimised + iterating
Free extensions that fit a medical supplies store
Open source under MIT. Hyvä and Luma, Magento 2.4.4 to 2.4.9.
-
Lets buyers attach files to an order, such as a PO or artwork.Order File Attachments for Magento 2
Free -
Downloadable files on the product page: manuals, data sheets, certificates.Product Attachments for Magento 2
Free -
Low stock warnings and back in stock emails.Low Stock & Back-in-Stock Alerts for Magento 2
Free -
Extra options on a product, such as size, engraving or a custom text.Custom Product Options for Magento 2 (Hyva + Luma)
Free
What clients say about working with me
Public reviews on Upwork. Same person, same rate card, same playbook for every merchant.
Magento work and feedback View Upwork profile
-
Sports footwear and hockey shop, Netherlands -
Photo printing supplies wholesaler, Netherlands -
Educational toys and books shop
-
Kishan has done an excellent job in a timely manner. He is very knowledgeable, has a very positive attitude, easy to communicate.
Z. K.Magento 2 client -
He is technically strong, approaches problems thoughtfully, and focuses on stable, long-term solutions.
E. H.Magento 2 client -
Kishan was a pleasure to work with! He is highly skilled, professional, and delivered outstanding results on time.
M.Magento 2 client
- Working with medical supply stores in
- United States
- United Kingdom
- Canada
- Australia
- Ireland
- New Zealand
- South Africa
- India
Twelve questions medical-supplies ecom leaders actually ask
Book a free 30-min medical-supplies Magento consultation
Tell me your SKU count, payer mix, current DME billing system, and distributor relationships. I’ll send a written platform-fit recommendation within 24 hours and include a 30-min calendar link if a call would help. No upsell.
Message me on WhatsApp
No form to fill. Send me a quick message. I reply during 10 AM to 7 PM IST, Monday to Saturday.
Helpful to mention
- Current platform
- Store URL
- Annual GMV (USD)
- Primary category
- Compliance focus
- Main pain / why you’re looking at Magento
These are already in the message for you. Just add your answers.
Message me on WhatsAppOr save my number: +91 84012 70422