Product Option Rules

Overview

When using SOLO Server's integrated shopping cart, if you would like to offer a product option only as an upgrade for customers with existing licenses for other products and/or options, or specify an accompanying product that the customer must purchase alongside a given option, you can define "Rules" on that option. Once the item is added into the cart, and the customer is logged in, the cart processor can validate that the rules have not been violated by checking against the customer's license history and/or current cart contents. If any rules are violated, the customer will be shown an error message describing the problem. As long as any rules are violated on a cart, the order cannot be completed.

Setting up Rules

To set up rules on a product option, scroll to the bottom of the product option details page and click on the Rules tab. Any existing rules will be listed. To view any rule option, simply click the view link. If the user has the "Edit Products" permission, there will also be "Edit" and "Delete" links for each rule, as well as an Add New Rule button above the list.

Rule Parameters

The product option upgrade rules fields are defined as follows:

Product
The product the user is required to own to satisfy the rule.
Product Option
The product option on the product the user is required to own to satisfy the rule. This is optional. If specified, the engine will also look at the Upgrade To field of the option for each license, and if this matches this option, the license will be considered to be of the selected option.
Error Message
NOTE: This field is no longer supported by the shopping cart. You should set the Error Message field on the Product Option configuration.
Multiple Requirements
If this is set, the rule will be evaluated using a logical AND comparison with any other rules on the option with Multiple Requirements set. This cannot be used with Override Multiple. Rules without this set will be compared using a logical OR comparison.
Override Multiple
If this is set, the rule can override the results of the evaluation of other rules on the option with Multiple Requirements set. Essentially, the rule will be compared using an OR comparison against the results of the Multiple Requirements rule evaluation. This cannot be used with Multiple Requirements.
Simultaneous Purchase
If this is set, the rule is first checked against the customer's license history. If the rule does not validate against the license history, it is then checked against the items currently in the customer's cart. Note that when doing the validation against the cart items, only the One to One match parameter is checked. This cannot be used with Require License ID nor any of the options which update existing licenses during order processing (Link Old To New, Update Old Status, Carry Download Expiration, Maintenance Renewal, Update License Counter, and Increment Activation Count).
Require License ID:
If this is set, when evaluating the rule against a cart item or processing the rule during order processing, the rule will only consider the specific RuleLicenseID passed in when adding the item to the cart. Note that when this is set the RuleLicenseID MUST be passed when adding the item to the cart (this is automatically handled for the add to cart links for upgrades/renewals in the Customer License Portal). This setting cannot be used along with Simultaneous Purchase.
Previous License OK
If this is set, the previous license(s) must have an OK status.
Quantity Mode
The type of quantity validation to enforce. This can be set to the following:
Link Old To New
If this is set, upon order processing, the ReplacedBy field on the previous license(s) will be updated with the new License ID(s). This setting cannot be used along with Simultaneous Purchase.
Update Old Status
If this is set, upon order processing, the status of the old license(s) will be set to Upgrade (UPG). This setting cannot be used along with Simultaneous Purchase.
Carry Download Expiration (when possible)
Whether the expiration date on the existing license is carried over to the new license if the existing license is not expired. This can be set to the following: Note that this cannot be combined with the Maintenance Renewal option nor the Simultaneous Purchase option.
Maintenance Renewal
Check this to set up the option as maintenance/support subscription renewal. This allows the customer to purchase a maintenance/support subscription option, and upon order processing, the download expiration date for the original license(s) (the "Download Until" field on the license details page) will be incremented by the Days to Download of the maintenance/support subscription option. If the original license has not expired, it will increment based on the expiration date, which allows customers to renew early without any penalty. If the original license has expired, you can choose to increment based on the current date or the expiration date of the original license.

