- Home
- Apps
- SaaS Tools
- Salon & Spa POS / Appointments for ERPNext
Illustrative previewA 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
Built to order, done for you
No DIY setup — a working app, built, installed and supported by ECOSIRE.
- 1
You order
Start with a one-time build price. We scope it with you at kickoff.
- 2
We build & install
ECOSIRE builds, configures and installs it on your ERPNext.
- 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
| Criterion | ECOSIRE | Custom Build | Competitor | ERPNext Native |
|---|---|---|---|---|
| Appointment & resource booking | Native `Appointment` and `Staff Resource` DocTypes with double-booking prevention | Possible but you design and maintain the model yourself | Generic scheduler, rarely aware of chairs/therapist hours | No bookable-resource concept out of the box |
| Service + retail billing | Single Sales Invoice mixing timed services and products at POS | Buildable with significant developer effort | Usually retail-only or service-only, not both | POS Profile geared to retail, not timed services |
| Commissions & tips | Per-line commission ledger via `on_submit` hook + nightly payout job | Bespoke logic you must design and test | Limited or fixed commission handling | No native stylist commission or tip tracking |
| Packages & memberships | Package/Membership DocTypes with redemption balances | Custom-built and maintained by you | Varies; often basic or add-on priced | Not modeled in ERPNext core |
| Fit to your business | Scoped to your services, staff and branch layout | Fully bespoke but you own all decisions and risk | One-size-fits-all, configure around its assumptions | Generic ERP, heavy configuration required |
| Version support | Built and tested for Frappe/ERPNext v15 and v16 | Depends on your team's testing discipline | May lag current ERPNext releases | Core follows the release, no salon features added |
| Delivery & handover | one working week, staging UAT, Git repo, docs and training | Timeline and quality vary by team | Instant install but no tailoring or handover docs | Immediate but requires your own build effort |
| Support after launch | Post-go-live support window plus optional ongoing agreement | Whatever your internal team provides | Vendor support tiers, not salon-specific | Community/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.
Related Modules
Sales Field-Force & GPS Visit Tracking for ERPNext
A build-to-order ERPNext app that puts your field-sales beat plans, GPS check-ins and on-site order capture inside ERPNext — tied to your real Customer and Sales Order records. ECOSIRE builds, installs and supports it; it is not an instant download.

Sales Sequences & Cadence Engine
Outreach-style multi-step cadences (email, call, WhatsApp, SMS) with auto-generated rep tasks and reply/meeting detection that auto-exits leads, built natively on ERPNext. ECOSIRE designs, builds, installs, and supports it for your team on a build-to-order basis.

Self-Service Kiosk for ERPNext POS
A touchscreen self-order kiosk for QSRs, food courts and retail that lets customers place orders and pay unattended, writing straight into ERPNext POS. ECOSIRE builds, installs and supports it for your menu, hardware and payment provider.

SEPA Direct Debit & ISO 20022 Suite
A build-to-order Frappe app that adds SEPA credit transfers (pain.001), SEPA direct debit with mandate management (pain.008) and camt.053/054 statement import + reconciliation to ERPNext. ECOSIRE scopes, builds, installs and supports it — this is not an instant Marketplace download.
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