Controlling the PDX Channel for Product Onboarding - Mandatory Attributes

Information related to two methods of designating attributes as mandatory is described below: Mandatory for Submit and Conditionally Mandatory.

Mandatory for Submit

To designate attributes in PDX as mandatory, meaning attributes on a product that must have a value added to enable submission of the product to PDX, users must link the specified attributes to the 'PDX: Mandatory for Submit' attribute group.

Category-specific attributes will display as mandatory in PDX by setting the value of the ‘PDX: Mandatory for Submit’ metadata attribute to ‘Yes’ on the attribute link in STEP.

Setting the ‘Mandatory’ metadata attribute on the relevant attribute itself will make the attribute mandatory in STEP but will not make the attribute mandatory in PDX.

Mandatory attributes configured with a condition, referred to as conditionally mandatory attributes, are mandatory unless the configured condition is not met. When the condition is not met, the attributes in question do not require values to proceed. To apply a conditionally mandatory attribute, add the ‘PDX: Conditionally Mandatory’ attribute (STEP ID: PMDM.AT.ConditionAttribute) as metadata on the Product Attribute link. (For more information on Product Attribute links, refer to the Product Attribute Link Type topic in the System Setup documentation here.)

For example, the ‘PDX: Conditionally Mandatory’ attribute (shown in the screenshot below) specifies that ‘Hazmat’, a mandatory attribute, will only be considered mandatory if the ‘HasLead’ attribute has a value of ‘Yes’. This value, ‘HasLead = Yes’, uses the syntax [AttributeID] = [Value1] to enable this use case.

If more than one value can meet the condition, all acceptable values can be listed with a semicolon delimiter, as in ‘[AttributeID] = [Value1];[Value2]’.

To ensure the conditionally mandatory attribute is correctly applied, follow the rules described below when writing the condition text:

  • The attribute upon which the condition is based (in the above example, it is ‘HasLead’) must not have spaces in its ID.

  • The attribute upon which the condition is based must not have a colon (':') in its ID.

  • If the ‘Condition Attribute’ value contains a semicolon (';'), it must be escaped with a backslash (\').

  • If the ‘Condition Attribute’ value contains a backslash ('\'), it must be escaped with another backslash (\').

Considerations for conditionally mandatory attributes

The ability to make attributes conditionally mandatory can, potentially, create problems if certain considerations are not taken into account. Listed below are the primary considerations admins must keep in mind when configuring conditionally mandatory attributes.

  • If your implementation of Accelerator for Retail provides the ability to make attributes conditionally mandatory using either the conditionally mandatory functionality described above, or the Validation Engine (described below), be sure to use one method or the other consistently. It is recommended that, of the two options, the Validation Engine is used as this is a more powerful tool that supports a wider range of related use cases. Further, conditionally mandatory rules will be deprecated for new Accelerator for Retail installations.

  • Apply caution when configuring conditionally mandatory attributes. It is possible to create conflicting rules resulting in a product that cannot be submitted regardless of which values are populated.

Note: If conditional expressions use attributes that use Lists of Values (LOVs) that use value IDs, the conditional expression will evaluate the value ID. For example, an attribute, ‘AttributeA’, uses a ‘Yes’ / ‘No’ LOV, and that LOV uses value IDs where 1=Yes and 2=No. In this instance, the conditional expression must be written to include the value ID rather than the value itself. In this example, if the attribute should only be available when the value of AttributeA is 'Yes', the conditional expression should be written as 'AttributeA = 1’ rather than ’AttributeA = Yes’.