Note |
---|
IMPORTANT: Do not enable the Dynamic Pricing v2 plugin/functionality in versions prior to 2.21. A bug was found that where if you edit a product that does not have dynamic pricing added to it, the base window is getting automatically created, which could result in dates that are available showing as unavailable. Aspenware has gone ahead and disabled this plugin from all test and production stores on this version. We have also fixed any products that might have already been impacted by this issue to prevent future issues. (Expected to be fixed in 2.21) |
...
The Dynamic Pricing engine enables resorts to set up flexible pricing based on specific dates, the number of days booked from arrival, and pricing tiers that increase as each tier’s quantity is sold out. This allows resorts the flexibility to set demand-based pricing, fluctuating based on high volume days, off-peak days, holidays, and weekends to increase sales and profits.
Table of Contents |
---|
Key Terms
Time Period Group (TPG) - (formerly called Season Type in Legacy Dynamic Pricing)
A Time Period Group (season type) is a collection of Time Periods that share the same pricing rules. Only one Time Period Group can be assigned to a product, but a Time Period Group can have many Time Periods assigned to it. All Time Periods within a specific Time Period Group are assigned to the product when the product is assigned to the corresponding TPG. Examples of Time Periods that could be applied to the TPG EARLY FALL: September/October Weekend, September/October Weekday.
Note |
---|
IMPORTANT: Be careful to never Duplicate a Time Period Group name. Consider using a year designation for your Time Period Groups (21-22, for example), so that certain modifiers (Early Fall) can be used from year to year without causing a conflict. |
Time Period (formerly called Season in Legacy Dynamic Pricing)
A Time Period (season) is assigned to a Time Period Groups (TPG). A Time Period (season) is a collection of dates that share the same pricing rules. A season creates a “template” of dates from which an administrator can apply pricing rules across a set of dates. Examples of a Time Period might be Early Fall, or Pre Season. Only one Time Period Group can be assigned to a product, but a Time Period Group can have many Time Periods assigned to it.
Days to Arrival (formerly called Override Windows)
Rewarding a customer a discount for purchasing in advance starts with defining DAYS TO ARRIVAL window. Specifically, the value reflects how many days in advance the customer is booking from the start date of that trip. Common Days to Arrival Windows (formerly called override windows) examples include:
...
Info |
---|
NOTE: Never use a comma when naming a Days to Arrival as it will cause unwanted behavior. |
Base Price
Base is defined as the “Window” or “Rack Rate” of a product. It is used for calculating the percentage value of any online (discounted) price and is required. Base should be the first “price” defined in the Pricing Calendar. Base is reflected in the variants list as with variants only, never any DTA displayed. When defining base, never apply tiers. Base must be defined as the foundation level for every set of variants.
Info |
---|
NOTE: This value is never charged online, but is available as a behind the scenes override window for every dynamically priced product. Base price is synonymous with window rate pricing. It can be used to load “window rates” online and then is used to display the savings a guest recieves through buying online compared to purchasing at the window. |
...
Levels (formerly called Tiers)
A Level (tier) is defined as a pricing tier in which there are defined quantities for a set price. Once that set price has sold out, the next tier (often with a higher price) will take into effect. Levels should be generated in the order in which they are to be consumed, as the priority is set at creation. Use the description field to distinguish between tiers. Priority 1 ties are consumed first. For example:
Tier 1 - $50 - 5 tickets available for purchase
Tier 2 - $60 - 10 tickets available for purchase
Tier 3 - $70 - 10 tickets available for purchase
Tier 4 - $80 - Unlimited tickets available for purchase
Feature Description
The Dynamic Pricing feature within Aspenware Commerce enables resorts to utilize date-based pricing so that flexible prices can be set based on current market demands.Resorts are able to change prices based on date windows that take advantage of high volume days of the week, holidays, or weekends.
...
Products where price changes depending on the reservation date (e.g. during a certain season or on weekends, a product is sold at a higher price).
Products that are not available every day of the season but do not use inventory pools to narrow available dates.
Products that you wish to display the pricing calendar in order to display how much inventory is left throughout the season.
Products that you wish to charge more on more popular dates, using tiers.
Products that offer discounted pricing to guests who book further in advance and then charge higher rates to “last-minute bookers,” using Days To Arrival windows.
Display options
Resorts have the option to display a large interactive calendar where guests can select different attributes such as Age, Number of Days, etc that will change the values displayed on the calendar. Based on the configuration in Aspenware, guests can see:
The number of tickets left at a specific tier
The % savings off the window rate (calculated against the base price defined within dynamic pricing)
The price for available dates
The remaining quantity left at the pricing tier if configured with ‘levels and the remaining quantity left is below the defined threshold.
Available inventory if configured with inventory in the POS and the remaining inventory left is below the defined inventory threshold.
When a date is sold out
When a date is not available
Setup Checklist
Insert excerpt | ||||||
---|---|---|---|---|---|---|
|
1. POS TASKS | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2. COMMERCE TASKS | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Language String, Setting, HTML widget, etc. Task 4 -
Settings
Language Strings
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Dynamic Pricing Module Configuration
|
|
Prerequisite Tasks
Insert excerpt | ||||||
---|---|---|---|---|---|---|
|
POS Tasks
Follow the standard product setup requirements from Configuration: Product Shell.
If you are selling these products on-site, you’ll want to set up pricing for these products so that you can leverage whatever demand-based pricing your POS makes available for on-site sales (i.e. Pricing Seasons in RTP|One)
Commerce Tasks
Install Dynamic Pricing v2 plugin
Configure Core Product
Before dynamically pricing a product, ensure the following is true:
The product is fully set up and prepared for dynamic pricing
The attribute “Start Date” has been added with “[Date] [Dynamic]” added to the Text Prompt field and the control type is “Date picker”.
If utilizing the large pricing calendar view then all required attributes have the Text Prompt [Pricing Calendar]
All attributes and values are configured on the product, and the product attribute combination table is built out fully and perfectly. Ensure the attribute combination table has all necessary attribute combinations and there are no unnecessary rows or duplicates before proceeding.
If the attribute is required to book the core product, such as Age and Number of Days, it is a Required attribute.
If the attribute is an add-on attribute and does not impact the price or SKU (RTP|One product header) of the core product, it should not be Required and should not be present in the attribute combination table. (e.g. An add-on rental to a ticket or lesson should not be required or included in the product attribute combination table).
The SKUs have been entered in the product attribute combination table.
Only combinations that require dynamic pricing show in the combination table. Add-ons should not be included in the combinations.
...
Add Product Classification(s)
Go to Aspenware Commerce > Product Classifications and click Add assignment.
Select the product you created above.
It is required to assign the ‘Is Dynamically Priced’ product classification.
If you’d like to show the large pricing calendar view, scroll to ‘Show pricing calendar view’ and click Assign checkbox.
Optionally if the product has inventory controls and is a multi-day product, you’ll want to allow consecutive multi-day selections. If this is not necessary for your product, skip to the next step.
If you’d like to require consecutive multi-day selection, scroll to ‘Is Consecutive Multi-Day Product’ and click Assign checkbox.
Note |
---|
IMPORTANT: Non-consecutive date selection products cannot have dynamic pricing. |
Click Add.
...
Optional Product Setup
The following steps are optional but are commonly used for dynamically priced products.
Set up inventory pools for the product. See Inventory Configuration for instructions.
Add reloadable media for the product. See Pass Media Reload Configuration for instructions.
Set up [Cutoff Days] and/or [Cutoff Time] in product attributes if you'd like to limit the availability of products within a certain number of days/hours from purchase.
Verify Plugin Dynamic Pricing v2 plugin is installed, enabled, and configured.
Go to Configuration > Local Plugins, search Group ‘Aspenware,’ and verify Dynamic Pricing v2 is installed and enabled.
To enable, Edit the plugin, click on “Is enabled”
Save
Settings, Language Strings and/or HTML Widgets for this Feature
Insert excerpt | ||||||
---|---|---|---|---|---|---|
|
Settings
Setting | Use | Image example (click to enlarge) |
CatalogSettings.DynamicPricingCalendar.PricingCountMessageThreshold | For dynamically priced products utilizing the large calendar view, if the number of products left at the current pricing tier is less than this setting amount, then a message will display notifying guests of how many products are left at the current tier’s price. (note: this setting’s messaging will be replaced with low inventory messaging if the minimum quantity setting “shoppingcartsettings.minimumquantity.quantitymessage” is triggered) |
|
catalogsettings.dynamicpricingcalendar.inventorymessagethreshold | For products utilizing the large calendar view and inventory pools, if the number of available reservations is less than this setting amount, then a message will display notifying guests of low availability. |
|
seasonsettings.startdate | Defines the first day that date-based products are available for reservation. Note: If you operate multiple stores through Aspenware Commerce then this setting is required to be set for “All stores” and each individual store may have a unique setting if desired. | n/a |
seasonsettings.enddate | Defines the last day that date-based products are available for reservation. Note: If you operate multiple stores through Aspenware Commerce then this setting is required to be set for “All stores” and each individual store may have a unique setting if desired. | n/a |
Language Strings
If you are adding the Dynamic Pricing Savings Display to the PDP, you have the ability to show and hide the amount remaining beneath the savings display. Resorts on 2.16 or later will have the amount remaining automatically enabled. If you care to disable this feature follow the instructions below:
Go to Configuration > Languages > Edit
Scroll to the bottom and add the language string Resource Name shown in the table below
Add the text you would like displayed beneath the price on the PDP in the Value field making sure to keep the {CountRemaining} token which will display the inventory # remaining (in the above example {CountRemaining} = 614
Select Add new record.
Resource Name | Value | Location | Example (click to enlarge) |
unity.dynamicpricing.inventoryremaining | Only {CountRemaining} left on this date | Shopping Cart |
Detailed Setup Guide
Create Days To Arrival Windows
Configure Time Period Groups and Time Periods
Define Tiers (Optional)
Open Pricing Calendar to Price Products
Assign Pricing
Export/Import Excel Pricing Spreadsheet
(Optional) Add Dynamic Pricing Savings Display to PDP
...
Note |
---|
IMPORTANT: Once a product has been dynamically priced, Dynamic Pricing cannot be undone. |
1. Create Days to Arrival Windows
Click +DAYS TO ARRIVAL and populate the Name and Days Start Fields. Days Start is the number of days from the arrival date when the pricing window will apply. For example, if setting up an ‘outside of 48 hours’ window, set this to 2 and it will apply two days out from the arrival date if there isn’t a more specific (closer to arrival date) level set that applies to the reservation date.
Note |
---|
IMPORTANT: The Base window is auto-generated when you create your first DTA window. Base is set to “0” days to Arrival, but since it is not an actual price, you must also define a Day To Arrival that includes or equals 0 (Day Of) to avoid $0 products for Day of purchases. Must have “Base” and “Online” both set to 0 at minimum.) |
...
Save
2. Configure Time Period Groups and Time Periods
When first configuring a product for dynamic pricing, you’ll be presented with an option to assign an existing Time Period Group to a product or create a new one.
...
After the product has initially been set up, there are three options available when you click the TIME PERIODS OR GROUPS BUTTON
...
Create a Time Period Group. If a TIme Period Group has already been created for which this product will utilize the same rules, skip this step, and simply assign an existing Time Period Group.
Select + CREATE A TIME PERIOD GROUP, this will be used as a grouping for related Time Periods for example, 21-22 WINTER SEASON would be the Time Period group that will house the following Time Periods: 21-22 Early and Late Season Dates, 21-22 Peak Dates, and 21-22 Off-Peak Dates.
Enter the group name (e.g. 21-22 Winter Season)
Click SAVE TIME PERIOD GROUP
Assign a Time Period Group (TPG) to the product
Select + ASSIGN A TIME PERIOD GROUP
Time Period Groups can be assigned, if they have already been created, but are not currently assigned to this product.
Select Assign Time Period Groups,
Locate and select the TPG select
Click SAVE.
Create a Time Period
Time periods are the pattern of days that you wish to apply a specific pricing strategy. A time period can be defined by days of the week (Saturday, Sunday) or dates (Monday, September 6), or a combination of both.
Enter a descriptive name (e.g. 21-22 Weekends/Holidays)
Order is assigned automatically.
Select an existing TIME PERIOD GROUP (you cannot SAVE without assigning a Time Period Group., so be sure you have defined the group before defining the period or assigned an existing TPG to the product.)
Enter a start date and end date for the period (this can correspond with your season, or go far out into the future, depending on what you are building)
Click on the DAY OF THE WEEK to apply to the schedule or CLICK ON SPECIFIC DATE IN CALENDAR to add that date.
Use the calendar widget to deselect highlighted days that follow the rules defined above to remove them from the season, or to select days that do not follow the rules defined above to add them to the season. Ultimately the days that get added to the Time Period will be the dates that are highlighted on the calendar. In the example below, because Sept 6 is selected, even though it does not follow the pattern of Sat/Sun dates between 8/17 - 10/31, it will be included in the Time Period’s set of dates.
Select + CREATE TIME PERIOD
Repeat for all Time Periods that will be added to the Time Period Group.
HINT: Time Period Groups and Time Periods can easily be shared across products.
3. Define Levels (formerly called Tiers)
Tiers offer the opportunity to sell various amounts of inventory at different prices, on the same day. Some resorts use tiers to attract attention with dramatically reduced prices on only a few tickets, known as loss-leaders, while others choose to sell all products at the same price, and choose to not define or use tiers.
Click + LEVEL to add a level. Levels are automatically Named (Tier 1, Tier 2) in the order they are produced and are consumed starting with the lowest Tier (1) and ending with the highest.
Populate the Description with a helpful descriptor, such as ‘15% discount’ or ‘lowest price’, which will be helpful when you are pricing products.
Click SAVE.
...
Info |
---|
NOTE: If you are using multiple Arrival Windows and defining tiers for multiple Arrival Windows, tiers always have their own individual available quantities for each Arrival Window. So if the ‘48 hours in advance’ Arrival window for a date sells out through Tier 1 and begins selling into Tier 2, once the ‘Day of pricing' Arrival window kicks in, it will start selling back at Tier 1. If you use tiers and multiple Arrival Windows, it is not required (or even recommended) to define tiers for each Arrival Window. In fact, it is most common to only define tiers for a single “further out” arrival window. For example, tiers might be configured on the ‘7 days out’ arrival window, but not for the ‘Day of pricing' or 48 hours in advance' Arrival Windows, which will likely only have one configured “list price” within their window. |
4. Assign Pricing
Click on the Pricing Calendar tab to begin applying pricing to the product.
Use filters to select different variant combinations, in combination with time periods.
In the example, 5 & Under, with the defined DAYS TO ARRIVAL of “10 Days Out” and “A Week Out” are selected.
The Variants you have selected are displayed on the right, and you can select a single time period or multiple time periods to price. Once you have selected your time period, click SET PRICES
Note |
---|
IMPORTANT: Base pricing is required and if not configured may cause unwanted product behavior. Base pricing is also never used as a selling price. |
...
Expand the Base tab by clicking the down arrow, and assign a price. For the BASE only, do not define levels.
SAVE.
...
To Price the remaining variant combinations, simply expand each window, and SAVE after assigning prices and any desired Price Levels and Quantities. SAVE after setting each window, then collapse it and expand the next.
Info |
---|
NOTE: If you are using multiple Arrival Windows and defining tiers for multiple Arrival Windows, tiers always have their own individual available quantities for each Arrival Window. So if the ‘48 hours in advance’ Arrival window for a date sells out through Tier 1 and begins selling into Tier 2, once the ‘Day of pricing' Arrival window kicks in, it will start selling back at Tier 1. If you use tiers and multiple Arrival Windows, it is not required (or even recommended) to define tiers for each Arrival Window. In fact, it is most common to only define tiers for a single “further out” arrival window. For example, tiers might be configured on the ‘7 days out’ arrival window, but not for the ‘Day of pricing' or 48 hours in advance' Arrival Windows, which will likely only have one configured “list price” within their window. |
Click CLOSE when you have finished pricing all the selected Variants.
Priced Products display in the calendar, which will also indicate if Tiers have been defined.
...
Info |
---|
NOTE: You will need to manually clear the cache in admin in order for your price changes to appear in the store to guests. |
5. Export/Import Excel Pricing Spreadsheet Using Legacy Dynamic Pricing Tool (not updated in 2.20)
If using multiple tiers and override windows it is recommended to use Aspenware’s Import Pricing upload to manage pricing. Importing pricing works for all variations of dynamically priced products, including products with tiers restricting the quantity of certain prices, override windows, and more.
...
Once a product is “dummy priced,” or priced with real values, the pricing export can be download and re-imported.
Go to Aspenware Commerce > Import Pricing search for the desired product using the product name, category, or both.
If the product is set up with tiered pricing, there will be two buttons under Import Pricing. Products that have tiers require downloading and uploading two separate spreadsheets.
Import Pricing: This will be used whether the product has tiers or not. If tiers are not set up on a product, this is the only option you will see. Use this link to import pricing for Base pricing and all Override pricing.
...
Import Tiered Pricing: Only visible if the product has tiered pricing setup. Use this button to price tiers and input available quantities for each tier.
Click Import Pricing button > then under the “Download” header complete the following:
Start Date: Enter earliest date you want to update
End Date: Enter the last date you want to update
Click Prepare Import Spreadsheet
Info |
---|
NOTE: Only dates and attributes you have priced or “dummy priced” will show up in the excel file. |
...
Note |
---|
WARNING: For ALL other Override windows, set the available inventory to either 1000 or 9999. This will set the quantity to be unlimited essentially. |
...
Go to Aspenware Commerce > Import Pricing search for the desired product using the product name, category or both.
Click Import Pricing button > then under the “Download” header complete the following:
Start Date: Enter earliest date you want to update
End Date: Enter the last date you want to update
Click Import Pricing Spreadsheet
Click Ok
Info |
---|
NOTE: Likely you will define the same date range as downloaded before. Once uploaded a message will appear detailing how many rows were affected; you can check your Excel file to ensure the total number of rows matches. |
...
If the product being priced doesn’t have tiers, the import is complete. Be sure to check the product in the Dynamic Pricing plugin to ensure prices were properly updated as expected.
To prepare the Import Tiered Pricing (WITH tiers), follow the same steps as above, however, define the “available inventory” quantity to have the inventory that is available at that price before the price bumps to the next tier.
Info |
---|
NOTE:If some override windows should not have tiers (such as Day of Pricing), they will still appear in the export. Filter out or remove pricing rows for invalid Override Windows that should not have tiers when updating the pricing spreadsheet. |
6. (Optional) Add a Pricing Savings Display to the PDP
To show an old price on a product that is dynamically priced follow the instructions below:
Go to Catalog > Products > Select your product.
Select the Advanced tab at the top of the product admin page.
Scroll to the Price widget.
Type the price that you would like your product to be compared to in the Old Price field.
Info |
---|
NOTE: Old price is static and will not change based on different attribute selections made on the PDP. If “Old price” is a greater value than the attribute price it will always display regardless of attribute selection. Old price is only set in the product editor screen and is not defined anywhere in dynamic pricing. |
Known Issues
If you only have one tier defined, the tier price is not showing in the pricing calendar admin view. A tier is set up https://qa.aspenwarecommerce.net/Admin/Product/Edit/839 for all 7 days out windows, but the tiers are not displaying in the pricing calendar admin view. Prices are populating properly in the shop. If I add a second tier and price both tiers, the tiered prices show.
...