Skip to main content

A discount is a price reduction that Solidres applies on its own when a booking meets the conditions you set: a long enough stay, an early enough booking, a quiet week. The guest does not enter a code. They search their dates and see the reduced price.

This guide covers installing the plugin, every field of the discount form, how the amount is calculated, and a set of ready-made discounts for hotels, apartments and guest houses that you can copy into your own site.

PREREQUISITES:

  • Joomla 6.x, PHP 8.3+
  • Solidres 4.0 or later
  • A paid Solidres subscription, at any level. It carries the Discount download
  • The Experience plugin, only if you want to give discounts on experiences. Discounts on rooms work without it

On this page:

  1. Discount, coupon or rate plan?
  2. Installation
  3. Creating a discount
  4. How a discount is calculated
  5. Discount examples for hotels and rentals
  6. Combining discounts
  7. Discounts in the partner dashboard
  8. Discounts for experiences
  9. Checking that it works
  10. Troubleshooting

Discount, coupon or rate plan?

Solidres has three ways to lower a price. They can be used together, and each has its own job:

Discount Coupon Rate plan
How the guest gets it Automatically, when the booking meets the conditions By entering a code By choosing the rate
Good for Rules that reward behaviour: stay longer, book earlier, fill a quiet period Offers for a chosen audience: newsletter readers, returning guests, a partner The price itself: seasons, weekends, occupancy, non-refundable rates
Where it is managed Reservations → Discounts Coupons & Extras → Coupons The room type

When a coupon and a discount apply to the same booking, the coupon lowers the nightly rates first and the discount is calculated on the result.

Installation

  1. Download Solidres Discount from your Download page on solidres.com.
  2. In your Joomla administrator, go to System → Install → Extensions and upload the package.

The plugin is enabled for you on a first install. If it has been disabled since, enable Solidres - Discount plugin under System → Plugins.

Creating a discount

Discounts are managed under Solidres → Reservations → Discounts. The list shows each discount with its property, its validity period, its priority and whether it stops further processing.

Select New to create one.

The discount form
Field What it does
Title The name of the discount. It is shown next to the amount in the reservation details, so name it the way you would on a bill: Weekly stay -10%.
Description Optional notes about the discount.
State Only a published discount is used.
Property The property the discount belongs to. A discount always belongs to one property. To run the same offer in two properties, create it twice.
Applied to The room types that get the discount. Choose the property first: the list then shows its room types. Several can be selected.
Discount type The condition the booking has to meet. See Discount types.
Valid from, Valid to The period in which the stay has to take place. See The validity period.
Applied type, Applied days Limits the discount to certain days of the week. See Days of the week.
From, To The lower and upper limit of the condition. The unit follows the discount type and is shown next to the field: nights, rooms, days or %. Both limits are included, and both are required. For a condition with no upper limit, enter a number you will never reach, such as 365.
Value The size of the discount: a percentage or an amount. For the two free-stay types, the number of nights given away.
Is percent? Yes reads the value as a percentage, No as a fixed amount in the property's currency. Not shown for the two free-stay types.
Priority The order in which discounts are processed when several apply. 1 is the highest and is processed first.
Stop further processing When this discount applies and the option is Yes, the discounts that come after it are skipped. The default is Yes. See Combining discounts.

Discount types

Discount type From and To are counted in The discount applies when
On the length of stay (night or day) Nights The length of the stay is between From and To.
On number of booked rooms Rooms The number of rooms in the booking, over all room types, is between From and To.
On number of days booked in advance Days The number of days between today and the arrival date is between From and To. A booking for tonight counts as 0.
On room type availability % The share of the room type's rooms that are still free for the requested dates is between From and To. With 10 rooms of which 8 are free, the availability is 80%.
Free X cheapest stay (night/day) Nights The length of the stay is between From and To. The cheapest nights of the stay are free, as many as entered in Value.
Free X last stay (night/day) Nights The length of the stay is between From and To, and longer than Value. The last nights of the stay are free, as many as entered in Value.

NOTE Properties that are booked per day rather than per night count days in the same fields. Everywhere this guide says night, read day.

The validity period

Valid from and Valid to describe when the guest stays, not when they book. A discount is used only if the whole stay falls inside the period, the day of departure included:

