In addition to the properties you specify in the definition file, records generated by the Oracle Commerce Platform also automatically include a few special properties that identify the document-level repository items represented in the records. These properties initially include a dollar-sign ($) character in their names, but are renamed for inclusion in the submitted records, because this character is not valid in Guided Search property names. These renamed output properties include the following:
record.id
– Output name of the$docId
property, whose value is used to uniquely identify a record. The output name is specified through therecordIdName
property of the/atg/endeca/ApplicationConfiguration
component.record.source
– Output name of the$repository.repositoryName
property, whose value identifies the name of the source repository (for example,ProductCatalog
).record.type
– Output name of the$itemDescriptor.itemDescriptorName
property, whose value identifies the repository item type used to generate the record. This property is included for the document-level item type and any subtypes of that item type. (For example, in Oracle Commerce Reference Store,record.type
values appear for thesku
item type and theclothing-sku
andfurniture-sku
subtypes.)item-type
.siteId
– Output name foritem-type
.$siteId
properties, which contain repository IDs for the sites the items are associated with. See Including siteId Properties for more information.item-type
.url
anditem-type
.baseUrl
– Output names foritem-type
.$url
anditem-type
.$baseUrl
properties, which contain the URLs for the repository items the records represent. The difference between anitem-type
.url
property and the correspondingitem-type
.baseUrl
property (such asproduct.url
andproduct.baseUrl
) is that theurl
property includes query parameters and thebaseUrl
property does not. This means that if aVariantProducer
is used to generate multiple records from the same repository item,product.baseUrl
will be the same for each record, but theproduct.url
query parameters will differ between records, making it possible to distinguish each record from the others.
If you want to include any of these properties for item types other than the document-level one, you can add them through the definition file. For example, if you enable SKU-based indexing by including the DCS.Endeca.Index.SKUIndexing
module, some of these properties are output for products as well as SKUs, because they are explicitly declared in the ProductCatalogOutputConfig
definition file.
You may also want to explicitly declare properties even if they are included automatically, so you can specify certain attributes (such as setting the is-dimension
property to true
, as discussed in the next section
) or override the default output name. You can also suppress the inclusion of automatically included properties by setting the suppress
attribute to true
, as discussed in Suppressing Properties.
In addition to the properties listed above, which are output only for the document-level item type, item-type
.repositoryId
properties are automatically included for all item types included in the records. These properties are the output names for item-type
.$repositoryId
properties, which contain the repository IDs for the repository items the records represent. For example, a record for a product might include product.repositoryId
, sku.repositoryId
, and allAncestors.repositoryId
properties.