Optician and optical shop software: exams, prescriptions, frame orders
An optical shop is a clinic + stock + a workshop. The prescription, frames, lenses and pickup get lost between a notebook and the lab. Optician software: eye-test booking, a client card, order status and an SMS when the glasses are ready.
You want optician software or optical-shop software, not a sales-funnel CRM. The client books an eye test, picks frames, waits on lab lenses and collects the glasses. If status lives in a notebook, they call three times. If the prescription goes missing, you measure again or you send the wrong powers to the lab. The system joins the optometrist diary, frame stock and the lens order — one panel, not three notebooks and a Messenger group.
An optical shop is a clinic, a store and a workshop. Specialist time is scarce (an adult exam is often about 25 minutes; a child or a contact-lens fit is closer to 50). Stock sits on the floor and in the back. A job leaves the building and comes back in 1–10 days, depending on index, progressives and coatings. That is closer to clinic booking plus wholesale stock than to “another CRM”. Treat the shop like a beauty salon with only a calendar and you lose half the revenue: glasses nobody knows are ready.
What hurts an optical shop without a system
Reception takes a call during an exam. A client writes on Instagram “anything tomorrow after 5?”. Frames that “were definitely on the tray” went to repair last week. The lab sent a pair back, but the SMS went only to people who happened to be nearby. The second shop in the next district treats the same Mrs Kowalska as a new client, because the paper card does not travel.
- The phone during an exam + Messenger as a calendar = doubles and no-shows on a 30–50 minute slot.
- A paper prescription; correction history in a drawer — nobody sees what they wore two years ago.
- Frame stock (“on the floor / ordered / in repair / on the client”) drifts from reality.
- The lab: which pairs are in transit, which need quality check, which are ready.
- No “glasses ready” SMS — people do not come back; pairs sit in a drawer for weeks.
- A deposit in a notebook, the rest “on pickup”, a claim with no job number.
- A second shop: one client, two notebooks, pickup at the other site “via a call to a colleague”.
- Contact lenses: who was due a refill this month lives in the seller’s head.
This is not a vague “digitalisation” problem. It is a concrete cost: an empty optometrist hour, a pair nobody collected, a frame sold twice, a repeat measurement because the PD slip vanished. Optician software does not treat a refractive error. It stops the path from booking to handover from leaking money and trust.
What the real shop flow looks like
The client is not “buying glasses”. They walk a set of stages that a bad system treats as islands. First a booked exam, or they arrive with an ophthalmologist prescription. Then PD (pupillary distance — distance and near often differ by about 2 mm), frame choice, lens decision (index, coatings, photochromic, progressive). Then a deposit and a lab order. Then waiting. Then a check of powers, axis, prism and PD when the pair returns. Finally a fitting on the face and handover. Any of those steps can stall — and the client will call if they cannot see status.
- Booking: visit type (first, review, contacts, frames only), specialist, slot length.
- The visit: a card, the correction typed once, not “on the Rx and again on a till slip”.
- Selection: a frame SKU, a reserved unit, a possible colour / size swap.
- The job: lenses, lab, the date you promised, a deposit, the rest on pickup.
- Lab return: a check, status “ready”, an SMS with shop hours.
- Handover: fitting, a claim that keeps the job number, history on the card.
Chains often tell clients 1–3 days for single-vision and longer for progressives or unusual powers. Your shop may use another lab and another buffer. The system does not promise on the lab’s behalf. It watches the date you typed and escalates when the pair is late. The client gets a status, not “we will call when they are in”.
What optical-shop software should do
The product has three engines: time (the calendar), the card (correction and consents) and the job (frame + lenses + lab). The rest — an online frame shop, a contact-lens subscription, a second site — sits on that model. Start with “a pretty CRM” and you will own a funnel and no PD.
- Online eye-test booking: optometrist / doctor, visit type, a longer slot for a child or contacts.
- A client card: correction, PD, ADD, frame history, material notes, GDPR consents, who may collect.
- A glasses order: frame SKU, lenses (index, coatings, progressive), lab, due date, deposit.
- Job status: accepted, at lab, to check, ready, collected, claim.
- SMS / email when ready, with hours and the shop address — no manual typing from a phone book.
- Frame and contact-lens stock, a minimum alert, a unit reserved to a client.
- Multi-site: one card, several locations, collect at another shop, shared stock on chosen SKUs.
- Invoices / KSeF for company safety glasses and staff pairs.
Reception does not need the full correction if you set roles that way. The frame seller sees a metal allergy and the last size. The optometrist sees previous powers. The client on a phone sees the exam time and “glasses ready”, not a clinical note. That is not “transparency for everyone”. It is access control that both common sense and GDPR require.
The prescription on the card — a working record, not a medical device
A glasses prescription is a record of powers (sphere, cylinder, axis), near add, sometimes prism, and PD. The shop must keep that record, compare it with the last pair and send it to the lab without retyping it three times. Optician software holds those fields on the card and on the job. It does not replace an autorefractor, a phoropter or hospital ophthalmology software. It does not “diagnose”. It is not a medical device. If you want a reading pulled from a named device — we do that only with an API and enough volume to justify it, not “because it looks good on a brochure”.
Frame stock that does not lie on Saturday
A frame on the tray is there or it is not. A system that says “qty 1” while the tray is empty teaches the team to trust the drawer, not the panel. Each unit (or SKU with a count) has a status: on the floor, reserved to a client, on order, in repair, off display. During a fitting you reserve a specific piece for X hours. If the client does not return with a deposit, it goes back on the tray. With a second shop you decide which models are local and which can move — with a history, not a WhatsApp “send that black cat. 3”.
Contact lenses are a different rhythm: batches, expiry dates, replacement cycle (daily / two-week / monthly), a refill on the card. A subscription — a reminder and a payment before the stock runs out — is a common second phase for regulars. We do not build it in sprint one if the exam diary is what hurts. We add it when the card and the job already live.
The lab, status and a client who does not call a third time
The most expensive phone call in the shop is “are my glasses ready?”. If status lives in a notebook, reception leaves a client on the floor to hunt a slip. If status lives in the panel, the client gets an SMS after the pair passes the check. You see which jobs blew the promised date before someone leaves a one-star review. EDI with a named lab is possible when the lab has an interface and you have the volume. At the start, a manual status change and an attachment (order PDF, a frame photo) is enough. We do not promise “every brand’s lab automated in the calendar price”.
- One job number from deposit to claim.
- Promised date vs actual return — two fields, not one “by eye” cell.
- The post-lab check is ticked before the “ready” SMS goes out.
- A claim inherits the Rx and SKU; it does not start life as a new slip.
Optical SaaS or your own optician system
There are trade stock-and-till packages. Some are mature at the register and on inventory. Some are heavy, old, or have no decent eye-test booking on the public site — and that is what the patient types: “optician [city] book a test”. Custom / your own panel when you want 24/7 booking for SEO, status on the client’s phone, two shops, a frame shop tied to the exam diary, or a white-label under your brand. Keep the package for the till and stock if it already works and the team knows it. We add the missing piece; we do not throw everything out on Monday. The trade-off: package or custom.
GDPR, roles and what reception does not need to see
Correction and exam history are health data. Consent, purpose, retention, an EU server and roles are not “a legal add-on at the end of the contract”. Reception can see a name, a phone, a slot and order status. Full powers — your call. The client on a public status page sees “ready”, not the Rx. Paper copies you photograph “just in case” on a private phone are worse than no system. More on the approach: GDPR in applications.
The till, the deposit, companies — and what the system does not pretend to be
The order and the deposit live in the panel. The fiscal receipt stays on the till you already have. We do not replace a fiscal till or a full accounts suite. For company sales (safety glasses, staff pairs) you issue an invoice and — when it applies — go through KSeF. A deposit locks the frame and the job. Without payment the pair should not go to the lab “on a verbal”, unless you set that exception for a regular yourself.
Words clients type (and words you type)
The patient: “book an eye test online”, “optician nearby”, “how long for glasses”, “contact lenses on a plan”. You: optician software, optical shop system, client card, lens order, glasses status. The site with a calendar catches the first set; the panel catches the second. A Google Business Profile will not replace order status — a guest from Maps will still call if they cannot book themselves and they get no SMS when the pair is back.
An MVP the shop will feel in month one
We do not start with 4,000 SKUs and EDI to three labs. We start with the exam diary, a card with correction and PD, a job with status and a “ready” SMS. That cuts no-shows on the specialist slot and “are they in yet?” calls. Frame stock, a lens subscription and a second shop — phase two, once the team trusts the panel. Otherwise you will roll out stock that nobody clicks because the calendar is still on paper.
- Visit types and slot lengths (adult, child, contacts, selection only).
- The card + Rx fields + consents. Roles: reception / specialist / owner.
- The job: frame, lenses, lab, deposit, status, SMS.
- After two weeks: which statuses does the team skip? We simplify; we do not add fields.
- Then stock and, if needed, a second pickup point.
How long an exam takes — and why a child does not fit an adult slot
Polish optical chains publish the split: about 25 minutes for an adult, about 50 minutes for a child or a contact-lens fitting. That is not marketing. A child will not sit in the same regime as someone who came for a power check. A contact-lens fit is a measurement, a handling lesson and often a review visit. Optician software with one type “exam 30 min” will lie on the calendar the same way a generic SaaS does. Separate visit types, separate lengths, a buffer after a child (wipe the room, reset the chair) belong in optical-shop software, not “in reception’s head”.
- Adult: first visit vs review — a different history, often the same slot length.
- Child: a longer slot, sometimes a parent in the room, a different consent.
- Contacts: a longer slot + a review already in the calendar, not “call us in a week”.
- Frames only: a short slot without the optometrist, so their afternoon is not eaten.
A no-show on a 45–50 minute slot hurts more than on 25. A 24h and 2h SMS and a deposit on a child’s first exam are the same mechanic as in a clinic, only the product at the end is a pair of glasses, not a drug script. The system does not treat. It stops the optometrist standing over an empty chair while three people wait in Messenger for “anything after 5”.
Contact lenses: a different rhythm than a lab pair
A glasses pair is a job with a start and an end: lab, SMS, pickup. Contact lenses are a cycle: batch, expiry, replacement mode (daily / 14-day / monthly), a refill on the card, a reminder before the client buys from an online pharmacy. Separate tools (a lens finder in one window, a card in another, the till in a third) build silos — something optical-software vendors themselves describe. Your own optician system keeps the Rx, the last SKU and the next-delivery date on one card. A subscription (payment + shipping or shop pickup) is phase two, once the card already lives.
Batch expiry is not a stock ornament. An expired pair on the tray is waste and a claim risk. A minimum alert and an expiry in the panel are cheaper than a “Sunday after close” inventory. With a second shop you decide which powers are local and which come from a hub — with a transfer history, not a WhatsApp “send -2.75”.
A claim and a remake: the same job, not a new slip
When a pair comes back from the lab and powers, axis, prism or PD do not match the Rx, it should not go to the client with a “ready” SMS. Status “to check” exists so someone measures and only then releases pickup. If after handover the client returns with pain or a progressive that does not sit, the claim inherits the job number, the Rx and the frame SKU. A new slip “remake Kowalska” loses whether the lab already remade once and who promised the date. Optical-shop software keeps history on one number: accepted → lab → check → collected → claim → lab again → pickup.
Fitting the frame at handover (temples, pantoscopic tilt, fitting height on a progressive) stays a floor task. The system ticks that handover happened and who issued the pair. In a dispute two months later you do not guess from memory. We are still not measuring hardware or a hospital record — we keep the operational trail the shop already runs, only today on the back of the prescription.
Describe whether the exam diary, frame stock or lab status hurts. Optician-software MVP: visits + card + “glasses ready”. Stock and a second shop — phase two. We do not sell a “hospital ophthalmology system” under a high-street shop label.
Frequently asked questions
- Can the client book an eye test themselves?
- Yes, for selected types and lengths. Frame choice and pickup can stay walk-in or on a “ready” SMS. A child’s first visit sometimes stays a phone call after a short question about age and goal.
- Does this replace the fiscal till and measuring equipment?
- No. The order and deposit live in the panel; the receipt stays on your till. The autorefractor, phoropter and other devices stay where they are. We are not a medical device and we do not pretend to be ophthalmology-clinic software.
- Contact-lens subscriptions?
- Yes — a cycle, a reminder, payment, batch expiry. A common add-on for regulars, usually after the card and calendar already run.
- Prescription data and GDPR?
- Health data. Roles, consent, retention, an EU server. Reception need not see the full Rx if you set it that way. The client on the status page sees “ready”, not powers.
- How long to go live?
- Calendar, card and order status — weeks. Full SKU stock and lab EDI after we know the wholesaler and the lab, and after the team already clicks statuses.
- Can they collect glasses at the second shop?
- Yes, if there is one card and one job from day one, not two notebooks. Pickup at another site is a location change on the job plus an SMS with the new address, not “call Ania”.
- What about company and safety glasses?
- A separate path: company details, pair count, invoice, KSeF when it applies. Status is still the same: job, lab, pickup. We do not mix that with a private staff exam without consent.
- Will the client see the prescription on their phone?
- By default they do not have to. They see the slot, the status and pickup hours. Sharing the parameters is your decision and a consent — not default “transparency” on a public link.
Describe your project