Product Option Rules

When using SOLO Server's integrated shopping cart, you can define "Rules" on a Product Option that set conditions for how/when that Option can be purchased. Some examples of rules include:

Once the Option 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 can be shown an error message describing the problem, and the order will not be allowed to be completed.

Setting up Rules

To set up rules on a Product Option, scroll to the bottom of a View Product Option page and click on the Rules tab:

Any existing rules will be listed. To view any configured rule, 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 rules fields are defined as follows:

Product
The Product that is required to satisfy the rule.
Product Option
(Optional) The Option, under the Product selected above, that is required to satisfy the rule.

If specified, the engine will also check the Upgrade To field of the Option for each license. If the Upgrade To field matches the Option selected in this rule field, the license will be considered to be the selected Option.
Error Message
NOTE: This field is no longer supported by the shopping cart. Use 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:
  • None - The customer can purchase any quantity of the upgrade licenses.
  • Limit to Quantity - The customer can purchase up to the quantity of upgrade license as previous licenses they own.
  • One to One Match - The customer must purchase the exact quantity of upgrade licenses as previous licenses they own.
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.
Download Expiration Carryover (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:
  • None - The existing expiration date is not carried over
  • Carry Over - The existing expiration date will be carried over to the new license
  • Increment - The existing expiration date will be carried over to the new license and incremented by the Product Option Days to D/L setting.
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 license or maintenance/support subscription renewal. This allows the customer to purchase a subscription renewal 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 renewal 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/maintenance being renewed has expired. Current Date will base the new expiration on the current date. Expiration Date will base the new expiration on the original license's expiration date, effectively forcing the customer to catch up on their maintenance.

If the license has not expired yet, the new expiration date is always based on the original license's expiration date so that the customer is not penalized for renewing early.
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 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 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 after the Previous Purchase Date.
Previous Purchase Date
The date the previous license(s) must have been purchased after.
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:
  • Always Available - The upgrade/renewal is always available for purchase, regardless of the previous license(s) expiration date.
  • Only Available Before Expiration - The upgrade/renewal is available for purchase only when the previous license(s) expiration date has not expired, taking into account the grace period below.
  • Only Available When Expired - The upgrade/renewal is available for purchase only when the previous license(s) expiration date has expired, taking into account the grace period below.
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.

Rule Evaluation Flow

To view the flowcharts describing how rules are evaluated, see Rule Evaluation Flow.

Bundled Products

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 previous 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.

How to Configure Specific Rules

For examples of how to configure rules, refer to the following topics: