The shared vs per-location choice
By default, every setting in the admin is shared — one value applies to your whole account regardless of how many branches you operate. When the Multiple Locations custom feature is turned off, this is the only mode available and there is no way to vary a setting between branches.
When Multiple Locations is on, a small group of settings gains an extra option: you can keep them shared, or switch them to per-location so each branch carries its own value. The settings wrapped by the shared app-location-settings-container component are the ones that support this choice.
Where you see the per-location toggle
Whenever a settings page is wrapped by the per-location container, a toggle appears at the top of that page labelled along the lines of Do you want to have settings per location?. Internally this is a settings_*_location_enabled flag — for example settings_checkout_location_enabled, settings_appointment_location_enabled, or settings_payment_options_location_enabled.
The settings that currently expose this toggle are:
- Payment (deposit / payment-at-booking rules)
- Appointments (booking flow and classroom assignment)
- Online Payment Options (Stripe, Line Pay, ECPay etc.)
- Receipt Printer (vendor and connection)
Shop inventory is per-location too, but inherently — there is no toggle because stock is always tied to a location_id.
How saved values are scoped
When the per-location toggle is off, the underlying setting record has no location_id and is treated as the single shared value for the whole business.
When you turn the toggle on, switching the location selector in the admin header to a specific branch lets you edit and save a value scoped to that branch's location_id. Each branch then carries its own row in the database, and the storefront, booking flow, or printer logic loads the row matching the customer's or admin's current branch.
Switching the toggle back to off does not delete those per-location rows, but the shared value will take precedence again until you re-enable per-location mode.