A discount valid from 1 June 2027 to 31 August 2027
Stay Discount Why
10 July to 17 July Yes Arrival and departure are both inside the period
27 August to 31 August Yes The departure is on the last valid day
29 August to 2 September No The departure is after the period
30 May to 4 June No The arrival is before the period

To give a discount all year round, set a period of several years. To limit when the booking is made, use the type On number of days booked in advance, or publish the discount for the duration of the campaign and unpublish it afterwards.

Days of the week

Applied days is required. For a discount that does not depend on the day of the week, select all seven days.

Applied type The discount applies when
Arrival days The day of arrival is one of the selected days. The other days of the stay do not matter.
Staying days Every day of the stay is one of the selected days, from the day of arrival to the day of departure, both included.

IMPORTANT With Staying days, the day of departure counts. For a discount on the nights from Sunday to Thursday, select Sunday to Friday: Friday is the day the guest of Thursday night leaves. A stay that includes Friday night ends on Saturday, which is not selected, so it gets no discount.

How a discount is calculated

  • On the room price only. Extras are not discounted.
  • Per room. Each room of a booking is checked and discounted on its own. A percentage gives the same result either way, but a fixed amount is given for every room: a fixed discount of 20 on a booking of three rooms takes off 60.
  • Except the type On number of booked rooms, which looks at the booking as a whole. It is calculated once, on the room total of the booking, it ignores Applied to, and a fixed amount is given once.
  • A free night is worth its own price. When nightly prices differ, Free X cheapest stay gives away the cheapest nights and Free X last stay the last ones, whatever they cost.

Before or after tax

Open the Solidres options and select the Reservation tab. The option Discount pre tax decides what a discount is taken from:

Discount pre tax What happens
No (default) The discount is calculated on the room price including tax, and taken off after the tax.
Yes The discount is calculated on the room price before tax, and the tax is then calculated on the discounted price.

The option is site-wide. Ask your accountant which one your tax rules expect, and set it before you publish your first discount: a reservation keeps the setting it was made with.

What the guest sees

When a guest searches their dates, each rate shows the discounted price, and the price breakdown lists the Room discounted amount and the Room cost after discounted. The booking summary, the confirmation email and the invoice carry a Total discount line.

When staff create or amend a reservation in the administrator, the total discount is filled in by the same rules and can be changed by hand.

Discount examples for hotels and rentals

Each example below is a complete discount. Find the one closest to what you want, copy the values, and change the numbers.

You want to Use the discount type Example
Get longer stays On the length of stay Weekly and monthly stays
Get bookings in early On number of days booked in advance Early bird
Sell the rooms still empty this week On number of days booked in advance Last minute
Offer "stay 4, pay 3" Free X cheapest stay, Free X last stay Free night
Fill the nights from Sunday to Thursday On the length of stay, with Staying days Midweek special
Turn a weekend into a long weekend On the length of stay, with Arrival days Long weekend
Lower the price while most rooms are empty On room type availability Quiet dates
Win families and small groups On number of booked rooms Several rooms
Run a sale for a season On the length of stay, with a validity period Low season sale
Take a fixed amount off Any, with Is percent? set to No Fixed amount

Values used in every example

The examples list only the fields that make the offer. Unless an example says otherwise, the other fields are:

Field Value
State Published
Property, Applied to Your property, and the room types on offer
Valid from, Valid to Today, and a date several years ahead
Applied type, Applied days Arrival days, with all seven days selected
Is percent? Yes
Priority 1
Stop further processing Yes

Weekly and monthly stays

A longer stay means fewer arrivals, fewer changeovers and less cleaning. Holiday apartments, aparthotels and guest houses share that saving with the guest. Create one discount per tier, with ranges that do not overlap, so that a stay matches one tier only:

Title Discount type From To Value
Weekly stay -10% On the length of stay 7 13 10
Two weeks and more -15% On the length of stay 14 27 15
Monthly stay -25% On the length of stay 28 365 25

Result: 7 nights at €120 come to €840. The guest gets €84 off and pays €756.

Early bird

Bookings made months ahead give you a base of occupancy to plan around, and money in the bank if you take a deposit. Resorts and seasonal properties use it to fill the high season early.

Field Value
Title Early bird -15%
Discount type On number of days booked in advance
From 60
To 365
Value 15

Result: a guest who books on 1 March for an arrival on 10 July books 131 days ahead. 5 nights at €150 come to €750, the guest gets €112.50 off and pays €637.50. A guest who books the same stay on 1 June books 39 days ahead and pays the full price.

