Skip to main content
Salon & Spa POS / Appointments for ERPNext — A build-to-order ERPNext solution that unifies online and in-store appointment b — 1/1Illustrative preview

A build-to-order ERPNext solution that unifies online and in-store appointment booking,

stylist and therapist scheduling, and combined service-plus-retail POS billing with commission and tip tracking. Scoped, built, installed and supported by

ECOSIRE for salons, spas and wellness studios.

What is Salon & Spa POS / Appointments for ERPNext?

A build-to-order ERPNext solution that unifies online and in-store appointment booking, stylist and therapist scheduling, and combined service-plus-retail POS billing with commission and tip tracking. Scoped, built, installed and supported by ECOSIRE for salons, spas and wellness studios. Built to order by ECOSIRE for ERPNext v15, v16 — indicative price from $999.00 USD; request a quote for a scoped proposal.

Key Features

First-class `Appointment` DocType linking Customer, Service Item, Staff Resource and branch, with status lifecycle (booked, confirmed, checked-in, completed, no-show)
Resource-aware calendar that enforces stylist/therapist working hours and prevents double-booking via `validate` doc events in `hooks.py`
Guest-facing online booking through whitelisted REST endpoints (`@frappe.whitelist(allow_guest=True)`) with server-side slot-availability checks
Combined POS cart that bills timed services and retail products on a single ERPNext Sales Invoice
`Service Package` and `Membership` DocTypes with redemption tracking and balance decrement on checkout
Per-line staff commission ledger written on Sales Invoice `on_submit`, driven by configurable `Commission Rule` (percentage, flat, or tiered)
Tip capture on the POS screen, allocated to the serving staff member and excluded from commissionable revenue
Nightly `scheduler_events` job that aggregates commissions and tips into a payout report reconcilable with ERPNext Payroll or a Journal Entry
Role profiles and permission rules scoping stylists to their own calendar/commissions and owners to the full floor
Client scripts that surface appointment context (last visit, preferred stylist, package balance) inside the POS and Customer forms
Walk-in and quick-book flow that creates the Appointment and moves straight to checkout without leaving the POS page
No-show and cancellation handling with configurable policy fields and optional deposit/forfeit logic
Multi-branch / multi-chair support via a `Staff Resource` and `Location` model so calendars and POS Profiles are branch-scoped
Built and tested against ERPNext/Frappe v15 and v16, packaged as a versioned Frappe app installable on your bench

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 ERPNext.

  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

ERPNext Compatibility
—
License
Licence confirmation required
Python Requirement
Python 3.10+
Database
MariaDB 10.6+

About this Product

Salons and spas run on the calendar, but ERPNext out of the box has no concept of a bookable stylist, a chair that can only take one client at a time, or a checkout that mixes a 45-minute haircut with a bottle of retail shampoo and a stylist's commission on both. Teams end up juggling a third-party booking app for appointments and ERPNext only for invoicing, so no-shows, walk-ins, package redemptions and staff payouts never reconcile. ERPNext's native POS Profile and Sales Invoice are built for retail and restaurant flows, not for time-and-resource-based services, and this is exactly where a generic install runs out of road.

ECOSIRE builds a purpose-designed Frappe application that installs cleanly onto your ERPNext v15 or v16 bench. It introduces first-class DocTypes for the salon domain — an Appointment linked to Customer, Service (Item), and a Staff Resource (stylist/therapist), plus Service Package, Membership, and Commission Rule — instead of bending Project/Task or Healthcare into a shape they were never meant for. A resource-aware calendar view enforces double-booking rules and staff working hours through validate hooks in hooks.py doc events, so a therapist can never be booked in two rooms at once. Online booking is exposed through whitelisted REST endpoints (@frappe.whitelist(allow_guest=True)) that your website or a WhatsApp/Instagram funnel can call, with rate limiting and slot-availability checks server-side.

At the counter, the POS screen (a Frappe page backed by client scripts) lets front desk staff pull an existing appointment, add retail products to the same cart, apply a membership or package redemption, and split the resulting Sales Invoice into per-line commission entries. Commission and tip logic lives in server scripts and scheduled jobs: a hooks.py on_submit event on Sales Invoice writes commission ledger rows against each staff member per service line, and a nightly scheduler event (scheduler_events) aggregates them into a payout report that ties back to ERPNext Payroll or a Journal Entry. Role profiles and permission rules keep receptionists, stylists and owners scoped to what they should see — a stylist sees only their own calendar and commissions, the owner sees the whole floor.

Because this is build-to-order, we start from your actual services, staff structure, package rules and branch layout rather than shipping a one-size-fits-all download. After a short scoping call we confirm the exact DocTypes, fields, commission formulas and booking rules in writing, build the app in a Git repository, and validate it on a staging bench with your data before go-live. Typical delivery is one working week from confirmed scope. There is no instant download — you receive tested source code, a documented install, and a supported handover, all built specifically for your salon or spa.

What you get

  • Installable, versioned Frappe app source code for your ERPNext v15 or v16 bench
  • Installation and configuration on your staging environment, then production go-live
  • Technical documentation: DocTypes, fields, hooks, server/client scripts, scheduler events and REST endpoints
  • End-user guide plus a live training session for front desk, stylists and owners
  • UAT on a staging bench with your real services/staff data, including a documented rollback plan
  • Post-go-live support window for defect fixes and configuration questions
  • Git repository handover with full commit history and README
  • Commission-rule and package configuration worksheet completed with you during scoping

