How do I ....?
Everybody eventually has a question about how to do something specific with the API or within their pages. This section iterates the most common of these.
- How do I use landmarks in my site?
- How do I create a CNAME? Are CNAMES supported?
- How do I link to my template from the API? Why don't the API's deepLinks work?
- How do I mask image URLs?
- How do I build local content?
- How do I retrieve hotel specials and promotions?
- How do I search for board type, i.e. breakfast, lunch, dinner?
- How do I leverage caching?
- How do I resolve "multiple locations found" in hotels version 200631?
- How do I process more than one room type at a time in a "multi-room" booking?
- How do I get the number of pages that will be returned in an availability search?
- How do I properly handle data transfers?
- How do I get handicap accessible properties on my site?
- How can I sell my own products alongside EAN Hotels?
- Which country codes are valid for searches and bookings?
- Can I change the "From" address on the confirmation and cancellation emails to my own?
How do I use landmarks in my site?
Create a list of landmarks for the destination searched and populate a drop down box of possible landmarks where hotels can be searched nearby.
- The user selects a landmark from this drop down list
- The site then does another city availability request using the destination ID for that landmark along with sortMethod=7 to ensure that the results are sorted by distance from that landmark
There are two ways to obtain a list of landmarks:
- Refer to the Hotel Geo Functions outline for the LandmarksForDestinationString Request or the LandmarksForDestinationId Request which returns a destination ID for each landmark
- Download the Landmarks database file from the Database Catalog to populate this list from your own database
Another use of landmarks is the creation of landing pages that highlight key details about each landmark witha search box allowing the user to submit a request for availability near that location. This method creates unique content, which is very important for SEO traffic.
Keep in mind that the more logical options you give users to control and organize their own search results, the more quickly they will convert to a sale. These conversions typically take place within the first or second pages once the results are within the parameters the user is seeking.
How do I create a CNAME? Are CNAMES supported?
Yes, EAN does support CNAMEs!
Find additional instructions on how to set up a CNAME by reading the URL Masking Guide.
How do I link to my template from the API? Why don't the API's deepLinks work?
You can link directly to your template from any step in the booking path between the initial search request and the transition to the final booking page.
The deepLink formats returned by the API currently don't work correctly for several different transition steps when using the latest version of the EAN template, otherwise known as Chameleon.
This issue is currently being worked on in development, but in the meantime follow the deep linking guide on the Hybrid Sites Page for help determining if you're using the Chameleon template and how to create compatible links from your API integration to your template.
How do I mask image URLs?
Mask http://images.travelnow.com/ to your own subdomain by setting up a CNAME on your domain's DNS records to point to the hostname 'origin-images.travelnow.com'. Do not use the IP address(es) for 'images.travelnow.com'.
The image URLs are returned with http://images.travelnow.com/. Since these images are served through Akamai and are from various sources dependent on the visitor's IP address, you will not be able to mask http://images.travelnow.com/ by pointing your DNS to our IP for these URLs as they vary.
- Do not point to a TravelNow IP address. Only use a CNAME pointing to origin-images.travelnow.com.
- Setting up an A record is not a reliable option. All images will break if images.travelnow.com are not served by Akamai with the same IP you use.
- To serve the image from a secure URL, use HTTPS instead of HTTP.
- The hotel images file available from the Database Catalogs provides up to 1.5 million URLs at any time for all properties storing images in the Akamai system. It is not recommended or advised to store all files in advance on your own system since properties change and update images frequently.
- You will be responsible for any customer issues arising from displaying outdated or saved image files on your own pages.
How do I build local content?
Start with downloading the appropriate database files found in the Database Catalogs. Start a program to collect rich destination or hotel content of your own to supplement the content received from our system. Collect reviews and comments from your own customers. Any content you evolve on your own will make your site that much more attractive to both users and search engines.
- As users request content on your site (hotel info or dateless search pages), store additional static information from your API results, such as the expanded list of amenities, for that property.
- Be sure to keep your local database current by downloading and updating for current active properties. Periodically check existing fields in your database against new results and update any new content.
- You'll want new properties added to the system to be included in your local resources, but any INACTIVE properties used in your pages will frustrate and drive away your users. Make sure to implement processes to remove inactive properties at the same time you update your local database of active properties.
How do I retrieve hotel specials and promotions?
- The database does not have a flag where we can specifically call a list of hotel specials.
- Therefore, there is not a way to make an API request just to get a general list of hotel specials and promotions.
- If a property is running a special promotion, it is returned in the pricing data of your API response.
- It is possible to use hotel specials for marketing or other page sales tools by retrieving the Deals and Specials spreadsheet provided in the Affiliate Center and displaying it dynamically.
- You can also use the new Affiliate Center Merchandising Central to obtain widgets, links, and other feeds to use for marketing purposes.
Take advantage of the "promo sort" method in API requests to filter specials to the top of your list
- Use sort=9 (promo sort) to obtain a list of hotels where specials are returned in availabilities.
- This sort method will place properties with special sales or values at the top of your availability list.
- It will not return a simple list of all properties running promotional specials since the request is still date-based.
Last Minute Specials in Choice Destinations
- Since using the promo sort method is based on the dates submitted in the request, any date used within a 1-5 day advance search can return listings that might be advertised to indicate "Last Minute Specials".
- Select up to 5 choice destinations to feature on your site. These destinations should be the 5 most searched and booked destinations on your site as determined by your user statistics and sales logs.
- Run a request for each of your advertised destinations using dates for the upcoming weekend.
- Capture the API data on the first 5-10 best value deals returned which also include promo rates in the results.
- Store this part of the API result to feed into special sections of your site.
- On user searches or landing pages for these destinations, display a secondary search that offers alternative best rate choices to this list as well.
- Whenever displaying rates, be sure to include the dates where the special rates apply from the search.
Example: Try filtering the result using minStarRating=4 to find "Luxury Last Minute Specials" for romantic getaways!
- When adding any other filters to the list, you may need to test several results to get the best requests returning the top 5-10 results for your desired merchandising campaign.
- Here's an example selection of some of the top converting properties that could be used in merchandising from the above process. Any of the data copied below from that result lends itself to excellent merchandising copy:
hotel Id name property Rating promo Description room Description Promo native Currency Code Promo native Nightly Rate Value Add 126913 The New Yorker Hotel 3.5 Stay 1 Nights and Save 15% on Your Stay! Metro Room-1 Queen-Renovated Qn USD 245.65, 271.15 Free Wireless Internet 220355 Adria Hotel And Conference Ctr 3.0 Spring Sale! Save 20% Deluxe 2 Double beds Non Smoking USD 102.40, 105.60 Free Wireless Internet, Full Breakfast, Free Parking 237256 Hotel Alexander 2.0 Sale! Save 25% on this Stay. Shared Bath, 1 Double Bed USD 149.25, 134.25 114218 The Helmsley Park Lane 3.5 Sale! Save 10% on this Stay. Deluxe Park View-2 Double Beds USD 405.00, 405.00 109730 Radisson Lexington Hotel New York 3.0 Best Price Petite Room-Non Refundable USD 219.00, 279.00 266457 Windsor Hotel 2.0 Spring Special Double deluxe 3 USD 168.48, 212.50
How do I search for board type,. i.e. breakfast, lunch, dinner?
There isn't a comprehensive method to specifically search for board type since this isn't flagged in the database as a standardized searchable parameter.
All meal info is part of the amenities list of the hotel information request or found within the "Value Adds" node as a special value included with a room rate on a city or room availability search.
- Both these data values are non standardized, free text entries made directly by the property into the global systems.
- The database catalogs and the city availability request using the amenities filter are attempts to find all logical matches to a standard term for a small set of popular items.
- If the entry is such that we cannot anticipate the match, it may not be included in those instances, but may still be found in the comprehensive amenities lists on the hotel information result exactly as it was entered by the property.
The city availability request can be filtered with a set of popular items where we have attempted to match a specific text.
- Refer to the city availability request outline for a full list of searchable amenities which includes "Complimentary Breakfast".
- Other meal types are NOT included in the text match filters.
- When placing a search using an amenity, the database will run through each property's free text amenities list to match a variety of logical terms.
- If a text match is found, it will include that property in the search results or mark it in the database download file.
Value Adds are not a searchable option since these are returned as additional information in the city or room availability results to indicate special values included in the individual room rate or additional values to a promotional rate. Many times meal offerings may be entered into these fields.
- To take advantage of Value Adds, use the sort method for a promo sort of the city availability request
- This will filter properties with a promotional rate OR a Value Add to the top of the city availability result list.
- It does not filter out properties without a special, it only returns specials or value adds first in the list of available properties for that search.
- The promo sort will also include any properties indicating a Value Add to the top of the list regardless of whether that property also includes a promotional or special rate.
All Inclusive in some cases may be entered as part of the property name. This can be the case particularly with special resort locations where all meals or drinks are part of the room rate.
- Submit a city availability request using "all inclusive" as the propertyName to filter for any possible matches.
- If any property includes the word "all" and/or "inclusive" in its database name, these listings will be returned.
- If no properties at that location include either term in the name as it was entered into the database, no matches are returned.
Filter the list of active properties in the destination by using propertyCategory in a dateless search method.
- Property category can be used to return a list of active properties defined as Resort or All Inclusive listings.
- Note that a dateless search only returns a list of active properties in a destination without regard to availability.
- City or room availability requests for that property will not return results if no availability exists for the dates requested.
How do I leverage caching?
- You can cache any content that is deemed "static" such as hotel info pages or dateless search pages, etc.
- You CANNOT cache any content that is deemed "dynamic" such as rates or availabilities since these are in real time and change dynamically.
- You are not allowed to store any rates or availability.
How do I resolve "multiple locations found" in hotels version 200631?
You will use the HotelGeoFunctions to query for either XML or Web Services for additional locations if you receive a "multiple locations found" message.
By submitting the LocationsByDestinationCityStateCountry Request you will receive the data selections that are found in the option box seen on Travelnow.com.
This gives your visitor the choice of the applicable locations that match their request by the "Look Up system".
LocationsByDestinationCityStateCountry function takes a destination city/state/country and returns a valid hotel location(s). By discerning the city, stateProvince, and country, this will eliminate any confusion identifying which parameters are stateProvince or country if there are identical codes when the system attempts to locate a destination string.
- If "multiple locations" message returned then submit request for LocationsByDestinationCityStateCountry.
- Display the options to the user as seen on Travelnow.com.
- Upon selection, REPLACE the city/stateProvince/country elements in your availability request with <destinationId> to return a successful result for the desired location.
If you always process the HotelGeoFunction on the user's entry, and always send the destination ID to make an availability request, you could give the user an opportunity to enter any destination by city name only and remove any need to identify or process a state and country. In this way, you will automatically determine the destination by the single result, or allow the user to choose from multiple locations found.
Multiple Location errors can be resolved directly with the exception returned in hotels version 3. Update to take advantage of all new enhancements.
How do I process more than one room type at a time in a "multi-room" booking?
There isn't a way to dynamically book more than one room type at a time without special processing and algorithms within your own code.
Due to limitations within the database to process more than one room type in the same multi-room booking, any multi-room bookings you wish to process with more than one room type at a time must be handled independently.
- Collect the user data indicating more than one room to be booked and including all adults/children/childAges per room.
- Split your room availability search to make requests for each RoomGroup/Room individually.
- In this way, you can obtain room availabilities with rates that will accommodate the appropriate submissions.
- Separate booking requests will also be sent for each RoomGroup/Room selection.
In handling this type of process, be cautious of accurate algorithms and TEST THOROUGHLY.
- Any errors in logic or code that create customer service issues or disputes, unnecessary credit card charges, duplicate bookings or inaccurate bookings based on the user's input, are charged back to the affiliate.
This is not a required process and the information is available only for those who wish to submit bookings for more than one room type at a time for a single user.
How do I get the number of pages that will be returned in an availability search?
The actual number of properties that will be returned, or are available in a city, are not known so the number of pages that will be returned overall is also unknown.
When making a request for a list of available hotels in a city, the database uses the number of results requested (or the default of 20, if number of results is not specified) and obtains the first set of properties that fit the search as weighted for marketing order or the indicated sort method. It does not "look" beyond the actual number of properties acquired until requested. So we only the hold inventory for a user session that has been acquired so far until that cache expires and the rates need to be refreshed. This insures better inventory and more stable rate quotes for the millions of user sessions concurrently being accessed. The length of the cache will depend on the number of concurrent user sessions and the volume of traffic at any given time. This can be anywhere from 15 to 30 minutes.
Things to consider for a more efficient user experience and conversion technique:
- By offering the user their own opportunity for sorting and filtering options to fit their needs and that are native to our XML, you can be sure that customers will find what they want more quickly without paging and reviewing every possible availability.
Users convert to sales when they are ready to buy. Even in the shopping stage, they do not search randomly or without purpose.
- They view only properties that are in their price limit, near the specific area they want to stay as a convenience and meet acceptable amenity or star rating requirements.
- By giving users the appropriate sorting and filtering options from the start such as re-ordering by rating or price, or, by searching near a destination or landmark, they will quickly land on results that fit their shopping preferences. In that regard, they will rarely browse more than 2 or 3 pages of results once they have defined their own criteria.
- When users are shopping they will spend much of their time browsing areas of a city to decide what area they want to focus their stay and observing rates in those areas.
- In all cases, users will filter results based on similar criteria and will rarely page for more than a minimum number pages before redefining their sort criteria altogether.
- Therefore knowing the number of results up front is inconsequential to converting the sale. And giving the user the proper tools to narrow their range of choices more efficiently gives them the simpler, and more likely, purchasing options from the start.
It is a poor practice to page through all availabilities in a city in order to acquire the number of pages in a search.
- Acquiring unnecessary data that is not beneficial to the search or the user's needs wastes resources both on the affiliate side and all our systems including accumulating unnecessary access charges to GDS systems if those availabilities are also acquired without need.
- Users will never page through all properties. You can hold them on your site longer and convert them to a sale more quickly by giving them the proper sorting and filtering tools to fine tune their search.
To review the process for paging for more properties see the Availability Request Outline for cacheKey and cacheLocation.
Although hotels version 3 cannot return the total number of availabilities that may be returned from supplier resources, it will return the total number of active properties in the destination searched. Review the activePropertyCount attribute of the hotel list response.
How do I get handicap accessible properties on my site?
To search for hotels that are wheelchair accessible, use that option in the amenities search field of the Hotel/City search request. To send any special info or requests for accessibility, use the specialInfo field where users can input any additional info in the booking request.
You can also sort out the handicap accessible properties in the All Hotel Active file and list them locally on your site by destination.
At this time we do not have a TTY/TDD phone line for hearing impaired users.
How can I sell my own products alongside EAN Hotels?
To sell any non-EAN products, be they tours, shows, lessons, meal packages, or anything not offered directly via the API, you must sell them seperately via the appropriate supplier source or with your own merchant charge account. Our booking system can only process products returned directly by the API. You must be mindful of all launch requirements regarding price breakdowns and display.
Which country codes are valid for searches and bookings?
The two-digit country codes used by EAN are based on the ISO 3166 standard. You can download a complete list of valid country codes from the Geography Data section of our Database Catalog.
Can I change the "From" address on the confirmation and cancellation emails to my own?
Choose this option ONLY if you are capable of supporting any and all customer replies to the address on your confirmation/cancellation emails. By replacing the reply@travelnow.com default address for customer service to your own, you are completely responsible for forwarding any customer service emails to your own address to us. We can still handle customer service for you but we must receive all communications either from you or the customer in order to do so.
If you maintain your own customer service department, your agents can work with ours. However, timely handling of all customer inquiries is critical when cancellation policy windows are in effect. By contract you are responsible and will incur commission chargebacks on any hotel charges that cannot be refunded on customer disputes when service is not handled in a timely manner.
If you understand the above and still wish to change the address on automated system emails, contact us with the replacement email address in order that your request can be reviewed for permission.