Multi-location — running more than one store on a single account
How locations interact with services, staff, hours, closures, and reports. Common pitfalls.
A multi-location tenant runs multiple physical stores under one Trimsy account. Customers, staff, services, and inventory are shared at the tenant level; rosters, hours, closures, payments, and reports can all be sliced per location.
Configure under Settings → Locations.
When to use multi-location vs separate accounts
Pick multi-location if:
- Same brand across stores (one website, one customer database)
- Customers travel between locations (a Sydney customer wants to book at the Melbourne store)
- Centralised reporting (you want a "total revenue across all stores" view)
- One owner, one Stripe / Square account
Pick separate accounts if:
- Different brands, websites, branding
- Independent finances (different Stripe accounts, different tax registrations)
- Franchises operating semi-autonomously
What's shared vs per-location
| Shared across locations | Per-location | |
|---|---|---|
| Customers | ✓ shared | (preferred location flag only) |
| Services | ✓ shared catalogue | scoped via "available at" list |
| Products / inventory | ✓ shared | optional per-location stock |
| Staff | ✓ shared | rosters can be different per location |
| Business hours | ✗ | ✓ |
| Closures | both — optional | ✓ |
| Bookings | (linked to location) | ✓ |
| Receipts / invoices | shared catalogue | ✓ tagged with location |
| Reports | ✓ tenant-wide view | ✓ per-location filter |
| Stripe / Square | ✓ tenant-level | (single processor for whole tenant) |
Adding a location
- Settings → Locations → Add Location.
- Name (visible to customers — e.g. "Melbourne CBD"), address, phone.
- Timezone — important if locations are in different timezones (Sydney vs Perth). Hours and closures are interpreted in this timezone.
- Optional: per-location email, social URLs, photo for the public site.
Service availability per location
Each service has an Available at list under its edit form. By default a service is available at every location. Restrict to just one or two if a location lacks the staff or equipment for it.
The booking flow respects this — a customer picking the Melbourne location only sees services available there.
Staff availability per location
Staff can have different rosters per location, AND can be unavailable at some locations. Under Team → Staff → {Person} → Roster:
- Add a roster row for each (location, day) combo where they work.
- Leave the roster empty for locations they never work at — they won't appear as bookable there.
A staff member who works at one location only is the typical case. A staff member splitting time between locations gets multiple roster rows.
Hours per location
Each location has its own Settings → Store Hours view (location switcher in the top-right of the page). Hours, breaks, and closures are independent per location.
The "Allow Bookings on Days With No Roster" tenant setting still applies tenant-wide.
Closures per location
When you create a closure under Settings → Store Hours → Closures, you pick Applies to — a multi-select of locations. Default is "All locations" (the closure blocks every store). Pick specific locations for "Sydney only — burst pipe" type closures.
Reports per location
Every report has a Location filter dropdown. Default is "All locations". Switch to a specific one to see that store's revenue, staff productivity, etc. Useful for store-level KPIs.
The financial report goes one further — break down by location view shows revenue, COGS, payroll, and net per location side-by-side.
Common pitfalls
- Forgetting to assign a service to a new location. Default is "all", but if you've previously restricted a service to specific locations, opening a new store doesn't auto-add it. Audit your services after opening location 3.
- Roster gaps when staff move stores. If a staff member moves from Sydney to Melbourne, you have to add new roster rows for Melbourne and remove the Sydney ones. They don't auto-migrate.
- Customer preferred location stuck in old store. When a customer's local store closes / they move, update their Preferred location under their profile so reminder emails reference the right address.
- Stripe / Square is tenant-wide, not per-location. All payments go to one merchant account. If you need per-location bank accounts, split into separate tenants.