Who this is for

Independent salon owner

Runs one or two locations and wants appointments, walk-in billing, retail sales and stylist commissions in one ERPNext system instead of a booking app plus spreadsheets. Needs accurate payouts and a clear view of chair utilization.

Multi-branch spa group operator

Manages several branches with shared and branch-specific therapists. Needs branch-scoped calendars, POS Profiles and role-based access so each location sees only its own schedule while head office sees consolidated revenue and commissions.

Front desk / reception manager

Books, reschedules and checks in clients all day and needs a fast POS that pulls an appointment, adds retail, redeems packages and captures tips without leaving the counter screen or reopening ERPNext modules.

ERPNext implementation partner or in-house admin

Already runs ERPNext and wants a clean, documented Frappe app with proper DocTypes and hooks rather than fragile customizations, plus a Git repo and technical docs they can maintain after handover.

How Salon & Spa POS / Appointments for ERPNext Compares

CriterionECOSIRECustom BuildCompetitorERPNext Native
Appointment & resource bookingNative `Appointment` and `Staff Resource` DocTypes with double-booking preventionPossible but you design and maintain the model yourselfGeneric scheduler, rarely aware of chairs/therapist hoursNo bookable-resource concept out of the box
Service + retail billingSingle Sales Invoice mixing timed services and products at POSBuildable with significant developer effortUsually retail-only or service-only, not bothPOS Profile geared to retail, not timed services
Commissions & tipsPer-line commission ledger via `on_submit` hook + nightly payout jobBespoke logic you must design and testLimited or fixed commission handlingNo native stylist commission or tip tracking
Packages & membershipsPackage/Membership DocTypes with redemption balancesCustom-built and maintained by youVaries; often basic or add-on pricedNot modeled in ERPNext core
Fit to your businessScoped to your services, staff and branch layoutFully bespoke but you own all decisions and riskOne-size-fits-all, configure around its assumptionsGeneric ERP, heavy configuration required
Version supportBuilt and tested for Frappe/ERPNext v15 and v16Depends on your team's testing disciplineMay lag current ERPNext releasesCore follows the release, no salon features added
Delivery & handoverone working week, staging UAT, Git repo, docs and trainingTimeline and quality vary by teamInstant install but no tailoring or handover docsImmediate but requires your own build effort
Support after launchPost-go-live support window plus optional ongoing agreementWhatever your internal team providesVendor support tiers, not salon-specificCommunity/partner support, no salon domain help

Frequently Asked Questions about Salon & Spa POS / Appointments

Is this an instant download from the Frappe marketplace?

No. This is a build-to-order engagement. ECOSIRE scopes, builds, installs and supports a Frappe app tailored to your services, staff structure and commission rules. You receive tested source code and a Git repo, not a generic one-click marketplace download.

How long does delivery take?

Typical delivery is one working week from confirmed scope. After the scoping call we agree the exact DocTypes, booking rules and commission formulas in writing; the timeline depends on the number of services, branches and integrations you need. We build in a Git repo and validate on staging before go-live.

Which ERPNext versions are supported?

We build and test against Frappe/ERPNext v15 and v16. During scoping we confirm your exact bench version so the app is packaged and tested against your target release.

How does it handle staff commissions and tips?

A `Commission Rule` DocType defines percentage, flat or tiered payouts per service or staff member. On Sales Invoice submit, a server-side hook writes per-line commission ledger rows, and a nightly scheduler job aggregates them into a payout report you can reconcile with ERPNext Payroll or a Journal Entry. Tips are captured at POS and allocated separately from commissionable revenue.

Can customers book online, and does it integrate with our website?

Yes. Booking is exposed through whitelisted, guest-accessible REST endpoints with server-side slot-availability and rate-limiting checks. Your existing website, a landing page, or a WhatsApp/Instagram funnel can call these endpoints. We scope the exact integration surface with you before building.

What support and updates do we get after go-live?

The engagement includes a post-go-live support window for defect fixes and configuration questions. Because you own the Git repository and source code, you or your partner can maintain it afterward. Ongoing support, feature additions or version upgrades (for example to a future ERPNext release) can be arranged as a separate agreement.

Will this conflict with our existing ERPNext customizations?

We ship a self-contained Frappe app with its own DocTypes and hooks rather than editing core, which keeps it upgrade-friendly and isolated from your other customizations. We validate against your real configuration on a staging bench, with a documented rollback plan, before touching production.

Request a quote

Salon & Spa POS / Appointments

A build-to-order ERPNext solution that unifies online and in-store appointment booking, stylist and therapist scheduling, and combined service-plus-retail POS billing with commission and tip tracking. Scoped, built, installed and supported by ECOSIRE for salons, spas and wellness studios.

  • First-class `Appointment` DocType linking Customer, Service Item, Staff Resource and branch, with status lifecycle (booked, confirmed, checked-in, completed, no-show)
  • Resource-aware calendar that enforces stylist/therapist working hours and prevents double-booking via `validate` doc events in `hooks.py`
  • Guest-facing online booking through whitelisted REST endpoints (`@frappe.whitelist(allow_guest=True)`) with server-side slot-availability checks
  • Combined POS cart that bills timed services and retail products on a single ERPNext Sales Invoice

Request a Quotation

Tell us about your Salon & Spa POS / Appointments 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.