The upgraded attribute schema provides multiple performance and storage enhancements. For example, the new schema extracts values from the vlocity_cmt__JSONAttribute__c field into separate fields: Metadata components, default runtime values, and metadata changes.
This separation allows metadata to remain on the design-time object (the product) while runtime values and metadata changes are maintained on the runtime object (the XLIs), which results in smaller XLI payloads. The data shape of the XLI attribute fields is aligned with the API response, which results in fewer translation operations and better runtime performance.
For deployments prior to the Fall '18 release, you can run an upgrade process to update product attributes to the latest schema. However, any custom Apex code, configurations, and Omnistudio Data Mappers that depend on the vlocity_cmt__JSONAttribute__c field must be updated to use the new fields. The new schema is optional: the previous JSONAttribute field will continue to be supported and your existing processes can remain the same.
The migration is one-way only; the action is not reversible. Salesforce does not provide utilities to migrate back to the old schema model.
Custom implementations using the JSONAttributeSupport class must use the new v2 methods outlined in
The Asset Attribute Visualforce component on the Asset page is not supported by the v2 attribute model. If your org needs the Assets Attribute component, it cannot be upgraded to the v2 attribute model. The Card Assets Visualforce component will support this functionality for orgs using the v2 attribute model.
For customers who use Industries Order Management (IOM), add a custom setting to add IOM support for the schema upgrade: JSONAttribute v2 Support in Industries Order Management
The following table provides the newly added fields by object:
|
Object |
Field |
Description |
|---|---|---|
|
Product2 |
AttributeMetadata__c |
Stores productAttribute JSON without default values. |
|
Product2 |
AttributeDefaultValues__c |
Stores the default values for product attributes. |
|
OpportunityLineItem |
AttributeSelectedValues__c |
Stores the attribute code and the value selected by the user. |
|
OpportunityLineItem |
AttributeMetadataChanges__c |
Stores the attribute code and any metadata changes from the default product configuration. |
|
OrderItem |
AttributeSelectedValues__c |
Stores the attribute code and the value selected by the user. |
|
OrderItem |
AttributeMetadataChanges__c |
Stores the attribute code and any metadata changes from the default product configuration. |
|
QuoteLineItem |
AttributeSelectedValues__c |
Stores the attribute code and the value selected by the user. |
|
QuoteLineItem |
AttributeMetadataChanges__c |
Stores the attribute code and any metadata changes from the default product configuration. |
|
Asset |
AttributeSelectedValues__c |
Stores the attribute code and the value selected by the user. |
|
Asset |
AttributeMetadataChanges__c |
Stores the attribute code and any metadata changes from the default product configuration. |
|
CompiledAttributeOverride__c |
AttributeDefaultValues__c |
Stores the attribute code and the value selected by the user. |
|
CompiledAttributeOverride__c |
AttributeMetadataChanges__c |
Stores the attribute code and any metadata changes from the default product configuration. |
|
EntityFilter__c with attribute set as the entity filter condition |
AttributesMetadataFieldName__c |
|
|
EntityFilter__c with attribute set as the entity filter condition |
AttributesValuesFieldName__c |
|
API Considerations
Starting with the Winter '20 release, the Digital Commerce APIs support the JSONAttribute v2 schema.
Upgrading the Attribute Schema
The schema upgrade steps are listed in Upgrading the Attribute Schema.