In addition, when Maintenance Renewal is checked and the parent option has a payment plan associated with it, the original license will also be associated with the payment plan. This allows setting up a retail renewal option that when purchased will increment the license expiration date and then convert the license expiration to be controlled by the payment plan system from that point onward. Note that this cannot be combined with the Carry Download Expiration option nor the Simultaneous Purchase option.
Expired Maintenance Start Date
When Maintenance Renewal is checked, this controls how the new expiration date is calculated when the license being renewed has expired. Current Date will base the new expiration on the current date, while Expiration Date will base the new expiration on the original license's expiration date.
Increment Activation Count
Use this setting to allow customers to purchase additional activations for their existing licenses. When set, the Activations Left on the existing license will be incremented during order processing based on the Activations Per U/M setting of the product option. Note: This setting also requires that the Require License ID setting detailed above also be enabled.
Update License Counter
Use this setting to allow customers to increment the license counter for their existing licenses. When set, the License Counter on the existing license will be incremented during order processing based on the License Counter Source/Value settings of the product option. Note: This setting also requires that the Require License ID setting detailed above also be enabled. For more information, see our blog post on Using a Counter Value in Licensed Applications.
Verify Purchase Date
If this is set, the previous license(s) must have a purchase date past the Previous Purchase Date.
Previous Purchase Date
The date the previous license(s) must have been purchased past.
Download Expiration Availability
The availability of the upgrade/renewal based on the expiration (Download Until) date of the original license(s). The following options are available:
Download Expiration Grace Period
The number of days past the expiration (Download Until) date that the previous license(s) are still considered valid.
Allow User Override
If this is set, the rule is can be overridden by users or members of groups which have the Override Rules permission.
Display Upgrade
If this is set, the option will be displayed with the upgrade options on the Renewals & Upgrades page of the Customer License Portal for the given product and/or option with a link to add the item to a cart. The link will include the LicenseID, which will be stored on the cart item for use with the Require License ID option detailed above.
Highlight Upgrade
Not yet implemented. In the future, this will cause the given product and/or option to be highlighted on the customer home page.

To view the flowcharts describing how rules are evaluated, see Upgrade Rule Evaluation Flow. Also note that upon order processing, any rules that specify upgrading an existing license will be evaluated differently depending on the quantity mode of the product option the rule is specified on. If the option is set up for multiple licenses, the quantity of existing licenses is taken into account when upgrading old licenses (not the quantity on each existing license). If set up with multiple unlocks, the quantity on each existing license is taken into account. For this reason, it is suggested though not required that upgrade options and the product and optionally the option that is required use the same quantity mode. Also, for bundled products, if a rule specifies Link Old To New, the License ID of the last item added to the invoice from the bundle will be used to update the existing license. Also note that if a bundle is set up as the required product and/or option, you must have Simultaneous Purchase checked as the license history is not checked for bundles since they are broken into individual licenses upon order completion and will never be found in the customer's license history.

Offering Free Upgrades

To set up a free upgrade to a new product for customers who have a software maintenance period on a previous product, follow these instructions:

Offering License Subscription or Maintenance/Support Renewal Options

Rules can be used to set up a time-limited/periodic license renewal or maintenance/support renewal. When a customer purchases the renewal, it will update the expiration date of the customer's original license in SOLO Server.

For a non-expiring license, you can use the "Download Until" date in the SOLO Server license record to keep track of software maintenance, which can be used to limit download access and/or support expiration.

For a time-limited license, the process is the same, except you will need to use Protection PLUS to configure your application to pull the new expiration date from the "Download Until" field when it checks-in with SOLO Server. In Instant Protection PLUS 3, this is done by enabling the "Check SOLO for new expiration during warning/grace period" option. The customer will not need to reactivate their software after purchasing the renewal; it will automatically use the new expiration date.

Follow these steps to create a renewal option:

  1. Create a new product option for the renewal. You could name it "1-year Renewal" or "30 day Renewal" etc.
  2. Change the following product option settings:
    1. Option Description: This option will renew your [Sample Product] software maintenance for X days.
    2. Option Type: Transaction/Service Fee
    3. For New Customers: uncheck
    4. Order Confirm HTML: example Thank you for renewing your software maintenance/subscription for [Sample Product]. To download the latest version, log in to <a href="https://secure.softwarekey.com/solo/customers/Default.aspx?AuthorID=[insert your AuthorID here]">your account</a>.
    5. Since the customer won’t be receiving a License ID or be able to activate with the maintenance renewal purchase, the following options can be cleared out:
      • Activations per U/M: 0
      • Issue License: uncheck
      • Issue Installation ID: uncheck
    6. Days to D/L: # of days to renew original license
    7. Error Message: You must have a valid [Sample Product] license before you are allowed to purchase this software maintenance renewal.
  3. Add a rule to this new product option by going to the Rules tab on the bottom right of the product option page and clicking [Add].
    1. Specify the product and optionally the product option the customer needs to be able to satisfy this rule.
    2. Set the following settings:
      • Require License ID: check
      • Previous License OK: check
      • Maintenance Renewal: check
      • Display Upgrade: check
    3. Optionally change the following settings (scroll up in this manual topic for details):
      • Quantity Mode
      • Download Expiration Availability
      • Download Expiration Grace Period

With these settings, the renewal option will be displayed in the Customer License Portal Upgrades and Renewals page and the license details page will also a display an upgrades/renewals icon. Upon purchase, the renewal order will update the Download Until/expiration date of the original license, and the renewal will also be listed in the customer's order history.