Ensure that any rate allowed online is active and also has Allow Online checked. Otherwise the guest will not be allowed to book the item.
The pages themselves have a completely different look and are responsive. At least one new page needs to be setup on your system. See below for details.
Currently there are 5 functions, and 3 new ‘widgets’ (and counting), that guests can carry out online:
Before you get started there are some things you need to have beforehand:
For Reservations, Payments, and Gift Certificates, you will need:
There is some commonality in all the cases where a web page needs to be setup. When you see a line like:
<script type="text/javascript" src="https://xxx.opalstacked.com/online/getapi?app=book31"></script>
xxx refers to your Roam ID. If you login with abc.opalstacked.com then your Roam ID is abc.
The <script> line above must go at the end of the <body> section of your page, after all other html code.
No longer do any pages need the getapi?app=base22 line. (new for V3)
For reservations you will need five specific pages setup:
These are your current pages augmented to include Roam. Roam augments your pages by turning specially constructed buttons into links to book an item.
And, when the guest has an item in their cart, a small area will appear at the bottom of the page allowing the guest to view their cart, change their info, or checkout.
<script type="text/javascript" src="https://xxx.opalstacked.com/online/getapi?app=book31"></script>
To make your button (or any other element) clickable it must have a class of R3Book. Also, your button needs to have certain data attributes. These attributes are, depending on item type:
An example button:
<button class=’R3Book’ data-cat=’A’ data-code=’D1′ data-rate=’1′>
Book Now
</button>
New in Version 3 is that the R3Book elements are not treated as buttons opening a popup but as links to a page. The example button above will get turned into a link:
<a href='yourbookingpage?cat=A&code=D1&rate=1'><button><a>
Rather than setting up a clickable element, such as a button, and having Roam turn it into a link, you can just create the link instead, following the pattern above. But do not add the class=’R3Book’ or else Roam will try to create a link around your link.
This is the page where the guest makes their choices about the item they are booking. This is new to Version 3. In past versions this was a popup rather than a separate page. This change was done for a number of reasons:
An example of the URL for the above button would be:
bookingpage.html?cat=A&code=D1&rate=1
If your booking page was named bookingpage.html.
The name of your booking page needs to entered into the Booking entry under the Reservations section in your company setup. The http portion is not required.
Your booking page needs to have the following line:
<script type="text/javascript" src="https://xxx.opalstacked.com/online/getapi?app=booking31"></script>
Also, the page needs to have a div with an id of R3Booking:
<div id='R3Booking'></div>
Note the difference between book3 for the item pages and booking3 for the booking page.
It would be best if this page was very minimal. A responsive logo, perhaps some css to set the base font and colors.
This is where the guest would login, pay for, and confirm their reservation. If they do not have an account with you then they can create a new one.
The url of this page is entered into the Checkout entry under the Reservations section in your company setup. The http portion is not required.
Your booking page needs to have the following line:
<script type="text/javascript" src="https://xxx.opalstacked.com/online/getapi?app=checkout31"></script>
Also, the page needs to have a div with an id of R3Checkout:
<div id='R3Checkout'></div>
Note the https on the script tag. Your checkout page must be secure, ie https. To use a temporary checkout page for testing, enter it into the spot marked Test to the right of the Checkout page, the Company Setup.
This page is used to thank the guest for making their reservation, and optionally provide them with more information and record the sale in Google analytics.
The url of this page is entered into the Success entry under the Reservations section in your company setup. The http portion is not required.
Your success page needs to have the following line:
<script type="text/javascript" src="https://xxx.opalstacked.com/online/getapi?app=summary31"></script>
You can have Roam display certain information in your page:
For the reservation#, provide an element with an id of ‘R3rsvno’
For the total sale, provide an element with an id of ‘R3total’
If the reservation was placed onto the waitlist, Roam will attempt to show an element with an id of ‘R3waitlist’. An example would be
<div style='display:none' id='R3waitlist'> Text about the waitlist </div>
Not much is needed on this page as it’s simply to inform the guest that there was a massive failure in the reservation process.
The url of this page is entered into the Failure entry under the Reservations section in your company setup. The http portion is not required.
This is where the guest or any group member can make a payment. Your page needs the following line:
<script type="text/javascript" src="https://xxx.opalstacked.com/online/getapi?app=payment31"></script>
Note the difference from the older version, which used app=pac_members22
The page needs to have a div with an id of R3Payment:
<div id='R3Payment'></div>
This URL goes into the Home Page entry under the Payments section of the company setup.
Not the https on the script tag. Your payment page must be secure.
Success and Failure pages are also required, and the URLs are also entered into the Payments section. Roam has no interaction with these pages therefore no Roam code is added.
If you wish to sell Gift Certificates online then you must setup a stand-alone page with the following:
<script type="text/javascript" src="https://xxx.opalstacked.com/online/getapi?app=giftcert31"></script>
The page needs to have a div with an id of R3Giftcert:
<div id='R3Giftcert' data-cocode='x' ></div>
This URL and the URLs for the success and failure page must be entered into the company setup under Gift Certificates.
Note the https on the script tag, your Gift Certificate page must be secure.
The Online waiver pages are all done for you. All you need is a webpage to host them in. The code below is the minimum needed. The code also allows for you to provide the URL with the reservation and group leader numbers so that the guest does not need to enter them.
If your waiver URL was mysite.com/waivers then your URL would be:
https://mysite.com/waivers?rsvno=xyz&glcustno=abc
The code to include on your page for the waivers is:
<script type="text/javascript" src="https://xxx.opalstacked.com/online/getapi?app=waiver31"></script>
The page needs to have a div with an id of R3Waiver:
<div id='R3Waiver' ></div>
Note the use of https, above. Your liability pages should be secure.
Information Request forms are used to gather the names and addresses of prospects, and optionally follow up with them.
This form can work in many ways and thus has quite a bit of configuration.
At the bottom of the <body> section, add:
<script type="text/javascript" src="https://xxx.opalstacked.com/online/getapi?app=signup22"></script>
Note that this is still version 2.2
The request forms require an html <form> element with an id of ‘R3Signup’.
As this form is interactive the email address is the first field requested in order to possibly locate that individual in your Database.
If the email address is on file, then the user must: enter the password to their account, request it be emailed to them, or re-enter their email address.
Configuration occurs 2 ways: hidden fields and specially named inputs.
Hidden Fields
<input type='hidden' name='custno' value=''/> <!-- Leave empty --> <input type='hidden' name='source' value='signup' /> <!-- Leave as signup --> <input type='hidden' name='cocode' value='1' /> <!-- Company # in Roam --> <input type='hidden' name='letter' value='signup.html' /> <!-- Letter name in /signup on server --> <input type='hidden' name='subject' value='Welcome!' /> <!-- Email subject --> <input type='hidden' name='notecat' value='customer' /> <!-- Name of note category to use for comments --> <input type='hidden' name='egrpWA' value='t' /> <!-- Specific email group, if any, otherwise use emlgroup below --> <input type='hidden' name='bcc' value='faxgreg@yahoo.com' /> <!-- BCC --> <input type='hidden' name='page2' value='pac_booking.html' /> <!-- response page -->
Specially Named Inputs
All inputs should follow this pattern:
<input type='text' name='emailadd' size='30' maxlength='50' class='mandatory' data-verbose='Email Address' tabIndex='1' />
Specifically, each field needs a name, an optional class of ‘mandatory’ if the field is mandatory, and data-verbose set to the description of the field, used if the field is mandatory.
List of possible input field names:
List of possible select field names:
List of possible textarea field names:
List of possible checkbox field names:
Form buttons:
Choices populated by Roam:
Other than the country/regions, there are 5 more fields that can be populated by Roam. They are:
These are all optional.
To have Roam create these fields you must include certain elements in the form.
The Preferences , Email Groups, and Info Codes will be populated with check boxes. Use the div styling to contain the display size and scrolling.
Rather than using Roam-generated Group Type and Inquiry values you can set them manually. Create form fields with the names
‘grpcode’ and ‘inqcode’, but do not use a <select>, as Roam assumes that you wish the field auto-populated. A user may only choose one of these fields.
Preferences, Email Groups, and Info Codes can be any type of form field (other than a <select>) and name the fields ‘pref’ + the preference code,
‘egrp’ + the email group code, and ‘info’+ the information code. If an <input type=’text’> field, then value must be a ‘t’. A user should be able to choose any number of these fields.
For a full fledged, stripped down, working form (which you may copy and enhance), see:
http://roam3.adventurebooking.com/pac_signup.html
The dashboard allows a guest to view all of their reservations and quotes. If either one is selected then all of the booked items are shown. If a reservation is selected then the payments and completed waivers are listed. Quotes can be converted to active reservations – space permitting. Also, the guest can make a new payment, email a payment request to another guest, complete a waiver, or email a waiver request to another guest. Also, the guest can purchase a Gift Certificate, as well as update their contact information.
<div id=’R3Console’ ></div>
<script type="text/javascript" src="https://xxx.opalstacked.com/online/getapi?app=console31"></script>
You can now insert an availability calendar of an item right into your webpages. You will need to include the same script as used on your booking pages (app=book3). To have a calendar inserted simply provide a div tag with the class R3Calendar where you would like the calendar to appear.
<div class=’R3Calendar’ data-cat= data-code= data-rate= ></div>
The cat, code, etc are the same as you would supply on an R3Book element (above). The month displayed will be either the month the item is first available, the current month, or the month containing the guest’s arrival date – if they’ve entered that information. If they have, and that information gets changed, the calendar(s) will update.
There is a choice of 3 layout patterns: calendar, which is just simply a calendar with colored dates indicating availability; list, which is a list of the dates with space, one date per line; or string, which is a long line of dates with space, comma separated. All dates are clickable to book. To specify which layout option to use use the attribute data-layout=”, with either calendar, list, or string. Only use list or string when there is a limited list of dates with availability, as dates within the next 2 years are listed.
These are used to list specific items for a certain time frame. The items can be clicked to view a description and there is a Book Now button to book the item. This can be used to list Activities, Lodgings, or Packages. Activities and Lodgings will also display prices. Packages can’t display pricing as the price is dependent upon the items chosen within the package.
These require a div with an id of ‘R3Activity’, ‘R3Lodging’, or ‘R3Pkg’ and an attribute of data-codes=’list of codes’ to display. The codes for Activities and Lodging or just a comma separated list of codes. Packages need to be in the form Package code/Package option#. Multiple codes/opts are separated with commas.
In the item setup you select which rates to use for the price display by checking the ‘Comparison’ check box.
<div id=’R3Activity’ data-codes=”></div>
<div id=’R3Lodging’ data-codes=”></div>
<div id=’R3Pkg’ data-codes=”></div>
<script type="text/javascript" src="https://xxx.opalstacked.com/online/getapi?app=activity31"></script> <script type="text/javascript" src="https://xxx.opalstacked.com/online/getapi?app=lodging31"></script> <script type="text/javascript" src="https://xxx.opalstacked.com/online/getapi?app=package31"></script>
To use Google Gtags to track your online users, add the following code to the head portion of your pages. The code needs to be on any page with a Book Now button, the Booking Page, the Checkout Page, and the Success page.
<script type="text/javascript"> <script async src="https://www.googletagmanager.com/gtag/js?id=GA_MEASUREMENT_ID"></script> <script type="text/javascript"> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'GA_MEASUREMENT_ID'); </script>
The events tracked are: