How to set up customer type openers
Last updated: May 25, 2022
Click into each section for a step-by-step guide. In addition, check out this demo Dashboard and Onboarding Doc 3.0 (Americas and APAC offices) to see the best practice setup in action. (Note: the onboarding doc for EMEA is being revised, and the link will be added when complete.)
Please also check the FareHarbor Internal Changelog for updated information about optimal setups. For more information about the development and communication of optimal setups related to any features, please see the Best Practice Communications Cheatsheet.
Note: At times clients may ask for a customer type closer. For example, when customer type A gets selected, customer type B should not be available for that same booking and vice versa. However, the next person making a booking should get to choose from both options and have them close using the same behavior as mentioned before. This type of behavior is not possible since the customer types would have to have the exact same usage settings and couldn’t exclude each other while staying open.
Customer Type Opener: ‘Child requiring adult’ setup
Create a new resource (e.g. “Adult/Child Opener”) with these settings:
- Max Uses = 0
- Use Creation: Don’t create uses, check overuse (this will open the customer type offering within the book form, but doesn’t impact other bookings for other parties)
- Restrict To: None

Add resource requirement group (Item settings > Options & Prices > Required resources)
Note: When setting up resource requirements, the option that uses a negative number of the resource needs to be ordered above the option which uses a positive number (e.g. Paid Adults using -1 should always be added first so that they are ordered above Children in the resource requirement group).
Set up resource requirement for Adults
- Require per customer
- Require for Adult customer type
- Don’t allow split parties
- Add requirement option: Use -X of Adult/Child Opener, where X is the max number of children allowed per adult
- Use resource for length of availability
Set up resource requirement for Children
- Require per customer
- Require for Child customer type
- Don’t allow split parties
- Add requirement option: Use 1 of Adult/Child Opener
- Use resource for length of availability

Add a customer type note in the item’s Options & Prices to help online customers book (for example, “Children must be accompanied by at least one adult” or “Passenger cannot be booked until a driver is selected”).
Result: When booking availabilities that use this resource requirement: for every adult you add, X children will be allowed (in the above example, 1 adult allows 2 children).
Benefits
- Allows client to enforce age restrictions
- Allows client to offer discounted child customer type that can only be selected after selecting the full price customer type
- Easy to manage and update without using decimals. If the client or support wants to change the number of children allowed per adult, they simply have to update the negative number.
- This setup does not override capacity restrictions, but will still adhere to the most restrictive capacity or resource attached. For instance, if one adult opens 15 children on an item with a capacity of 15, the customer type opener will only open as many children as there is capacity left.
‘Buy One Get One’ (BOGO) setup
BOGO stands for “Buy One Get One”: for every paid ticket, you’re allowed one free ticket.
Setup
Create a customer type for your BOGO tickets (e.g. “Buy 1 Get 1 – Adult”)
Optional: Add a customer type note (e.g. “Complimentary ticket must be of equal/lesser value”)
Create a new resource (e.g. “BOGO Ticket”) with these settings:
- Max Uses = 0
- Use Creation: Don’t create uses, check overuse (this will open the customer type offering within the book form, but doesn’t impact other bookings for other parties)
- Restrict To: None

Add BOGO customer types to desired item(s)
Add resource requirement group (Item settings > Options & Prices > Required resources)
Note: When setting up resource requirements, the option that uses a negative number of the resource needs to be ordered above the option which uses a positive number (e.g. Paid Adults using -1 should always be added first so that they are ordered above Free Adults in the resource requirement group).
Setting up resource requirement for normal customer type:
- Require per customer
- Select customer type
- Don’t allow split parties
- Add requirement option: Use -1 of BOGO Ticket
- Use resource for length of availability
Setting up resource requirement for Buy 1 Get 1 customer type:
- Require per customer
- Select Buy 1 Get 1 customer type
- Don’t allow split parties
- Add requirement option: Use 1 of BOGO Ticket
- Use resource for length of availability

Apply the resource requirement and BOGO customer type to desired availabilities
If the client only wants the promotion to be bookable online to certain people (rather than publicly available on their website), you’ll need to take a few extra steps…
Create an online price sheet (e.g. “BOGO Morning Tour”)

When adding BOGO customer types to an item, make sure they’re only visible on the BOGO price sheet
Go to the Book Button section of the desired availability, then create a custom availability link using the BOGO price sheet. The BOGO deal will be accessible from this link only.

Benefits
- Cleanly displays customer who received a discounted offering in reports
- Allows client to offer discounted customer type that can only be selected after selecting the full price customer type
- Easy to manage for support and clients without using decimals in resources.
‘Please select fewer’ bookform error
Based on how we calculate capacity when there is no set availability capacity, there are some limitations to negative resource setups. In some cases, online users will get a “Please select fewer” on the opener customer when attempting to make valid booking. The following information outlines some of these scenarios.
Scenario: Adult/Child opener
Setup:
- 2 different resources
- Opener resource: max uses 0, use creation – don’t create, check overuse, restrict to none
- Seats: max uses 6, use creation – default, restrict to none
- 2 customer types – Everyone uses 1 seat
- Adults use -1 of opener
- Children use 1 of opener
- Availability capacity is not set, resources control capacity
- Try booking 3 adults and 3 children online here.
Result:
Explanation: Because the availability capacity is not set, we must determine bookable capacity by using binary search. This works for straightforward resource set ups, but in some cases will not work for negative resource set-ups.
In the above scenario, when checking 3 adults, 3 children booking online:
- Start by checking 1000 adults, 3 children. Fails due to seats.
- Eventually we are checking 4 adults, 3 children. Fails due to seats.
- Search next checks 2 adults, 3 children. Fails due to openers on children.
- Eventually conclude that we cannot book adults and show the “Please select fewer” error.
Potential solution: Set the availability capacity to the max resource use number. In this case set availability capacity to 6. If the availability capacity is set, we do not need to binary search our way to capacity.
Scenario: Buy #X tickets get 1 free!
Setup:
- 2 different resources
- Opener resource: max use -10, use creation – don’t create uses, check overuse, restrict to none
- Seats: max use 12, use creation – default, restrict to none
- 2 customer types – Everyone uses 1 seat
- Person use -1 of opener
- Comp ticket use 1 of opener
- Availability capacity is not set, resources control capacity
- Try booking 11 people and 1 comp online here.
Result:
Potential solution: Set the availability capacity to the max resource use number. In this case set availability capacity to 12. Alternatively, could this same promotion be achieved using promo codes?