A build-to-order Odoo optical retail platform that ties patient prescriptions, frame and lens catalogs, lens configuration and lab job orders into a single POS-driven workflow. ECOSIRE scopes, builds, installs and supports it on your Odoo 17/18/19. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $399.00 USD; request a quote for a scoped proposal.

A build-to-order Odoo optical retail platform that ties patient prescriptions, frame and lens catalogs, lens configuration and lab job orders into a single POS-driven workflow. ECOSIRE scopes, builds, installs and supports it on your Odoo 17/18/19.
Sem pagamento agora. Isto envia um pedido de orçamento à nossa equipe — responderemos por e-mail com preços e próximos passos.
Chamadas de API otimizadas com limitação de taxa, gerenciamento de filas e processamento em lote
Conecte e gerencie múltiplas lojas a partir de uma única instância Odoo
Pontuação de risco inteligente, previsão de demanda e decisões automatizadas
Mais de 50 eventos de webhook para sincronização instantânea
Tudo o que você precisa para gerenciar sua integração Optical Store & Lab Management (ERP + POS) com Odoo
Optical retail is a manufacturing business hiding inside a shop. Every sale starts with a clinical prescription, turns into a made-to-order lens ground to a specific sphere, cylinder and axis, gets edged and fitted into a chosen frame, and often has to be split between a customer co-pay and an insurance claim. Odoo core has the raw ingredients — product.template with variant attributes, pos.order, stock.picking, mrp.production, account.move — but nothing that understands an Rx, a lab job, or a coating add-on. Opticians end up tracking prescriptions in spreadsheets, keying lens parameters into order notes, and reconciling insurance by hand. That is where Odoo native runs out of road.
Patient prescription (`optical.prescription`) model linked to `res.partner`, capturing OD/OS sphere, cylinder, axis, add, prism and PD with dated Rx history
`@api.constrains` validation rejecting out-of-range powers or invalid axis (0–180) at entry, and `@api.depends` computes for distance vs reading breakdown
Frame catalog using `product.attribute`/variants for material, shape, rim type, color and eye/bridge/temple sizing
Lens catalog with configurable options — index (1.5/1.6/1.67/1.74), anti-reflective, blue-light, hard coat, tint and photochromic — priced per variant
POS extension (OWL) to attach the active patient Rx to an order line and configure frame + lens + coatings with combined pricing
Automatic `optical.lab.order` job creation on order confirmation via an automated action, with technician assignment and computed target date
ECOSIRE builds a dedicated optical layer on top of your Odoo. We add a patient prescription model (an optical.prescription record linked to res.partner) that captures OD/OS values — sphere, cylinder, axis, add, prism, PD — with @api.constrains validation so an impossible axis or out-of-range power is caught at entry, and computed @api.depends fields that derive the reading vs distance breakdown. Frames and lenses live in a properly attributed catalog: frame material, shape, color and size as product.attribute variants, and lens options (index, coatings like anti-reflective or blue-light, tint, photochromic) modeled as configurable line options so a single lens SKU generates the right variant and price at point of sale.
The POS is where it comes together. We extend the Odoo POS (OWL frontend + pos.order backend) so a cashier picks the patient, pulls the active Rx onto the order line, configures the lens, and the system prices frame + lens + coatings together. When the order confirms, an optical.lab.order job is created automatically via an automated action, moving through a status pipeline — queued, surfacing/edging, fitting/mounting, QC, ready for collection — with the lab technician assigned and the target date computed. Insurance is handled as a split on the order: an insurer/scheme portion routed to a claim journal and the patient co-pay taken at the till, with a QWeb spectacle-order/collection ticket and the clinical Rx printed for the lab bench. All of it is guarded by ir.model.access.csv plus record rules so front-desk, optometrist and lab roles see only what they should, and the same data is reachable over the XML-RPC/JSON-RPC API if you want to feed a website booking form or an external edger.
Because this is build-to-order, nothing ships blind. We start with a scoping call to map your exact Rx fields, lens catalog, lab stages and insurance schemes, then build against your Odoo edition and version (17.0, 18.0 or 19.0; we flag anything that needs Enterprise such as full MRP or advanced accounting versus what runs on Community). You get the work on a staging instance for UAT first, a documented __manifest__.py-defined module with migration-safe data, and a defined go-live with rollback. Typical delivery is 2–4 weeks from confirmed scope, and the module is yours — handed over as a git repository you own.
Runs a single practice combining eye tests and dispensing. Needs prescriptions, dispensing and lab jobs in one place instead of paper Rx cards and spreadsheet order tracking, without paying for enterprise optical suites.
Operates several stores that share a central lab. Needs consistent Rx capture and a single lab queue across branches, per-store POS and stock, and role separation so head office sees throughput and margins.
Manages surfacing, edging, fitting and QC. Needs a job pipeline with clear stages, technician assignment, target dates and printable bench tickets so nothing stalls between order and collection.
Sells against vision schemes and co-pays. Needs the till to split insurer and patient portions cleanly, route claims to the right journal and reconcile them without manual re-keying.
Compre a licença em ecosire.com e baixe o ZIP do módulo Optical Store & Lab Management (ERP + POS) no painel da sua conta.
Extraia o ZIP em sua pasta de complementos personalizados do Odoo no servidor (ou faça upload via Aplicativos > Instalar do arquivo em Odoo.sh/runbot).
Ative o modo de desenvolvedor, abra Aplicativos, clique em Atualizar lista de aplicativos, procure por Optical Store & Lab Management (ERP + POS) e pressione Instalar.
Abra o novo menu, cole sua chave de licença ECOSIRE, conecte quaisquer credenciais externas (Shopify, Amazon, Stripe, etc.) e salve.
Execute o teste de conexão integrado, sincronize seus primeiros 10 registros e agende o cron recorrente. Entre em contato com o suporte se algo falhar.
| Critério | ECOSIRE | Construção personalizada | Concorrente | Odoo nativo |
|---|---|---|---|---|
| Optical-specific fit | Purpose-built for Rx, lenses, lab and optical POS | Whatever you specify and can build | Generic optical features, rarely a full fit | |
| Prescription (Rx) handling | Validated OD/OS model with history and PD/prism | Build from scratch, DIY validation | Basic Rx fields if present | |
| Lens configuration | Sphere/cylinder/axis + coatings priced per variant | Design and build the config logic yourself | Limited preset options | |
| Lab job workflow | Auto-created jobs with staged pipeline and QC | Model and wire the pipeline yourself | Often no lab tracking | |
| Insurance / co-pay split | Scheme split at POS routed to claim journal | Build the split and journals yourself | Rarely supported | |
| Version & edition support | Built for your 17/18/19, Community or Enterprise | Depends on your team | Version support varies, upgrades lag | |
| Ownership & lock-in | Full git repo handover, you own it | You own it (if delivered) | Vendor-licensed, limited source access | |
| Support & delivery | Scoped build, UAT, training, support window | Your own time and risk | Generic vendor support tiers |
No. This is a build-to-order module. ECOSIRE scopes it to your Rx fields, lens catalog, lab stages and insurance schemes, then builds, installs and supports it on your Odoo. There is no instant self-service download.
Typically 2–4 weeks from confirmed scope. After a short scoping call we agree the exact fields, workflows and integrations; that signed-off scope starts the clock. Larger multi-branch or heavy-integration builds can run longer and we tell you upfront.
We build for Odoo 17.0, 18.0 and 19.0, on either Community or Enterprise. During scoping we flag any capability that depends on Enterprise (for example full MRP or advanced accounting) versus what runs on Community, so there are no surprises.
Every build includes a post-go-live support window for defect fixes and adjustments. Because you receive the full git repository, you can maintain it yourself or retain ECOSIRE for version upgrades (e.g. moving from 18.0 to 19.0) and enhancements under a separate agreement.
Yes. The optical models are exposed over Odoo's XML-RPC/JSON-RPC API, so a website Rx-upload or appointment form, an external edger, or another system can read and write orders and prescriptions. We scope the specific integrations you need before building.
You own it. We hand over the complete module source as a git repository with commit history. There is no runtime license lock-in beyond your own Odoo licensing, and you are free to maintain or extend it with any developer.
Access is enforced with Odoo's `ir.model.access.csv` and record rules so front-desk, optometry and lab roles see only what they should. Clinical Rx and insurance splits sit inside your own Odoo database under your existing hosting and security controls — nothing is sent to a third-party service.
A build-to-order Odoo optical retail platform that ties patient prescriptions, frame and lens catalogs, lens configuration and lab job orders into a single POS-driven workflow. ECOSIRE scopes, builds, installs and supports it on your Odoo 17/18/19.