Basic workflow for a touristic website:
Homepage:
We create a search bar with 3 inputs: arrival_date, departure_date and people.
The button “Search availability” will link to a new page with the parameters for the inputs, where we will show the list of available properties.
List of properties:
We read the parameters of the URL.
Option 1: If the parameters exist → we will show the available properties for those dates / people, with the total price of the stay (nights + cleaning fee if any + booking fee in any).
Option 2: If there are no parameters → we will show all the properties in the system that have the minimum requirements. We can show the minimum price, so that the user has an idea, but it’s optional.
Option 1: Show available properties:
First, we call DailyAvailability()
DailyAvailability(“2022-01-01”, “2022-01-05”, 3, “en”, “test_user”, “test_psw”)
This will return the list of available properties in those dates, with all the information except prices.
Then, we call DailyRates() for each one in a recursive function.
DailyRates(1011, “2022-01-01”, “2022-01-05”, 3, “en”, “test_user”, “test_psw”)
This will return de prices for that property and dates.
Field in screenshoot | Webservice | Field in webservice |
---|---|---|
1. Title | DailyAvailability | headline / name |
2. Description | DailyAvailability | description |
3. Photo | ||
4.1 Capacity | DailyAvailability | maximum_capacity |
4.2 Bedrooms | DailyAvailability | number_of_rooms |
4.3 Surface | DailyAvailability | surface |
4.4 Wifi | DailyAvailability | lodging_equipment.wifi / lodging_equipment.free_wifi |
5. Price of stay | DailyRates | price |
Other important fields from DailyAvailability and DailyRates:
Webservice | Field | Description |
---|---|---|
DailyAvailability | lodging_id | You must read this to access the DailyRates function |
DailyAvailability | lodging_type | Useful to filter by apartment / villa |
DailyAvailability | city | Useful to filter by destination |
DailyAvailability | latitude & longitude | Necessary if you want to create a Google Maps |
DailyAvailability | release | Necessary if the properties have different release ** |
DailyAvailability | rating & review | Useful if you want to put the stars + reviews here |
DailyRates | closed_to_arrival | If closed_to_arrival=true, that property can’t be booked with the arrival_date, even if it’s available. You should put a message informing the user. |
DailyRates | closed_to_departure | If closed_to_departure=true, that property can’t be booked with the departure_date, even if it’s available. You should put a message informing the user. |
DailyRates | minimum_stay | If search nights < minimum_stay, the reservation can’t be made for that number of nights. You should put a message informing the user. |
** What is the release?
It’s the number of days from today to the first possible check-in date.
For example:
Today is 16/09/2021.
I have an apartment available, but it has release=1.
This means that I can’t make a reservation with check-in 16/09/2021. The apartment will be available for check-in 17/09/2021 onwards.
The most normal values for release are 0 (accepts check-ins for today) or 1 (accepts check-ins starting tomorrow), but there can be others.
When should we read this value?
If the Property Manager uses the same release for all the catalogue (let’s say release=1), the easiest way to deal with this is to put this restriction directly in the calendar datepicker.
If the user can’t pick today in the calendar, then they can’t make a reservation for today.
But, if the Property Manager has different release values for each property, then we can’t use this solution.
In this case, we must read the “release” value in DailyAvailability.
If the arrival_date is 16/09/2021, and today is 16/09/2021, and the property has release=1, then we show a message with something like:
“This apartment is not available for a check-in. Contact us to ask more information.”
or we don’t show the property at all, since it can’t be booked.
This is up to the developer and the client.
Option 2: Show all properties:
We call Catalog()
Catalog("", 0, "en", "test_usr", "test_pwd")
The parameters will be almost the same that when doing a search.
The only thing that changes is the price. We will not show the price of the stay, because we don’t have dates and thus we can’t calculate the prices for a specific interval of dates.
What we can show is the minimum price of the year for that property.
Catalog.minimum_rate → this will give us the minimum price, then we can put something like:
Property page:
COMING SOON
Advanced workflow for a touristic and long-term rental website:
COMING SOON
Add Comment