Index attributes can be configured differently for different product data from different sources.
To prevent the configuration created for different sources from conflicting with each other, Oracle commerce treats the configuration created for each source as belonging to a particular owner. The organization of attributes under owners serves only to prevent conflicts among attributes configured for different sources; it has no effect on the content or behavior of the Storefront.
Oracle Commerce supports the following owners:
SYSTEM: Recommended practice is to include only the dimension
common.record.type
and the propertycommon.id
under the System owner. For more information about the configuration to place under this owner, see Configuring index attributes .ATG: The ATG owner contains index attribute configuration that is produced when the Oracle Commerce administrator publishes Catalog configuration. The configuration belonging to the ATG owner is overwritten each time when the Catalog configuration is published.
Note
Oracle recommends that you not create configuration under the System or ATG owner.
You must place any index attributes that you configure using the Index Attributes API under an owner that you create. If you configure index attributes for data from more than one source, good practice is to create a different owner for each source. Names of user-defined owners are arbitrary but should identify their sources.
The attributes of all owners are merged when you run a Record Store Merger, according to the following rules:
The attributes of all the different owners cannot be merged if an attribute with the same name appears in more than one user-defined owner.
Attributes with the same name can appear in both a user-defined owner and in the SYSTEM owner. Attribute names cannot be repeated in this way among other combinations of owners.
If attributes with the same name occur in both a user-defined owner and the SYSTEM owner, the SYSTEM owner configuration for the attribute should specify an additional parameter 'mergeAction' with value set to 'UPDATE'. This ensures that the version of the attribute in the SYSTEM owner will be used, rather than the version in the user-defined owner.
An attribute configured as a dimension by the SYSTEM owner overrides an attribute with the same name that is configured as a property by a user-defined owner. The resulting attribute type in the merged configuration is a dimension.
An attribute configured as property by the SYSTEM owner will not be merged with an attribute with the same name that is configured as a dimension by a user-defined owner.
Attributes of the same name and type that belong to the SYSTEM owner and a user-defined owner are merged. The resulting attribute contains the combined parameters of the two attributes.
The attributes created for a particular owner must include the
parameter
"ecr:type": "attributes-owner-folder"
. The particular
owner is identified by the name of the node where the attribute is created.
The following JSON request body creates index attribute configuration for a particular owner; note that the JSON body itself does not specify the name of the owner:
{ "ecr:type": "attributes-owner-folder", "camera.35_mm_camera_lens_equivalent": { "propertyDataType": "ALPHA", "sourcePropertyNames": [ "camera.35 mm camera lens equivalent" ], "ecr:type": "property" }, "camera.color": { "isWildcardEnabledInRecordSearch": true, "displayOrder": 4, "sourcePropertyNames": [ "camera.Colour of product" ], "isAutogen": true, "isRecordSearchEnabled": true, "ecr:type": "dimension" }, "product.max_price": { "derivedPropertySource": "product.price", "derivedPropertyFunction": "MAX", "ecr:type": "derived-property" } }