Configuration: Reservation Products
- 1 Setup Checklist
- 2 Prerequisite Tasks
- 2.1 1. Planning Tasks
- 2.2 2. POS Tasks
- 2.3 3. Commerce Tasks
- 2.4 Settings, Language Strings, and/or HTML Widgets
- 2.4.1 Settings
- 2.4.2 Language Strings
- 2.4.3 HTML Widgets
- 3 Detailed Setup Guide
- 3.1 1. Create Reservation Category
- 3.2 2. Creating Reservation Product Attribute
- 3.3 3. Creating Reservation Specification Attributes
- 3.4 4. Creating Reservation Product
- 3.5 5. Add Product Classifications to Reservation Product
- 3.6 6. Add Dynamic Pricing to Reservation Product (Optional)
- 3.7 7. Add Inventory to Reservation Product
- 3.8 8. Create and Assign Product Prompt to Reservation Product
- 3.9 9. Set Product to Autofulfill
Setup Checklist
Overall Setup Tasks
1. Planning Tasks |
|
Fill out the required planning docs and send over to your Aspenware Representative. Possibly set up a call to review requirements. Required | prerequisite |
---|---|
2. POS Tasks |
|
GPPs created for each reservation type in RTP|One (if using Customer Roles)- Optional | prerequisite |
Customer roles mapped to General Program Profiles in Aspenware Commerce (if using Customer Roles)- Optional | prerequisite |
General Program Profile scheduled task set to run in RTP|One (if using Customer Roles) -Optional | prerequisite |
Stored procedure deployed to RTP|One with table filled out. - Required | prerequisite |
Reservation product headers created for each reservation type - Required | prerequisite |
3. Aspenware Commerce Tasks (Overall) |
|
Inventory display threshold setup - Optional | prerequisite |
Ignore ACL rules setting disabled (if using Customer Roles)- Optional | prerequisite |
Cancellation language strings configured - Required | prerequisite |
Seasons for "pricing" pass reservation products created - Optional | prerequisite |
HTML widget to prompt guest to login configured - Optional | prerequisite |
ecommercesettings.reservationvalidateprompt.cachetime set to 0 - Required | prerequisite |
HTML widget for pricing calendar styling added - Optional | prerequisite |
Customer roles created for each reservation type in AW Commerce Optional | Detailed Setup |
Reservation category assigned all reservation customer roles -Optional | Detailed Setup |
Product Attribute for Passholder Assignment Created - Required | Detailed Setup |
Specification Attribute for IsReservationProduct configured - Required | Detailed Setup |
Specification Attribute for MaxReservations configured - Required | Detailed Setup |
Specification Attribute for IsReservatioCancellationEnabled configured - Required | Detailed Setup |
Specification Attribute for Reservation Cutoff Days [Reservation Cutoff Days] configured - Required | Detailed Setup |
Specification Attribute for Reservation Cutoff Hours [Reservation Cutoff Hours] configured - Required | Detailed Setup |
Work with your Aspenware Representative to Configure the ‘Reservation Product Calendar Styling’ HTML widget if using advanced calendar view. Optional | Detailed Setup |
2. Aspenware Commerce Tasks (Reservation Product) |
|
Assigned reservation customer role to product - Optional | Detailed Setup |
Assigned Pass Reservation Attribute - Required | Detailed Setup |
Product Attribute Combination table generated with Pass Reservation Attribute Row - Required | Detailed Setup |
[Pricing Calendar] in text prompt for Pass Reservation Attribute - Optional | Detailed Setup |
[Hidden Signed In] in text prompt for Pass Reservation Attribute - Required | Detailed Setup |
Assigned MaxReservations Spec Attribute - Required | Detailed Setup |
Assigned IsReservation Spec Attribute - Required | Detailed Setup |
Assigned IsReservationCancellationEnabled Spec Attribute - Required | Detailed Setup |
Assigned Reservation Cutoff Hours [Reservation Cutoff Hours] Spec Attribute - Required | Detailed Setup |
Assigned Reservation Cutoff Days [Reservation Cutoff Days] Spec Attribute - Required | Detailed Setup |
Product Header Code added -Required | Detailed Setup |
Date attribute added with [Date] [Dynamic] [Inline Calendar] in text prompt - Required | Detailed Setup |
Assigned to attribute added with { "lock": true } [Assigned To] in Text Prompt - Required | Detailed Setup |
Min and Max cart quantity set to 1 -Required | Detailed Setup |
Set to autofulfill -Required | Detailed Setup |
Dynamic pricing classification added - Optional | Detailed Setup |
Renewal lock classification -Required | Detailed Setup |
Requires Assignment classification -Required | Detailed Setup |
Pricing calendar classification - Optional | Detailed Setup |
Setup for Dynamic pricing (in dynamic pricing tool) -Optional | Detailed Setup |
Product prompt assigned - Required | Detailed Setup |
Inventory pool setup - Required | Detailed Setup |
HINT: Want to take it a step further? Check out our Reservation training webinar here.
Prerequisite Tasks
1. Planning Tasks
IMPORTANT: Aspenware recommends agreeing to to professional services engagement with Aspenware to set up. These projects are typically between 5 -20 hrs of Aspenware time depending on complexity and amount of product build Aspenware is helping with.
Reach out to your Aspenware Representative to set up a call to talk through your requirements and put a project plan together. From here, we’ll complete the following table and design your stored procedure custom to meet your needs. Prior to this call read through and complete the following worksheets for your product mix.
If you would like to skip this step - complete the forms and send them to your Aspenware Representative with the following table completed. It is not recommended to skip this call as there are nuances to make sure you and other resort stakeholders understand from a guest communication perspective that makes a call most valuable.
Info Required for Reservation Setup:
Item | i.e. Year-Round Pass holder | i.e. 5 Day Pass holder |
Initial Sale Product(s) - Product component code(s) | ie. 10536 (adult) | ie. 10537 (adult) |
Reservation Product(s) - PHC | ie. 10545 | ie. 10547 |
Number of Reserveable Days | Unlimited | 5 |
Rolling Days? (Mark N if Fixed) | Y | N |
General Program Profile Code For Rez Category Access (Optional - will be assigned to all members of Household) | ie. 4550 (Household Role) | ie. 4550 (Household Role) |
Penalty for Skipping? (Y/N) (Optional) | Y | N |
Describe Desired Penalty (Optional) | Miss two days, can't book for next 7 days | N/A |
Cancellation Enabled (Y/N) | Y | Y |
Cancellation Window (When will you not allow Cancellations after?) | Midnight the day before | Midnight the day before |
Add. Notes | Add additional requirements here | Add additional requirements here |
2. POS Tasks
To enforce the reservation date limitations and to fence the product to only eligible guests, Aspenware Commerce checks whether guests are eligible for products based on other purchased products on their profile. To perform these checks, a custom Aspenware stored procedure is required to be deployed and configured in RTP|One. Talk to your Aspenware Representative to get this functionality deployed in your RTP|One environment.
DETAILS: When the stored procedure referenced above is called, it references the access rule on the customer’s profile or previously purchased products and grants eligibility to purchase the $0 reservation product. Once the $0 reservation product is purchased, another 1-day access product will be active on the customer’s profile in RTP|One.
Create your reservation product headers in RTP|One for each reservation product. The Product Header Code used for these products MUST be a product header with access added to it and the access component MUST be set up as always pre-load. These must be set up for 1-day of access based on the Product Date.
Create your core Pass Product and your Reservation Product in RTP|One for each offering (age, # of days, etc).
Core reservation product header setup should:
Be priced to the total you want the guest to pay.
Has an access component, like other season passes (always preload), but the access rule is NOT set up under Access Rule Location Group. This access is for eligibility, not lift access. The Access Rule Product Type entry is required which is used to reference how many total reservation days are allowed.
Have a media component for output per your resort’s requirements.
Reservation product header setup should:
Be priced at $0 (Aspenware functionality doesn’t support any other price points for reservation products).
Have an access component, like other 1-day lift tickets, to grant lift access for the product date only.
Include no output/media component.
NOTE: In order to record a skier day statistic when this access is scanned, you’ll want to set up a Usage product with a skier date stat. The actual Access product at the $500 will never be scanned, so if you want a skier stat we recommend setting up Usage products (Auto-Post).
In addition to deploying a stored procedure, General Program Profiles will need to be created for each reservation type you will be using if taking advantage of Customer Roles functionality. Talk to your Aspenware Representative about how to best set these up.
If taking advantage of Customer Roles functionality, as part of the RTP|One reservation stored procedure, Aspenware will be setting up a scheduled task to run every minute that will assign General Program Profiles to guests and household members based on whether they have purchased the product that is eligible for reservation products.
3. Commerce Tasks
Customer Roles are created in Aspenware Commerce and mapped to RTP|One General Program Profiles via the Role Configuration Plugin.
Go to Customers > Customer roles and select Add new.
Name the role according to the reservation type (i.e. Unlimited passholder) and click Save (all other defaults remain unchanged)
Associate the customer role in Aspenware Commerce to the RTP|One General Program Profile ID by going to Aspenware Commerce > Role Configuration.
Choose the Customer Role recently created from the drop-down.
In the External Role Id field, enter the General Program Profile ID. Leave the other fields blank and select Map to save.
Settings, Language Strings, and/or HTML Widgets
Settings
To configure the following settings, go to Settings > All settings (advanced) and enter the setting name into the Name field of the Search box.
Define the store-wide setting ‘catalogsettings.dynamicpricingcalendar.inventorymessagethreshold’ at the desired threshold to notify guests of low availability.
Set the store-wide setting ‘catalogsettings.ignoreacl’ to false, which enables customer roles to be set at the category level.
Set the store-wide setting ‘ecommercesettings.reservationvalidateprompt.cachetime’ to 0, which enables cancellation requests to immediately take effect on the PDP.
Language Strings
Instructions for updating this language string can be found here.
Update ‘reservation.cancel.modal.text’ if “Are you sure you want to cancel this reservation?” is not desired as default.
Update ‘reservation.cancel.modal.title’ if “Reservation Cancellation” is not desired as default.
Update ‘reservation.cancel.fail’ if “We were unable to cancel your reservation. Please contact services at ###-###-#### for assistance” is not desired as the default.
HTML Widgets
Instructions for updating or adding HTML Widgets can be found here.
Configure 'Reload/Reservation Sign In Message' using HTML Widget.
Configure ‘Reservation Product Calendar Styling’ and update category SEO name using HTML Widget.
Detailed Setup Guide
Create Reservation Category
Create Reservation Product Attribute
Create Reservation Specification Attributes
Create Reservation Product
Add Product Classifications to Reservation Product
Add Dynamic Pricing to Reservation Product (Optional)
Add Inventory to Reservation Product
Create and Assign Product Prompt to Reservation Product
Set Product to Autofulfill
1. Create Reservation Category
Create a new category and limit visibility to this reservation category by customer roles. Map all relevant reservation roles to that category by
Go to Catalog >Categories.
Enter the Category name for the reservation category.
Ensuring the view mode is set to Advanced by toggling the Basic/Advanced button.
In the Mappings section, go to the Limited to customer roles field and select the customer roles that have eligibility to see this category. (Assigning customer roles to reservation products will be covered below.)
(Optional) Work with your Aspenware Representative to Configure the ‘Reservation Product Calendar Styling’ HTML widget if using the advanced calendar view.
2. Creating Reservation Product Attribute
Create a new product attribute that will be used to communicate to the guest that they must login in order to purchase this product once the attribute has been added to the product. These will need to be assigned to the product in a later step but must be created first.
Go to Product > Attributes > Product attributes.
Select Add New.
Enter a name for your new attribute in the Name field/ (i.e. Requires Passholder Assignment.)
Click Save and Continue Edit.
Expand the Predefined Values section by clicking the + icon.
Select Add a new value.
In the Name field, type in the new value ‘Must be passholder to purchase [Reload]’
Click Save.
Example of HTML widget showing the sign-in prompt.
3. Creating Reservation Specification Attributes
Create specification attributes to drive the functionality of the reservation product. These will need to be assigned to the product in a later step but must be created first.
These classifications will do the following:
Classify a product as a passholder reservation product.
Restrict the max number of reservations a guest can have for a reservation product.
Define whether a reservation day can be proactively canceled by a guest.
Define the cutoff window for when a reservation date can no longer be canceled.
To create Reservation Specification Attributes:
Go to Catalog > Attributes > Specification attributes to get to the Edit specification attribute details page and click Add new to create the following attributes.
In the Name field, type the name of the desired attributed (see below)
Click Save and Continue Edit.
Click Add a new option.
Enter the appropriate value for the attribute in the Name field (see below) and click Save.
Create IsReservationProduct Attribute
In the Name field, type ‘IsReservationProduct’
Enter ‘YES’ in the Name field and click Save.
Create MaxReservations Attribute
In the Name field, type ‘MaxReservations’
Enter ‘count’ in the Name field and click Save.
Create IsReservationCancellationEnabled Attribute
In the Name field, type ‘IsReservationCancellationEnabled’
Enter ‘YES’ in the Name field and click Save.
Create Reservation Cutoff Days [Reservation Cutoff Days] Attribute
This specification attribute determines the cancellation window dates or the latest date that a guest may cancel their reservation before the cancellation button is removed as an option from the Aspenware Commerce site. The default for days is 0, which allows guests to cancel unused reservations on the day of their reservation. If you would like to restrict guests to the day before (e.g. days = 1) or earlier, enter additional integers.
(Note that the instructions below are slightly different than previous product specification attributes.)
In the Name field, type ‘Reservation Cutoff Days [Reservation Cutoff Days]’
Enter ‘0’ in the Name field and click Save
Click Add a new option and enter '1' in the Name field to restrict guests from purchasing the reservation product to the day before and click Save
Save
Create Reservation Cutoff Hours [Reservation Cutoff Hours] Attribute
This specification attribute determines the cancellation window time or the latest date and time that a guest may cancel their reservation before the cancellation button is removed as an option from the Aspenware Commerce site. The default for time is 0, which allows guests to cancel unused reservations on the day of their reservation.
(Note that the instructions below are slightly different than previous product specification attributes.)
In the Name field, type ‘Reservation Cutoff Hours [Reservation Cutoff Hours]’
Enter the time of day in military time for when a reservation can no longer be cancelled (e.g. 13:00.)
4. Creating Reservation Product
Go to Catalog > Products > Add New. Follow the simple product set up instructions Configuration: Product Shell and include the following:
Within the Inventory section, set both Maximum Cart Qty and Minimum Cart Qty to 1. (This setting prevents guests from inadvertently adding the same reservation day for the same guest to cart more than once.)
Select the appropriate customer role(s) from the Customer Roles drop-down list and click Save.
Scroll to the Product Attributes section and click Add a new attribute. Add the following attributes (make sure each is marked “Is Required”):
Add the following attributes (make sure each is marked “Is Required”):
Attribute | Text Prompt | Control Type | Required |
Start Date | [Date] [Dynamic] [Inline Calendar] | Date Picker | Yes |
Passholder Required Attribute | [Pricing Calendar] [Hidden Signed In] | Radio button list | Yes |
AssignedTo | { "lock": true } [Assigned To] | Textbox | Yes |
Add Attribute Value to Requires Passholder Assignment attribute by selecting Edit next to the Passholder Required Attribute (attribute created above).
Scroll down to Values and click Add new.
Enter Name followed by [Reload] (i.e. For passholders only [Reload]), check the box Is pre-selected and click Save.
Figure Above of Pricing Calendar Display for reservation product
Figure above is of reservation product detail page when not logged in - notice attribute value is overlaid with a message and link to sign in.
Figure above of reservation product detail page when logged in - notice attribute value is hidden
Add attribute combination to the combination table by returning to the Edit Product Details page, scroll down to the Product attributes section, and click the Attribute combination tab (this will give you an attribute that can be dynamically priced.)
Select Add combination.
Select the radio button (there should only be one) that applies to the attribute: Requires passholder assignment.
Add Product header code for reservation product in SKU field and click Save.
To create Product Specification Attributes:
On the Product details page, scroll to the Specification attributes section and click Add attribute to create the following specification attributes.
Add the new production specification attributes by entering the values below on the Add a new product specification attribute page.
Add the IsReservationProduct specification attribute by entering the following values:
Attribute type: Option
Attribute: IsReservationProduct
Value: YES
Allow filtering: no
Show on product page: checked
Display order: does not matter
Add the MaxReservations specification attribute by entering the following values:
Attribute type: Custom Text
Attribute: MaxReservations
Value: Enter max number of days
Allow filtering: no
Show on product page: checked
Display order: does not matter
Add the IsReservationCancellationEnabled specification attribute by entering the following values:
Attribute type: Option
Attribute: IsReservationCancellationEnabled
Value: YES
Allow filtering: no
Show on product page: checked
Display order: does not matter
Add the Reservation Cutoff Days [Reservation Cutoff Days] specification attribute by entering the following values:
Attribute type: Option
Attribute: Reservation Cutoff Days [Reservation Cutoff Days]
Value: Select from pre-defined option with cut off days numeric value
Allow filtering: no
Show on product page: yes
Display order: does not matter
Add the Reservation Cutoff Hours[Reservation Cutoff Hours] specification attribute by entering the following values:
Attribute type: Custom Text
Attribute: Reservation Cutoff Hours [Reservation Cutoff Hours]
Value: Enter reservation cutoff hour in military time
Allow filtering: no
Show on product page: checked
Display order: does not matter
When your specification attributes are fully added, the specification attribute table should look like the table below (if you were to cut off reservations at midnight the day before.)
When your specification attributes are fully added, the specification attribute table should look like the table below (if you were to cut off reservations at 1:00 pm the day of the reservation.)
5. Add Product Classifications to Reservation Product
Go to Aspenware Commerce > Product Classifications.
Search for your product in the Product field and click Add Assignment to add the following assignments:
Requires Assignment
Renewal Lock Product
Dynamic Pricing Days to Arrival (optional - only use if dynamically pricing and/or desire is to remove/block days using dynamic pricing tool in addition to inventory pool controls)
Show pricing calendar view (optional - only use if dynamically pricing and a) desire to show inventory pool quantities left on the pricing calendar and/or b) desire to show dynamic prices)
6. Add Dynamic Pricing to Reservation Product (Optional)
Go to Aspenware Commerce > Dynamic Pricing
Search for your product and click Edit Override Windows.
Add the following to create a Window:
Window Title: Online
Display Order = 101
Days Out = 0
Days Out End = 10000
Track Quantity = True
Type = Price
Edit Pricing by going to Aspenware Commerce > Dynamic Pricing.
Search for your product and Select Edit Pricing.
Select Product Variant(s), select Base, select Show Schedule.
Choose Sale Periods or Seasons to edit and select Edit Date Range and define $0 price for Base.
Go to Aspenware Commerce > Dynamic Pricing >
Search for your product again and Select Edit Pricing.
Select Product Variants, select Override, select Online, click Show Schedule.
Select Seasons or Sale Periods to edit and click Edit Date Range.
Define price = $0
Define quantity = 10,000
7. Add Inventory to Reservation Product
Go to Aspenware Commerce > Inventory Pools and select product from the Product drop-down.
Enter the product component code(s) that have inventory added to it in RTP|One in the Code(s) field.
If the inventory pool has multiple locations configured, add a location code in the Location field, but this is only required if more than one location is defined on the inventory pool.
Only single day reservation products are supported, so Number of Days should be set to 1 only.
Set Lock Timeout to 900 (this is the seconds that inventory will be “protected” in a guests’ cart.)
Click Add.
8. Create and Assign Product Prompt to Reservation Product
Go to Aspenware Commerce > Product Prompts and click Add Product Prompt.
Enter the following values into the fields::
Code: (from RTP Stored Procedure Prompt)
Check Validate on Checkout Assignment
Check Is Validation Prompt
Check Is Required
Do NOT Check Prevent Duplicates
Check Is Reservation Validation
Click Add.
To assign the product prompt to a product, go to Aspenware Commerce > Product Prompts and click View Assigned Product Prompts.
Click Add Product Prompt Assignment.
Select the reservation product from the Product dropdown and choose correct Reservation Product Prompt.
Click Add.
Repeat Product Prompt Assignment for each reservation product.
9. Set Product to Autofulfill
Set up the reservation as an autofulfill product.
Go to Aspenware Commerce >Autofulfill plugin.
Select the reservation product from the drop-down.
Check the autofufill box and click Save.