Skip to main content
Beauty Spa Management — A made-to-order Odoo module for beauty parlours and spas: online appointment booking, therapist sched — 1/1Illustrative preview

A made-to-order Odoo module for beauty parlours and spas:

online appointment booking, therapist scheduling, service packages, and client treatment history — built, installed, and supported by ECOSIRE.

What is Beauty Spa Management?

A made-to-order Odoo module for beauty parlours and spas: online appointment booking, therapist scheduling, service packages, and client treatment history — built, installed, and supported by ECOSIRE. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $999.00 USD; request a quote for a scoped proposal.

Key Features

Custom `spa.appointment` model with a strict state machine (`draft`/`confirmed`/`in_progress`/`done`/`no_show`/`invoiced`) enforced by `write()` guards
Resource-aware availability engine: a `@api.depends` compute intersects therapist `resource.calendar`, room bookings, and equipment locks so only genuinely free slots are offered
`spa.service` catalogue with duration, pre/post buffer (cleanup) time, required room type, required equipment, and required staff skill
Therapist skill matrix linked to `hr.employee` — services filter available staff by qualification, not just by open calendar
Public OWL/QWeb online booking flow querying live availability over `JSON-RPC`, with optional preferred-therapist selection and deposit hold
Prepaid `spa.package` and `spa.membership` credits with automatic balance decrement on appointment completion and expiry handling
Automated reminder and confirmation emails via `mail.template` fired by `ir.cron` / automated actions (configurable lead time), with no-show follow-up
Drag-and-drop resource-planning gantt/calendar back-office view for reassigning therapists and rooms without double-booking
Native `sale.order` → `account.move` invoicing per appointment plus `stock.move` deduction of consumables and retail products used in treatment
Therapist commission computation on appointment and `pos.order` lines with a QWeb commission statement report
Per-client treatment records: colour/chemical formulas, patch-test dates, contraindications, allergies, and before/after notes with attachment support
Security via `ir.model.access.csv` plus record rules — therapists see only their own roster; managers see the whole floor; client health data is scoped
QWeb reports for daily takings, therapist utilisation, package/membership balances, and no-show rates
Packaged as a versioned installable addon (`__manifest__.py`) for Odoo 17.0/18.0/19.0, Community or Enterprise, with dependency declarations kept minimal

Built to order, done for you

No DIY setup — a working app, built, installed and supported by ECOSIRE.

  1. 1

    You order

    Start with a one-time build price. We scope it with you at kickoff.

  2. 2

    We build & install

    ECOSIRE builds, configures and installs it on your Odoo.

  3. 3

    Go live + support

    You go live in about one working week, with two weeks of go-live support. Defects in the code we deliver are fixed free of charge.

Technical Specifications

Odoo Compatibility
Odoo 17, Odoo 18, Odoo 19
Editions
Enterprise & Community
License
Licence confirmation required
Python Requirement
Python 3.10+
Database
PostgreSQL 12+

About this Product

Beauty parlours and spas live and die by the appointment book. Front-desk staff juggle walk-ins against phone bookings, double-book a therapist, lose track of who is qualified for which treatment, and have no reliable record of a client's allergies or last colour formula. Odoo out of the box gives you calendar, sale, and contacts, but none of them model a resource-constrained booking where a specific therapist, a specific room, and a specific piece of equipment must ALL be free for a 90-minute slot — and Enterprise Appointments treats staff as interchangeable calendars rather than as skilled resources with individual rosters, commission rates, and treatment qualifications. That gap is where the front desk falls back to paper and spreadsheets.

ECOSIRE builds a dedicated Beauty & Spa Management module that models the salon as it actually runs. We add custom models — spa.service (duration, buffer/cleanup time, required room type, required equipment, required staff skill), spa.appointment (state machine: draft → confirmed → in_progress → done → invoiced / no_show), spa.therapist (linked to hr.employee, with a skill matrix and a working-hours calendar), and spa.package/spa.membership for prepaid course-of-treatment credits. Availability is a @api.depends compute that intersects the therapist's resource.calendar, room bookings, and existing appointments, so the system can only ever offer a genuinely bookable slot. Each service line flows into sale.order and account.move for invoicing, into stock.move for the retail/consumable products used during treatment, and — where you run Enterprise — into hr for therapist commission on pos.order and appointment lines.

The customer-facing side is a QWeb/OWL online booking flow on the website: the client picks a service, sees only real open slots (queried live against the same availability engine over JSON-RPC), optionally requests a preferred therapist, pays or holds a deposit, and receives a confirmation plus automated mail.template reminders driven by scheduled automated actions / ir.cron. Back office gets a drag-and-drop resource planning view, a therapist-utilisation dashboard, per-client treatment records (formulas, patch-test dates, contraindications, before/after notes) with GDPR-aware record rules, and QWeb reports for daily takings, commission statements, and package-balance summaries. Access is governed by ir.model.access.csv plus record rules so a therapist sees only their own roster while a manager sees the whole floor. Everything ships as a proper installable addon with a versioned __manifest__.py targeting your Odoo 17.0, 18.0, or 19.0, Community or Enterprise.

Delivery is build-to-order. After a short scoping call we confirm the exact services, room/equipment constraints, deposit and cancellation policy, commission model, and any localisation, then send a fixed quotation and a UAT plan. We develop against a staging copy of your database, you sign off on staging, and we deploy to production with a rollback path and a post-go-live support window. Typical delivery is one working week from confirmed scope depending on complexity. Pricing starts from $999 (indicative, single-company base scope); multi-branch/multi-company rollout, payment-gateway and marketing-automation integrations, deeper localisation, and migrating an existing client/appointment history all increase the quoted scope. You receive the full source and git repository at handover — no lock-in.

What you get

  • Installable source code of your Beauty & Spa Management module, versioned in `__manifest__.py` for your exact Odoo edition (17.0/18.0/19.0, Community or Enterprise)
  • Installation and configuration on your environment — services, rooms, equipment, therapist rosters, deposit/cancellation policy, and email templates set up to match your operation
  • Technical documentation: data model (`spa.service`/`spa.appointment`/`spa.therapist`/`spa.package`), security matrix, and integration points
  • End-user guide plus a live training session for front-desk staff and managers
  • UAT on a staging copy of your database with a documented sign-off checklist and a production rollback plan
  • Post-go-live support window for defect fixes and configuration questions
  • Git repository handover with full commit history — you own the code, no lock-in
  • Online booking flow deployed and styled to your website, with a configuration guide for services and slot rules

Who this is for

Salon / spa owner-operator on Odoo

Runs one or several branches and already uses Odoo for sales and accounting. Needs bookings, therapist rosters, commissions, and takings all inside Odoo instead of a separate booking app that never reconciles with the ledger.

Front-desk / operations manager

Manages the daily floor and the appointment book. Needs a conflict-proof resource view, automated reminders to cut no-shows, and per-client treatment history at their fingertips during check-in.

Odoo functional consultant / partner

Implementing Odoo for a beauty or wellness client and needs a proven, well-structured spa module they can install, extend, and hand over — with clean source, security rules, and multi-version support — rather than building it from scratch.

Multi-branch spa group IT lead

Oversees an Odoo deployment across several locations and wants a single booking and treatment-records model with per-branch access control, membership credits that work across sites, and consolidated commission and utilisation reporting.

How Beauty Spa Management Compares

