Compatibility Rules

Estimated reading: 2 minutes 5 views

Introduction

In some cases, because of business/functional reasons/ some products / services / component cannot live together in the same context (Account, Order Item or Order), or the opposite, you may want to force a Product B to exist in order to be able to select a Product A.

This is where the Compatibility Rules comes in place. With the Compatibility Engine you can specify which Products excludes or requires other ones and the Configurator would validate those rules when setting up an order.

Setup

The Compatibility Rules are defined at Product level. This is, the compatibility rules apply to any Product Version of that specific Product.

When you create a compatibility Rule you need to specify the following fields:

Field Description Example
Name The name of the rule Discount not allowed
Target Product The product to check if exists or not Discount
Mode Requires or Excludes. Requires would validate that the target product exists. Exclude would not allow the target product to exist. Excludes
Scope It defines what context should be used to check the existence of the target product. (Check the Scope section for more information) CommonRoot
Message The validation message to show when the rule is not satisfied This product doesn’t allow any Discount

Scope

The Scope defines what Assets or Order Items should be considered when checking if a Target product exists or not.

For instance:

  • Make Product A excludes Product B if it’s in the current order or it’s already contracted by the customer.
  • Make Product A excludes Product B it it’s in the same order item.
  • Force Product A to have Product B as a sibling in an order item.
  • etc

You can pick one of the following values when defining the scope:

Scope Value Description
Whole Context It would check any existing assets or ongoing Order Item
Common Root It would check against any existing component at any depth level in the order item.
Different Root It would check against any existing component at any depth level in any other order item.
Common Parent It would check against any existing component that it’s related to the same parent. In other words, its siblings
Different Parent It would check against any existing component that it’s related to the any different parent. In other words, its siblings

Leave a Comment

       
Euphoria, forever till the end of times

Euphoria

Share this Doc

Compatibility Rules

Or copy link

CONTENTS