Configuration: Loyalty
Setup Checklist
1. Infrastructure Tasks |
|
---|---|
| Prerequisite |
2. POS Tasks |
|
Configure Identity Server for Terms and Conditions - Required | Prerequisite |
3. Commerce Tasks |
|
Ensure Loyalty Plugin is installed - Required | Prerequisite |
Language Strings and Settings
Customize Loyalty Dialog in Aspenware Identity. | Prerequisite |
Prerequisite Tasks
POS Tasks
The Loyalty module in RTP|One is required prior to configuring Loyalty in Aspenware Commerce. Talk to your Aspenware Representative about Loyalty configuration prior to starting this project.
Infrastructure Tasks
Aspenware Commerce must be on version 2.18 or later.
Identity Server can be configured to allow guests to review and execute Terms and Conditions as a part of the account creation or sign-in process. In order to complete this configuration, please collect the following below and then send an email to service@aspenware.com. In the email, request that your Identity server be configured for use with Loyalty. Include all required copy and links, organized by T&C 1, T&C 2, etc. Be sure to include your preference for the default setting (checked or unchecked for each T&C setting.)
Terms & Conditions 1 (T&C 1)- Agreement Copy:
Example: I consent to the Terms of the Rewards Program.
Terms and Conditions 1 - Copy for Link and link for modality
Example: Click here to read terms. (embedded link: www.myrewards.com)
NOTE: Terms and Conditions (T&Cs) will be present on the account creation page, login page, and account capture page in an identical fashion. Only the first (Terms and Conditions-1) will execute an action - enroll the customer in the rewards program. Each additional Terms and Conditions are also customizable but do not trigger any action.
Any additional Terms & Conditions would require Agreement Copy as well as Copy for link and link for modality.
Examples for use of additional Terms and Conditions:
T&C 1 - execute membership. (default setting: box unchecked).
T&C 2 - “I agree that I accept the updated rules and regs of the Rewards program. CLICK HERE TO REVIEW UPDATED RULES. “ (default setting: box checked).
OUTCOMES
T&C 1 would appear for any guest who is not a member of rewards, and by clicking the box and accepting, the guest would enroll in the program. In subsequent logins, T&C 1 would not appear.
T&C 2 would appear on every login, and would not record the action taken by the guest.
If using RTP2021.2, add the setting UseLoyaltyPointsSummary2014Query to the Unity rtp-config.json file for the specific installation of Unity dedicated to the store in question and set to TRUE.
Commerce Tasks
From the Configuration > Local plugins page, install the Aspenware Commerce and Aspenware Commerce Loyalty plugins. These should be typically be installed and enabled by your Aspenware Representative as part of an upgrade.
Aspenware Commerce
Aspenware Commerce Loyalty
Language Strings and/or HTML Widgets for this Feature
Settings
If you are using an external system to manage rewards points, activate by clicking the checkbox, and populate the fields. The API will supply the points to dollars conversion rate to the system. It does not need to be populated in Aspenware Commerce, but does need to be configured …. An easy-to-use screen has been created to configure these settings rather than the typical method of changing settings through Administration.
Go to Configuration > Settings > Reward Points.
Scroll down to the External Rewards Fulfillment section.
Configure as shown (click to enlarge):
NOTE: If you prefer to edit the settings manually through Configuration > Settings > All settings, please see the table below for searchable setting names.
Setting Name | Value configuration(s) | What it does |
---|---|---|
loyaltysettings.externalfulfillmentenabled (Checkbox) | Example: True (Checked/Enabled) | Enable or Disable external fullfillment. |
loyaltysettings.baseapiurl | Example: https://api.boyneresorts.io/loyaltytest-aw/api/ | Provide the endpoint URL for accessing user Rewards data |
loyaltysettings.programcode | Example: 1 | Define the loyalty program code |
loyaltysettings.programstatuscode | Example: 1 | Define the loyalty program status code |
loyaltysettings.minimumdollarredemptionvalue | Example: 50.000 | Define the minimum dollar value limit for applying points to a purchase |
loyaltysettings.loyaltyproductid | Example: 77777 | Define the loyalty product ID |
loyaltysettings.paymentmethodcode | Example: 778 | Define the payment method code for loyalty points in the cart |
loyaltysettings.apikey | Example: 'xxx' | Provide an API key to for accessing external loyalty data if required |
loyaltysettings.apiversion | Example: 3 | Define the API version number |
loyaltysettings.attachto | Example: '#BrandHeader' | Provide the DOM element that the FAB will be attached to for display |
loyaltysettings.presentationtypes | Example: 'fab,details' | Define the presentation elements to display in comma seperated format. Options are 'fab', 'details', 'fab,details' |
NOTE: External Rewards require that the Common rewards points box remain unchecked (disabled), in order for rewards history to present correctly. If you are using the loyalty plugin to internally manage rewards points, enable this box and populate the exchange rate.
Configure Floating Action Button (FAB) Position
The FAB (floating action button) can be presented anywhere in the store by providing the ID of an attachment point in the DOM. There are additional configuration settings to adjust placement, colors, and text (see below).
To position the FAB, go to Configuration > Settings> All Settings > Search.
Enter "Attach" in name field and press search. Select “loyalty.fab.attach.to” setting and Edit.
Edit - #HERO or #BRANDHEADER, for example.
Language Strings
Configure Language Strings for Loyalty Components.
The components of Loyalty are highly customizable via Language Strings. A convenient screen has been created for ease of updating language strings, rather than going through the usual method.
To configure these strings, within Administration, go to Configuration > Local plugins
Find the Aspenware Commerce Loyalty Plugin and click Configure.
On the Configure Loyalty screen, customize any of the Loyalty Settings - Account (MyAccount or FAB text) by updating the following language strings (click to enlarge).
Resource Name | Value | Purpose |
---|---|---|
aspenware.loyalty.fab.register.text | Example value: Earn rewards by registering for a rewards account today. | Provide the default copy to display in the FAB if the customer is not registered in rewards program. |
aspenware.loyalty.fab.logo | Example value: img/rewards.svg | Provide a relative path to the location of the client logo for their loyalty program to be displayed in the FAB. Logo must be stored in this location. |
aspenware.loyalty.fab.fail.linktext | Example value: Learn more." | Outbound link text to display if customer is not currently enrolled in rewards program. |
aspenware.loyalty.fab.fail.linkpath | Example value: www.anexample.com | Outbound link target if customer is not currently enrolled in rewards program |
aspenware.loyalty.fab.successfail.link | Example: ‘account’ | Link copy for the rewards account link in the FAB for registered users. |
aspenware.loyalty.fab.points.long | Example value: 'points' | Long denominational value name to display for rewards system |
aspenware.loyalty.fab.points.short | Example value: 'pts' | Short denominational value name to display for rewards system |
aspenware.loyalty.account.overview.text | Example: This is generic awards account copy. You can update it in your language strings sections in the admin section. | Overview text for My Accounts - Loyalty tab |
d. As you continue scrolling, you will find the Loyalty Settings - Checkout Redemption screen, you may adjust the following language strings.
e. Click Save.
Resource Name | Value | Purpose |
---|---|---|
aspenware.loyalty.redemption.pointsremoved.title | Example: 'Rewards points have been removed' | Provide the text to be displayed to the user upon successful removal of point useage. |
spenware.loyalty.redemption.pointsremoved.text | Example: 'Sorry! You cannot use reward points when checking out with your currently selected payment method. We have removed the points from your order and reimbursed your rewards accounts.' | Purpose: Provide the text to inform the user when points are automatically reimbursed due to conflicting payment type |
aspenware.loyalty.redemption.pointsremoved.balanced.text | Example: 'Reward Points Balance:' | Provide the label to be displayed in the redemption component for current point balance |
aspenware.loyalty.redemption.redeem.remove.button.text | Example: 'Remove reward' | Provide the label to be displayed on the reward removal button in the redemption component |
aspenware.loyalty.redemption.rewards.title | Example: 'Aspenware Rewards' | This field is currently unused. |
aspenware.loyalty.redemption.rewards.image.url | Example: 'img/rewards.svg' | Provide a relative path to the location of the client logo for their loyalty program to be displayed in the redemption component. This could be th same logo that is used in the FAB, or a different version, size, etc. |
aspenware.loyalty.redemption.rewards.text | Example: 'You have {points} points' | Provide alternative copy to display if the logo is not available to load |
aspenware.loyalty.redemption.error.button.text | Example: 'Try again' | Provide the text to be displayed in the redemption button if redemption fails |
aspenware.loyalty.redemption.redeem.text | Example: 'Available points' | Provide the label to display above the current point value in the redemption component. |
spenware.loyalty.redemption.redeem.hint | Example: '2 WAYS TO REDEEM | By entering the amount manually or by applying the maximum possible points available.' | Provide the top level instructional text to be displayed inside the redemption component in checkout |
aspenware.loyalty.redemption.redeem.button.text | Example: 'Redeem {dollars}' | Provide the label to be displayed on the point redemption button as well as the teplate token for the point to dollar conversion value. |
aspenware.loyalty.redemption.pointsremoved.reimbursed.text | Example: 'Reward Points Reimbursed:' | Provide the label to be displayed in the redemption component when reward points are reimbursed. |
aspenware.loyalty.redemption.pointsremoved.button.text | Example: 'Remove reward' | Provide the label to be displayed in the remove reward button in the redemption component. |
aspenware.loyalty.payment.applied.text | Example: ‘Applied’ | Text displayed after order total to let user know that points were applied. |
HTML Widgets
CSS Custom Property Configuration Guide Layout variations in resort themes will often require customizing the CSS Properties that style the Floating Action Button (FAB). Currently, styles are applied via the nop HTML widget as defined below. This will eventually be replaced with the theme framework. Until then, an HTML nop widget must be added and assigned to the 'head_html_tag' widget zone in order to apply styling to the FAB. To add and customize this widget:
Go to NopTemplates > PLUGINS > HTML WIDGETS.
Click Add new html widget.
On the HTML Widget Settings Tab, enter the following:
Name: Loyalty Styles
Visible: Checked
HTML Content (go to Tools > Source Code) and enter:
<style><!--#loyalty-fab-target .v-application--wrap{ min-height: 0; display: block; max-width: inherit;} :root { --fab-link-text-color: #1976d2; --fab-position-top-mobile: 20px; --fab-position-top: 100px; --fab-position-right-mobile: 0; --fab-position-right:0; --fab-z-index: 999; --fab-main-text-color: #333; --fab-footer-bg-color: #e4e4e4; --fab-toggle-bg-color: #222;} --></style>
The following properties are available for you to configure the FAB on a theme basis:
--fab-link-text-color: Sets the color of the links inside of the expanded FAB.
--fab-position-top-mobile: Sets the number of pixels between the top of the page and the top of the FAB on mobile.
--fab-position-top: Sets the number of pixels between the top of the page and the top of the FAB on desktop.
--fab-position-right-mobile: Sets the number of pixels between the right side of the screen and the right side of the FAB on mobile.
--fab-position-right: Sets the number of pixels between the right side of the screen and the right side of the FAB on desktop.
--fab-z-index: Sets the z-index of the FAB to ensure it displays over all other page content.
On the Widget Zones tab, click Add new record
Search for Widget Zone ‘head_html_tag’
Click Update.
Customize Loyalty Dialog in Aspenware Identity
Identity runs a check on loyalty “member status” during login. Depending on what is returned for member status (e.g. TRUE or FALSE), the customer sees the “Consent Text” Flow (member = FALSE) or the “Updated Consent text” flow (member = TRUE).
Resorts should determine their custom copy, as well as define any URLs that will be specified. Once completed, please send a request to your Aspenware Service Representative (support@aspenware.com) to complete the customization on your behalf.
Sample Consent Text Flow
If the guest is not a member, they will be presented with a checkbox to execute loyalty membership, with custom language and URLs.
Sample Updated Consent Text Flow
If the guest is currently a member, the checkbox for enrollment is not presented. Instead, custom language reflects agreement with current terms and conditions.