Promo Codes & Discounts
Promo codes allow you to offer discounts on reservations and invoices.
Creating a Promo Code
- Go to Promo Codes → New Promo Code.
- Fill in:
| Field | Notes |
|---|---|
| Code | The code clients enter (e.g., SUMMER20). Automatically uppercased. |
| Name | Internal description (e.g., "Summer 2026 Promotion") |
| Discount Type | Percentage (e.g., 20% off) or Fixed Amount (e.g., $10 off) |
| Discount Value | The amount of the discount |
| Minimum Stay (nights) | Optional. Require a minimum number of nights to apply. |
| Usage Limit | Optional. Maximum number of times this code can be used. |
| Valid From / Expires | Optional date range when the code is active |
| Applicable Service Types | Restrict to Boarding, Board & Train, Daycare (Full), and/or Daycare (Half). Leave all unchecked to apply to all services. |
| Active | Toggle to enable/disable the code |
- Click Save Promo Code.
Applying Promo Codes
Promo codes can be applied:
- During reservation creation (staff enters the code)
- During online booking (client enters the code themselves)
- When editing a reservation
- On an invoice directly
Discount Rules
In addition to promo codes, Goodstay supports automatic Discount Rules (e.g., multi-pet discounts, long-stay discounts). Configure these in Promo Codes → Discount Rules.
Holiday Pricing
Add price surcharges for holidays and peak periods. Goodstay automatically applies these to reservations that overlap with the defined date ranges.
Creating a Holiday Pricing Period
- Go to Holiday Pricing → New Holiday Period.
- Fill in:
| Field | Notes |
|---|---|
| Name | E.g., "Christmas 2026", "Memorial Day Weekend" |
| Start Date | First day of the surcharge period |
| End Date | Last day (exclusive) |
| Surcharge Type | Percentage (e.g., +25%) or Flat (e.g., +$15/night) |
| Surcharge Amount | The amount of the surcharge |
- Click Save. Overlapping holiday periods are not allowed.
How Pricing Is Applied
When a reservation is created or edited, Goodstay automatically checks if any dates overlap with holiday pricing periods. If they do, the surcharge is applied per overlapping night and displayed in the reservation's price breakdown.
Space Blocks (Closures & Maintenance)
Space Blocks let you mark a space (or your entire facility) as unavailable for a date range, preventing new reservations from being created.
Creating a Space Block
- Go to Space Blocks → New Space Block.
- Fill in:
| Field | Notes |
|---|---|
| Title | E.g., "Deep Cleaning", "Renovation", "Christmas Closure" |
| Start Date | First blocked day |
| End Date | The day you reopen — bookings can start again on this date. Set it equal to the Start Date for a single-day block. |
| Which spaces | Choose Facility-wide (block every space) or Specific spaces (pick the ones to block) |
| Notes | Internal notes about the reason |
- Click Save.
A facility-wide block prevents all reservations across all spaces for that date range. Use this for holiday closures, major maintenance, or any time you're completely closed.
How Blocks Are Enforced
Blocks aren't just cosmetic — they're checked when a reservation is saved:
- Your team sees blocked spaces disabled in the booking form's space dropdown; if the chosen dates overlap a block anyway, the reservation form shows an amber Blocked dates warning naming the block, its dates, and its reason. Staff can tick Book anyway despite the block to override — say, squeezing a regular into a maintenance window that's actually fine.
- Customers can't override: online booking and the customer portal treat an overlapping block as a hard stop, across boarding, daycare, and grooming.
- Status changes on existing reservations — check-in, check-out, confirm, cancel — are never blocked. Only new bookings and date/space edits are re-checked, so a block added mid-stay never traps a pet that's already in the building.
Blocking Several Spaces at Once
When you choose Specific spaces, Goodstay shows your spaces grouped by type (Standard, Large, Suite, Puppy, Daycare, Grooming). Tick individual spaces, or use a group's Select all checkbox to take a whole category offline in one go — handy when, say, all your suites are being repainted but boarding runs stay open.
One block is created per space you select. If any of the chosen spaces already has an overlapping block, the whole batch is cancelled and the form tells you which spaces conflicted, so you can adjust and try again. (Editing an existing block still works on a single space at a time.)