CriterionECOSIRECustom BuildCompetitorOdoo Native
Booking modelResource-aware slots: therapist skill + room + equipment must all be freeWhatever you specify, built from zeroUsually a single-calendar booking, staff treated as interchangeable`calendar`/Appointments book time, not skilled resources
Therapist rosters & commissionSkill matrix, working-hours calendar, and commission statements built inPossible but you fund the full buildRarely models per-therapist skills or commissionNo commission or skill concept for services
Treatment recordsFormulas, patch tests, contraindications with GDPR-aware record rulesBespoke, at bespoke costOften absent or a plain notes fieldOnly generic `contacts` notes
Fit to your workflowScoped to your services, policies, and branches before a line is writtenFully bespokeFixed feature set, adapt your process to the appGeneric ERP primitives only
Ownership & lock-inFull source + git repo handover, no lock-inYou own it, at full build costVendor-controlled, source often obfuscated/encryptedCore code, but no spa features
Version & edition supportDelivered for your 17.0/18.0/19.0, Community or EnterpriseWhatever you commissionVersion support varies; upgrades often paid re-buysShips with every Odoo, no spa scope
Cost & timelineFrom $999 indicative, fixed quote after scoping, one working weekHighest cost, longest timelineLow sticker price, hidden fit/customisation costIncluded, but unfit for a spa
Support after go-liveIncluded support window + optional maintenance/upgrade pathOnly if separately contractedTicket queue, limited customisation helpCommunity/your-partner support, no spa expertise

Frequently Asked Questions about Beauty Spa Management

Is this a ready-made app I can download and install today?

No — it is build-to-order. ECOSIRE builds the module to your confirmed scope, installs it on your environment, and supports it. There is no instant download; what you get is a productized service that ends with your own installable, source-included addon.

How long does delivery take?

Typical delivery is one working week from confirmed scope, depending on complexity such as the number of branches, integrations, and whether we migrate existing appointment history. We agree the timeline in writing with the fixed quotation after the scoping call.

How does pricing and scoping work?

Pricing starts from $999 as an indicative single-company base-scope figure. After a short scoping call we confirm services, room/equipment rules, commission model, integrations, and localisation, then send a fixed quotation. Drivers like multi-company rollout, extra integrations, deeper localisation, or migrating client/appointment data increase the quoted scope.

Which Odoo versions and editions do you support?

We target Odoo 17.0, 18.0, and 19.0, on both Community and Enterprise. Some capabilities differ by edition — for example commission tie-ins with Point of Sale or advanced Appointments features — and we confirm exactly what applies to your edition during scoping.

What about updates and ongoing support after go-live?

Every build includes a post-go-live support window for defect fixes and configuration questions. Beyond that, we offer optional maintenance and version-upgrade support (for example moving the module from 18.0 to 19.0). Because you receive the full git repository, you are never locked to us for future changes.

Can it handle the online booking side on our website?

Yes. We deliver a public OWL/QWeb booking flow on your Odoo website that queries the same live availability engine over JSON-RPC, so customers only ever see genuinely open slots, can request a preferred therapist, and pay or leave a deposit — with automated confirmation and reminder emails.

Will it double-book therapists or rooms?

No. Availability is computed by intersecting the therapist's working-hours calendar, room bookings, equipment locks, and existing appointments, including service buffer/cleanup time. A slot is only offered when every required resource is free, and the appointment state machine prevents conflicting confirmations.

Request a quote

Beauty Spa Management

A made-to-order Odoo module for beauty parlours and spas: online appointment booking, therapist scheduling, service packages, and client treatment history — built, installed, and supported by ECOSIRE.

  • Custom `spa.appointment` model with a strict state machine (`draft`/`confirmed`/`in_progress`/`done`/`no_show`/`invoiced`) enforced by `write()` guards
  • Resource-aware availability engine: a `@api.depends` compute intersects therapist `resource.calendar`, room bookings, and equipment locks so only genuinely free slots are offered
  • `spa.service` catalogue with duration, pre/post buffer (cleanup) time, required room type, required equipment, and required staff skill
  • Therapist skill matrix linked to `hr.employee` — services filter available staff by qualification, not just by open calendar

Request a Quotation

Tell us about your Beauty Spa Management requirements and we'll send pricing, licensing options and a tailored proposal — usually within one business day.

No payment now. This sends a quote request to our team — we'll follow up by email with pricing and next steps.