Setup Checklist
This section is a comprehensive and high level summary of all tasks and prerequisites required for this feature to function properly. This section is purposed for use after an administrator is familiar with configuring this feature as an “audit” checklist. For detailed set-up instructions, jump down to “Prerequisite Tasks” and “Detailed Setup Guide” and then follow up with this checklist to ensure all steps are completed.
1. POS Tasks | |
Confirm that in RTP|One the Inventory Pools are configured on the correct component code and in Siriusware Max4Sale are configured for the correct DCI. REQUIRED | PREREQUISITE |
2. Infrastructure Tasks | |
---|---|
Confirm that the Azure function app is set up and configured to the desired frequency, and the order lock buffer is set to at least 60 seconds. - REQUIRED | PREREQUISITE |
Confirm the following setting is set in Azure on the Inventory Function ‘OrderLockRemovalBufferInSeconds’. REQUIRED | PREREQUISITE |
For multi-store resorts, there’s an Inventory Sync function app setting for StoreID to allow the administrator to specify which season start/end dates to use. If the value is not set, the default storeID 0 (all stores) is used. OPTIONAL | PREREQUISITE |
3. Aspenware Commerce Tasks | |
Confirm that the Aspenware Commerce products that will have inventory assigned to them are fully configured and possess a properly configured “Start Date” attribute. REQUIRED | PREREQUISITE |
If the product you are configuring is a multi-day consecutive product, i.e. a 2-day lesson, ensure that the classification “Is Consecutive Multi-Day” is added. - REQUIRED | PREREQUISITE |
If you desire to display an “inventory running low” message on the pricing calendar ensure that the product you are adding inventory for is also configured with dynamic pricing, the pricing calendar display, and that the inventory threshold is set to your desired threshold. - OPTIONAL | PREREQUISITE |
Ensure the setting ‘ecommercesettings.productinventory.cachetime’ is set to your desired cache time. - OPTIONAL | PREREQUISITE |
Update language strings OPTIONAL
| PREREQUISITE |
Inventory is mapped to product or product variant in the Inventory Pool plugin. -REQUIRED
| DETAILED SETUP |
Prerequisite Tasks
This section describes all requirements that must be completed before you can begin setting up this feature. Once these tasks are complete continue to the next section.
1. POS Tasks
Confirm that Inventory pools in RTP|One or Max4Sale in Siriusware are configured with the correct dates and amounts and that, in RTP|One, the Inventory Pools are configured on the correct component code and, in Siriusware, Max4Sale is configured for the correct DCI.
IMPORTANT: Newly created setup in Aspenware’s Inventory Pool plugin takes a minimum 1 hour to initially sync to Aspenware Commerce. Meaning inventory will not show up on the PDP until this sync is complete.
2. Infrastructure Tasks
Confirm that the Azure function app is set up and configured to the desired frequency for syncing. Aspenware recommends every 5-20 minutes. More frequent syncs could cause slowdowns on the resort POS, less frequent syncs would extend the time for inventory changes from the POS to be visible on the store. This task must be completed with an Aspenware Representative.
The following setting is set in Azure on the Inventory Function ‘OrderLockRemovalBufferInSeconds’. This should be set to the amount of time it takes for the inventory function to run in your environment. The default is 60 seconds.
For multi-store resorts, there’s an Inventory Sync function app setting for StoreID to allow the administrator to specify which season start/end dates to use. If the value is not set, the default storeID 0 (all stores) is used.
3. Commerce Tasks
Confirm that the Aspenware Commerce products that will have inventory assigned to them are fully configured and possess a properly configured “Start Date” attribute. If attributes change after inventory has been assigned, these assignments will need to be re-done. See the Configuration: Product Attributes documentation for more information.
If the product you are configuring is a multi-day consecutive product, e.g. a 2-day lesson, ensure that the classification “Is Consecutive Multi-Day” is added.
4. Settings, Language Strings and/or HTML Widgets for this Feature
This feature may require updates to the following settings, language strings and/or HTML Widgets. Learn more about how to update and create Settings, Language Strings, and HTML widgets follow the links to the respective section.
Settings
If you desire to display an “inventory running low” message on the pricing calendar ensure that the product you are adding inventory for is also configured with dynamic pricing, the pricing calendar display, and that the inventory threshold is set to your desired threshold.
See the documentation on setting up Dynamic Pricing and Pricing Calendar View.
The inventory threshold can be configured from Configuration>Settings>All Settings (advanced). Search for the setting name ‘catalogsettings.dynamicpricingcalendar.inventorymessagethreshold’. Click Edit, define your desired threshold as the value, and click Update. When configured, if inventory for a date goes below this threshold the “low inventory” message will be displayed on the product’s pricing calendar below the price. (See example below.)
Ensure the setting ‘ecommercesettings.productinventory.cachetime’ from Configuration>Settings>All Settings (advanced) is configured and the value equals the desired product inventory cache time in minutes. When inventory becomes available to the front end through the function, this cache setting defines how long the front end caches the data. Though the inventory function and cache settings don’t rely on each other, to ensure the front end always has the most current inventory data, the cache value is recommended to be set to 1 minute less than your inventory function frequency setting. So if you have set your inventory function to run every 5 minutes, the cache time should be set to every 4 minutes.
Language Strings
When a guest attempts to add inventory to the cart when and is none available. A “toast message” pop-up will appear:
Optionally, the PDP can display a message below the “Add To Cart” button when inventory on a selected date is below the threshold defined in the inventory threshold setting. To remove this from displaying on the PDP, the language string can be deleted.
NOTE: Currently the product must also be dynamically priced in order to show inventory on the PDP.
Resource Name | Display Area | Default Value |
---|---|---|
product.availability.outofstock | Toast message | This product is not available. |
shoppingcart.quantityexceedsstock | Toast message | Your quantity exceeds stock on hand. The maximum quantity that can be added is {0}. |
unity.dynamicpricing.inventoryremaining | PDP below “Add To Cart” button | {CountRemaining} left on this date |
Detailed Setup Guide
This section describes all required steps to set up the feature after prerequisite tasks have been completed.
Create/Edit Inventory to Product Assignments
(Optional) Configure Radio Button Date Selection for Inventoried Products
(Optional) Configure Hidden Inventory
1. Create/Edit Inventory to Product Assignments
Go to the Aspenware Commerce > Inventory Pools page in Admin.
Select the product in the Product drop-down (in alphabetical order.)
If the selected product has attributes, the attribute values will display below as checkboxes. Select the attribute values for the attribute combination requiring inventory pool assignment. Do not select multiple values for the same attribute (e.g. Morning and Afternoon if the customer will never select two options for the same attribute). These combinations should align with the Attribute Combination values on the product.
NOTE: If the entire product requires inventory and this is not specific to a variant, do not check any boxes to assign inventory at the product level. Additionally, if a single attribute of an attribute combination controls the inventory, then only that attribute needs to be selected in the checkboxes.
Example of an inventory pool assigned at the product level
Example of an inventory pool assigned at the product variant level with an inventory location defined
IMPORTANT: Inventory location is only available to resorts using RTP|ONE and is not supported with Siriusware.
In the Code(s) field, enter the code that is appropriate for your POS.
For RTP: Enter the product component code for the product variant that is associated with the appropriate inventory pool. (The same inventory pool can be shared across different combinations.)
Multiple codes can be entered as a comma-separated list. If a product has multiple components with inventory, inventory is presented as the lowest amount available across all inventory pools.
If the product or attribute combination utilizes multiple inventory pool locations, specify the inventory pool location code in the Location field. Only add one location. If a specific product attribute combination maps to a specific location, then all the attribute values for that combination must be checked above before entering the component codes and location.
For Siriusware: A full DCI is required. Enter the DCI with pipe characters separating Department, Category, and Item (i.e. DEPARTMENT|CATEGORY|ITEM) in the code field.
In the event that you set Max4Sale at the Department or Category level in Siriusware this is supported. You must map any Siriusware item that exists within that department and/or category to either the product level, attribute combination, or a single attribute of an attribute combination. Aspenware’s system logic will identify that inventory is set at the level you have configured, and apply the available inventory to your product.
NOTE: For DCI entry, the pipe character can be typed by holding down shift and the forward-slash key at the same time.
IMPORTANT: Never add an inventory mapping without a code, this could take down your site as the inventory function doesn’t know how to compute these entries.
IMPORTANT: In order to prevent errors, you will not be able to update a component code while there are orders that are unprocessed or an active lock in a shopping cart. You will also be unable to delete an entry in the Inventory Pool plugin when the entry is part of a ready, failed, or processing order. You will see red triangles in the last column when this occurs:
If the product or product variant utilizes multi-day inventory pools (2-7 units/days), then select the number of days or units from the Number Of Days (Optional) drop-down.
IMPORTANT: If configuring >1 day as the number of days, ensure that the product classification “Is Consecutive Multi-Day Product” is added to the product as well.
From the Aspenware Commerce > Product Classifications page in Administration click Add Assignment, select the Category containing the product requiring assignment from the drop-down. Do not select any attributes when assigning this classification.
Select the desired product from the Product drop-down.
In the Classification table, click the Assign checkbox for Is Consecutive Multi-Day Product and Add.
Define the duration of the inventory cart lock by entering the number of seconds the lock should last in the Lock Timeout field. If set to 0, the system will automatically set to 900 seconds (15 minutes.) Aspenware recommends no less than a 10-minute lock timeout (600 seconds.)
In the screenshot below, the Adult Group Lesson, which is mapped to RTP|One Product Component Code 2000, has a lock that will expire 15 minutes after the shopper selects it. Below that, the Adult Group Lesson - Dynamic, mapped to RTP|One component code 2500, will expire in 10 minutes.
Leave Frequency Type blank or set it to once daily if this product should only have inventory synced from the POS once daily. This setting is reserved for inventory pools that have high availability and therefore do not need to be synced as often as products with only a few slots available. For example, if inventory for lift tickets has 50,000 slots available each day, there’s no need to sync it every 5 minutes. Reducing the amount of inventory that needs to be synced with each execution of the function helps reduce the performance impact on the POS database server. If set to “Once Daily,” the inventory sync will run during the first sync occurring after 12:00 AM local time that day.
IMPORTANT: If more than one row in Aspenware Commerce Inventory Pools administration maps to the same combination of InventoryPoolCode and InventoryPoolLocationCode, and one is set to Once Daily and the other is not, both will sync every time the function runs, and the Once Daily setting will be ignored. The sync will always choose the most frequency syncing option for that combination of InventoryPoolCode and InventoryPoolLocationCode.
Click Add.
HINT: If mapping multiple products to POS inventory codes in a single session, refresh the administration screen between each addition. There is currently a bug that can cause erroneous combinations when inventory assignments are added back to back without the page being refreshed.
Associated codes, locations, Number of Days, and lock timeout seconds can be updated, or inventory pool assignments can be deleted.
2. (Optional) Configure Radio Button Date Selection for Inventoried Products
For products that require date selection but are limited to one to several dates for guests to choose from, such as camps, events, etc. radio button date selection is often a better user experience than forcing guests to locate a specific date in a calendar.
IMPORTANT: If RTP|One is your POS, then set these inventory pools up as Front Load inventory, and only add inventory to the start date. For example, if you have a seasonal program that has 12 sessions but everyone is enrolled in all sessions when they sign up, only define the first session date in this inventory pool. If you need to allocate inventory for each of the session dates, that can be done but must be done using a separate inventoried component tied to a separate inventory pool.
NOTE: Only core products are able to have date attributes added to them. Add-on products always inherit the date of the core product.
Go to Catalog > Products and Edit the desired product
Next, go to the Product attributes section and expand it if it is collapsed.
Click Add new record.
Add the ‘Start Date’ Product attribute.
In the Text Prompt field, enter [Date] [Dynamic]
Select Required,
Select the ‘Date Picker’ Control Type.
IMPORTANT: ‘Date Picker’ must be the control type. Though the date picker is selected, it will appear like a radio button once the following steps are completed.
Next, go to Aspenware Commerce > Product Classification and select Add Assignment.
Select the Category and Product from the dropdowns
Find the ‘Is Radio Button Date’ product classification and check the box next to it in the Assign column.
Click Add.
Optionally, Dynamic Pricing can be used to modify pricing for specific dates.
HINT: A common scenario for radio button date selection includes a Session attribute (e.g. Session 1 and Session 2) where the selection made for Session will filter the available dates. In this case, ensure that inventory pools have been assigned for each Session value in the Inventory Pools plugin.
3. (Optional) Configure Hidden Inventory
Inventory can be added to season products so that the second they are sold out, they are no longer available for online purchase. When inventory is added to a season product, there is little visible change to the UI, meaning a date attribute will not be visible on the PDP, but it will be selected behind the scenes. This configuration is called "hidden inventory" or behind-the-scenes inventory.
Because inventory requires a date selection to work in the point of sale system and Aspenware Commerce, these products are actually setup is to use a "behind the scenes" inventory configuration with a hidden date– where the inventory is loaded to a single date - typically the first day of the season.
Follow all of the steps in sections 1 and 2 above to configure the Inventory and Radio Button Date for the product that will be set up with Hidden Inventory.
Next, go to Catalog > Products and Edit the desired product
Next, go to the Product attributes section and expand it if it is collapsed.
Select to Edit the ‘Start Date’ attribute.
In the Text Prompt field, enter [Date] [Dynamic] [Hidden]
Save the change.
HINT: Adding [Hidden] in the ‘Start Date’ Attribute will hide the attribute from being visible to the guest, but it will be selected and used for inventory control behind the scenes.