FAQ Q347: How do I add reservation restrictions not directly supported by Planyo's settings?

Sección: Determining availability and booking constraints
Even though you can add a large number of restrictions in resource settings (such as min/max time between reservation and rental, time between consecutive rentals, min/max rental duration etc.), in resource vacations (marking days or time units as unavailable) and in seasonal settings (by setting separate min/max rental duration, allowed arrival/departure weekdays etc.), you may still wish to add restrictions that are very specific to your business model and not available in Planyo as a standard setting. There's an infinite amount of such restriction variations possible but you accomplish all of them using the same mechanism: by using Pricing Manager. This approach is valid even if you don't set any prices at all in your Planyo site.

Pricing Manager allows you to set any combination of rules (over 70 different rule types are supported) which, when all the conditions are fulfilled, will show an error message to the customer instead of setting a price. In the pricing grid, you simply type the error message and instead of choosing the currency/price type (e.g. EUR per day) you select UNAVAILABILITY MESSAGE. This will prevent users from making a reservation and will display your exact message to inform the user about the reason. Note that even though the administrators will also see the error message when reserving in the backend, by default they will still be able to proceed and make the reservation. This possibility can be restricted by changing their access permissions.

Below are some examples of setting typical restrictions using this mechanism.

Example 1: Prevent rentals from starting or ending on specific days of the year / holidays

First, add your holiday dates in Seasonal settings making sure that you set the Optional title of all these dates to Holiday. Then, in Pricing Manager add the following rules:
RuleValue to set for given resource and rule
Season of the start date = HolidayArrival not possible on this date [UNAVAILABILITY MESSAGE]
Season of the end date = HolidayDeparture not possible on this date [UNAVAILABILITY MESSAGE]

Example 2: Each customer can make only 1 reservation per day or week

In Pricing Manager add the following rules:
RuleValue to set for given resource and rule
Total number of existing rentals in given period = 1 time in the same day/week (same/any resource)You already have a reservation on this day [UNAVAILABILITY MESSAGE]

Example 3: Max 3 customers allowed to reserve per day

In Pricing Manager add the following rules:
RuleValue to set for given resource and rule
Total number of existing rentals in given period (any customer) = 3 times in the same day (same/any resource)No more reservations are possible on this date [UNAVAILABILITY MESSAGE]

Example 4: Only specific users (e.g. logged-in or trusted members) can make early reservations

This example is based either on the fact that the user is logged in (using the Planyo login or your website's login system) or on a customer being marked as a trusted member by the administrators using Planyo's custom user properties feature (see Q144). In this example we assume normal customers should only be able to reserve no earlier than 7 days before arrival while logged-in customers can reserve e.g. 1 year ahead.

In Time-related settings of your resource set the max. time between reservation and rental to 1 year which will be the max allowed also for the logged-in or trusted customers. Then for all other users, in Pricing Manager add the following rules:
RuleAdvanced conditionValue to set for given resource and rule
#N. User is logged in = Yes
- OR -
Custom property (User) Member = Yes
- leave empty
#N + 1. Time remaining until rental: from 7 days to - (infinity)Apply rule only if NONE of the rules were applied: #NIt is too early to reserve for this date [UNAVAILABILITY MESSAGE]

Note that here we need to use an advanced condition which makes sure that the error message is NOT displayed for users who are members or who are logged in (depending on your model) - this is why the advanced condition ... if NONE of the rules were applied was used. It's possible to set up these rules using the ... if ALL of the rules were applied condition in which case the rule #N would need to be defined using the opposite value (user logged in = No). See Q191 for details of using advanced conditions.
Preguntas frecuentes