TIP An early-bird price is usually sold with stricter conditions, such as no free cancellation. Say so in your booking conditions.

Last minute

A room that is empty tonight earns nothing. A last-minute discount sells what is left for the coming days.

Field Value
Title Last minute -20%
Discount type On number of days booked in advance
From 0
To 3
Value 20

Result: a booking made today for an arrival today, tomorrow, or up to three days from now gets 20% off.

TIP Guests learn quickly. If last-minute prices are always lower, they stop booking early. Limit the offer to the room types that are hard to sell, to the low season through the validity period, or use Quiet dates, which stops by itself when the rooms fill up.

Free night: stay 4, pay 3

A free night reads better than a percentage, and it rewards exactly the longer stay you are after. There are two types, and they differ when your nightly prices differ:

Title Discount type From To Value
Stay 4, pay 3 Free X cheapest stay 4 6 1
Stay 7, pay 5 Free X cheapest stay 7 13 2
Fourth night free Free X last stay 4 4 1

Result: a guest arrives on Wednesday for 4 nights. Wednesday and Thursday cost €100 each, Friday and Saturday €140 each, €480 in total.

  • With Stay 4, pay 3, the cheapest night is free: €100 off, the guest pays €380.
  • With Fourth night free, the last night is free. That is Saturday: €140 off, the guest pays €340.

Use Free X cheapest stay when you want to know the most a free night can cost you. Use Free X last stay when the offer is worded as "the last night is on us".

IMPORTANT Keep From higher than Value. A free-night discount needs more nights in the stay than it gives away.

Midweek special

City hotels that live from weekend leisure guests, and country hotels that live from the weekend, have the same empty nights from Sunday to Thursday. This discount applies only to stays that stay clear of Friday and Saturday night.

Field Value
Title Midweek special -15%
Discount type On the length of stay
Applied type Staying days
Applied days SUN, MON, TUE, WED, THU, FRI
From 2
To 5
Value 15

Result: Monday to Thursday, 3 nights: discount. Tuesday to Friday, 3 nights: discount, the guest leaves on Friday morning. Thursday to Saturday: no discount, the stay includes Friday night. Friday is selected because it is a day of departure, as explained in Days of the week.

Long weekend

Weekend guests tend to book Friday and Saturday and leave Sunday night empty. Reward the ones who add a night.

Field Value
Title Long weekend -10%
Discount type On the length of stay
Applied type Arrival days
Applied days THU, FRI
From 3
To 4
Value 10

Result: Friday to Monday, 3 nights: discount on the whole stay. Friday to Sunday, 2 nights: full price. The same idea fills a single weak night: arrival day SUN, from 1 to 2 nights, for a Sunday-night offer.

Quiet dates

This is the discount that follows demand. It looks at how many rooms of the room type are still free for the dates the guest asks for, lowers the price while most of them are, and stops when the rooms fill up. Use two tiers that do not overlap:

Title Discount type From To Value
Quiet dates -10% On room type availability 70 100 10
Quiet dates -5% On room type availability 40 69 5

Result: the room type has 10 double rooms. For dates where 8 are free, the availability is 80% and the guest gets 10% off. When 5 are free, 50%, the discount is 5%. When 3 are free, 30%, the price is the full price.

NOTE This type needs several rooms per room type to be useful. A room type with a single room, such as a holiday apartment, is either 100% free or not bookable, so the discount would apply to every booking.

Several rooms

Families, wedding guests and small groups book several rooms at once. A discount on the number of rooms wins the booking that would otherwise be split over two hotels.

Field Value
Title 3 rooms and more -10%
Discount type On number of booked rooms
From 3
To 10
Value 10

Result: 4 rooms for 2 nights at €90 come to €720. The guest gets €72 off and pays €648. The rooms can be of different room types: two doubles and two twins count as four rooms.

IMPORTANT This type is processed after all the others, and it is skipped when a discount that was applied to one of the rooms has Stop further processing set to Yes. If a booking can match both, for example a group that also books early, decide which one the guest should get. See Combining discounts.

Low season sale

The validity period turns any discount into a seasonal offer. Here, a sale for stays in the weeks before Christmas.

Field Value
Title Autumn sale -20%
Discount type On the length of stay
Valid from 2 November 2026
Valid to 18 December 2026
From 2
To 30
Value 20

