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$docIdproperty, whose value is used to uniquely identify a record. The output name is specified through therecordIdNameproperty of the/atg/endeca/ApplicationConfigurationcomponent.record.source– Output name of the$repository.repositoryNameproperty, whose value identifies the name of the source repository (for example,ProductCatalog).record.type– Output name of the$itemDescriptor.itemDescriptorNameproperty, 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.typevalues appear for theskuitem type and theclothing-skuandfurniture-skusubtypes.)item-type.siteId– Output name foritem-type.$siteIdproperties, which contain repository IDs for the sites the items are associated with. See Including siteId Properties for more information.item-type.urlanditem-type.baseUrl– Output names foritem-type.$urlanditem-type.$baseUrlproperties, which contain the URLs for the repository items the records represent. The difference between anitem-type.urlproperty and the correspondingitem-type.baseUrlproperty (such asproduct.urlandproduct.baseUrl) is that theurlproperty includes query parameters and thebaseUrlproperty does not. This means that if aVariantProduceris used to generate multiple records from the same repository item,product.baseUrlwill be the same for each record, but theproduct.urlquery 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.

