A build-to-order Odoo module that turns the Point of Sale into a full salon and spa register — service and retail sales in one ticket, stylist/therapist assignment per line, appointment booking, and automated per-staff commission tracking. ECOSIRE scopes, builds, installs, and supports it for Odoo 17, 18, or 19. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $299.00 USD; request a quote for a scoped proposal.

A build-to-order Odoo module that turns the Point of Sale into a full salon and spa register — service and retail sales in one ticket, stylist/therapist assignment per line, appointment booking, and automated per-staff commission tracking. ECOSIRE scopes, builds, installs, and supports it for Odoo 17, 18, or 19.
Şimdi ödeme yok. Bu, ekibimize bir teklif talebi gönderir — fiyat ve sonraki adımlarla e-posta ile dönüş yapacağız.
Salons, spas, and barbershops sell two very different things through one till: timed services delivered by a specific person, and retail products off the shelf. Out of the box, Odoo POS treats every line as an anonymous product sale. There is no concept of which stylist performed a colour treatment, no link between the walk-in at the register and the appointment on the calendar, and no way to compute what each therapist earned from their bookings. Owners end up reconciling commissions in a spreadsheet at month-end, front-desk staff double-key appointments into POS, and there is no clean report of chair or room utilisation. Odoo Appointments and the Enterprise Field Service / Planning apps get partway there, but none of them push staff, service duration, and commission logic into the POS ticket itself.
Extends `pos.order.line` with a service-provider (stylist/therapist) field so every service line records who delivered it, distinct from the cashier at the register
`service.commission.rule` model resolving rate by employee, service category, or specific service — flat or percentage — with priority ordering when multiple rules match
Commission amounts on a `@api.depends` compute field that recalculates live as lines, discounts, and quantities change on the open ticket
Mixed service-and-retail tickets: timed services and shelf products ring up on one `pos.order` with correct tax and commission treatment per line
POS-side booking panel (OWL) that pulls a calendar appointment onto the active order, auto-stamping assigned staff and expected service duration
Chair/room modelled as a schedulable resource with ORM-level double-booking prevention rather than front-desk convention
This module is built to close that gap inside your database. We extend pos.order.line with a service-provider field so every service line carries the stylist or therapist who delivered it, and we add a service.commission.rule model (models.Model) that resolves the correct rate per employee, per service category, or per individual service — flat amount or percentage, computed on a @api.depends-driven field so totals recalculate live as the ticket changes. Bookings from the calendar surface in a POS-side panel (OWL component in the POS UI) so a front-desk agent can pull an appointment straight onto the active order, which stamps the assigned staff and expected duration automatically. Chair/room availability is modelled as a schedulable resource so double-booking is blocked at the ORM level, and a nightly ir.cron automated action rolls confirmed tickets into commission lines that feed a QWeb payout report per employee. Access is governed by ir.model.access.csv plus record rules so a stylist sees only their own commission figures while a manager sees the full store.
Everything is delivered as a proper Odoo addon with a clean __manifest__.py, migrations where schema changes touch existing data, and no core-file edits — it installs alongside standard point_of_sale and inherits rather than overwrites. Where you already run Appointments or HR, we wire into those models instead of duplicating them; commission payouts can flow to hr.payslip inputs on Enterprise or export via the JSON-RPC/XML-RPC API to your payroll of choice on Community. We build to your exact service menu, commission scheme, and receipt layout rather than shipping a rigid one-size template.
Because this is build-to-order, nothing is a pre-packaged download. After a short scoping call we confirm the exact commission rules, booking flow, and reporting you need, then build against your target version — Odoo 17.0, 18.0, or 19.0, Community or Enterprise. Typical delivery is 2 to 4 weeks from confirmed scope. You get the module validated on a staging copy of your database first (UAT), then a supervised go-live with a rollback plan, the full source in a git repository you own, and a post-go-live support window.
Runs one or two locations on Odoo POS and loses hours each month hand-calculating stylist commissions in a spreadsheet. Needs staff-attributed tickets and an automatic payout report they can trust.
Manages a rotating roster where each barber has a different commission split. Needs per-employee, per-service rules and record-level access so each staffer sees only their own numbers.
Juggles walk-ins and the appointment calendar simultaneously. Needs bookings to flow straight into POS with the right therapist and duration so they stop double-keying and stop double-booking chairs.
Owns the Odoo instance and wants a clean, inheritance-based addon with proper access rules and a git handover — not a core-hacked module they can't upgrade.
Lisansı ecosire.com adresinden satın alın ve hesap kontrol panelinizden POS Spa & Salon Management modülünün ZIP dosyasını indirin.
ZIP'i sunucudaki Odoo özel eklentiler klasörünüze çıkarın (veya Uygulamalar > Odoo.sh / runbot'taki dosyadan yükle yoluyla yükleyin).
Geliştirici Modunu etkinleştirin, Uygulamalar'ı açın, Uygulama Listesini Güncelle'ye tıklayın, POS Spa & Salon Management'i arayın ve Yükle'ye basın.
Yeni menüyü açın, ECOSIRE lisans anahtarınızı yapıştırın, tüm harici kimlik bilgilerini (Shopify, Amazon, Stripe vb.) bağlayın ve kaydedin.
Yerleşik bağlantı testini çalıştırın, ilk 10 kaydınızı senkronize edin ve yinelenen cronu planlayın. Herhangi bir sorun olursa desteğe başvurun.
| Kriter | ECOSIRE | Özel Yapı | Rakip | Odoo Yerlisi |
|---|---|---|---|---|
| Staff attribution on POS ticket | Stylist/therapist stamped per service line, distinct from cashier | Possible but you design and build the model | Often a single salesperson field, not per-line | |
| Commission calculation | Rules by employee/category/service, flat or %, live compute | Whatever you spec and pay to build | Fixed scheme, limited rule granularity | |
| Appointment-to-POS flow | Booking pulled onto ticket with staff and duration auto-stamped | Bespoke integration effort | Rarely bridges calendar into POS | |
| Chair/room double-booking | Blocked at ORM level via schedulable resource | You build the constraint logic | Usually not modelled | |
| Payout reporting | Per-employee QWeb report + manager summary via nightly cron | Report built to order | Basic or generic export | |
| Access control | Record rules — stylists see only their own figures | You define and test the security matrix | Often all-or-nothing visibility | |
| Version & edition fit | Built to your 17/18/19, Community or Enterprise | Depends on your team's Odoo depth | May lag new versions or need Enterprise | |
| Ownership & support | Full source in your git repo + support window | You own it but carry all maintenance | Vendor-locked, per-seat or annual fees |
No. This is a build-to-order module. ECOSIRE builds it against your exact service menu, commission scheme, and Odoo version after we confirm scope with you. There is no instant download — you receive tested source code, installation, and support.
Typically 2 to 4 weeks from confirmed scope. The initial scoping call locks down commission rules, booking flow, and reporting; the timeline depends mainly on how custom your commission logic and receipt layout are. We give you a firm date once scope is signed off.
We build for Odoo 17.0, 18.0, or 19.0, Community or Enterprise. On Enterprise we can wire commissions into `hr.payslip` inputs and integrate with Appointments; on Community we deliver the equivalent flow and export payout data via the JSON-RPC/XML-RPC API to your payroll tool.
A `service.commission.rule` model resolves the applicable rate by employee, service category, or specific service — as a flat amount or a percentage — with defined priority when multiple rules match. Amounts compute live on the ticket via an `@api.depends` field, and a nightly `ir.cron` closes confirmed tickets into payout lines feeding a per-employee QWeb report.
No core-file edits. The module inherits and extends standard `point_of_sale` models rather than overwriting them, so it installs alongside your current setup and stays upgrade-friendly. We validate it on a staging copy of your database before touching production.
Every build includes a post-go-live support window for defect fixes and configuration tweaks. Because you receive the full source in a git repository you own, you can maintain it yourself or engage ECOSIRE for version upgrades and enhancements later.
No. Access is enforced with `ir.model.access.csv` plus record rules — a stylist sees only their own commission lines and payout report, while managers get the full store view. The security matrix is documented and reviewed with you during UAT.
A build-to-order Odoo module that turns the Point of Sale into a full salon and spa register — service and retail sales in one ticket, stylist/therapist assignment per line, appointment booking, and automated per-staff commission tracking. ECOSIRE scopes, builds, installs, and supports it for Odoo 17, 18, or 19.