Result: a stay from 20 to 23 November gets 20% off. A stay from 16 to 19 December does not, because the guest leaves after 18 December. If the last discounted night is the night of 18 December, set Valid to to 19 December.

Fixed amount

An amount is easier to advertise than a percentage: "€50 off your week by the sea". Set Is percent? to No.

Field Value
Title €50 off a week
Discount type On the length of stay
From 7
To 365
Value 50
Is percent? No

Result: a week in one apartment is €50 cheaper. A week in two apartments is €100 cheaper, because the amount is given for each room. Keep the amount well below the price of the shortest and cheapest stay that can match.

Combining discounts

When several discounts match a room, Solidres processes them in the order of their Priority, 1 first. Give each discount of a property its own number, so the order is never in doubt.

What happens next depends on Stop further processing of each discount that applies:

A 7-night stay of €1,000, booked 90 days ahead. Early bird -15% has priority 1, Weekly stay -10% has priority 2
Stop further processing of Early bird Early bird Weekly stay The guest pays
Yes 15% of €1,000 = €150 Skipped €850
No 15% of €1,000 = €150 10% of €850 = €85 €765

Three things follow from this:

  • Percentages do not add up. Each one is calculated on what is left after the discounts before it: 15% and 10% make 23.5%, not 25%.
  • To give the guest the best single discount, give the largest discount the highest priority and leave Stop further processing on Yes everywhere. This is the safe setup, and the default.
  • To let discounts add up, set Stop further processing to No on every discount except the last, and work out the largest total a booking can reach before you publish.

A discount of the type On number of booked rooms is always processed last, once per booking. It is calculated on the room total of the booking and added to the discounts the rooms already received.

Discounts in the partner dashboard

With the Hub plugin, partners manage the discounts of their own properties from the partner dashboard, under Discounts. The form is the same. A partner sees and edits only the discounts of the properties they own.

Discounts for experiences

With the Experience plugin installed next to the Discount plugin, discounts for experiences have a list of their own, under Solidres → Experiences → Discounts. The form works the same way, with four discount types:

Discount type From and To are counted in
Length of stay (hours) Hours, for an experience with a duration in hours
Length of stay (days) Days, for an experience with a duration in days
On the experience availability %
On number of days booked in advance Days

NOTE For experiences, Valid from and Valid to are compared with the day the booking is made, not with the date of the experience.

Checking that it works

  1. On your website, search the property for dates that meet the conditions of the discount. The rate shows the discounted price.
  2. Continue to the booking summary. It carries a Total discount line, and the grand total is lower by that amount.
  3. Search again for dates that do not meet the conditions: one night fewer, or a departure one day after Valid to. The price is the full price.

Check the third step as carefully as the first. A discount that applies too often costs more than one that does not apply.

Troubleshooting

Symptom Cause and fix
The installer stops with "Solidres Experience plugin version 2.0.0 or later is required" You are installing Discount 1.0.1 or older. Download the current version from your Download page: from 1.0.2, the Discount plugin no longer needs the Experience plugin.
No discount is ever applied The Solidres - Discount plugin is disabled. Enable it under System → Plugins.
The Applied to list is empty Choose the Property first. The list is filled with its room types.
One discount is not applied Check, in this order: the discount is published; the room type is selected in Applied to; the whole stay, the day of departure included, is inside the validity period; the days of the week match; the stay is inside From and To; no discount with a higher priority has Stop further processing set to Yes.
A discount with Staying days is not applied The day of departure has to be one of the selected days. See Days of the week.
The discount on the number of rooms is not applied A discount applied to one of the rooms has Stop further processing set to Yes. Set it to No if the two are meant to add up.
Two percentages give less than their sum Each percentage is calculated on what is left after the discounts before it. See Combining discounts.
A fixed amount is taken off several times A fixed amount is given for each room of the booking. Use a percentage, or the type On number of booked rooms, which is given once per booking.
The discount is smaller or larger than the percentage of the price the guest sees The option Discount pre tax decides whether the percentage is taken of the price with or without tax. Extras are never discounted. See Before or after tax.
A discount is applied to every booking The condition is too wide. Typical cases: On the length of stay from 1 night, or On room type availability on a room type with a single room.

All the things you need to make your work easier. Did you like Solidres?