Product data feed specifications
Sitecore Discover relies on standardized product attributes that enable platform-wide features and capabilities such as analytics, built-in recipes, site contexts, specialized facet experiences, and so on. Based on the experiences you want to implement on your site, you might also need to add custom attributes the product feed. Discuss any requirements for custom attributes with your Sitecore integration specialist.
This topic lists and describes the product attributes that Sitecore Discover predefines for the catalog data feed.
A Sitecore integration specialist helps you determine the product attributes you need to provide, based on the experiences you want to create for your site visitors and business users.
Discover product attributes
This section describes default product attributes are available to all customers who subscribe to Sitecore Discover product discovery platform.
As per the data feed format requirements, each product attribute corresponds to a column name in the product data feed file.
The following table lists and describes both required and optional product attributes:
When applicable, the examples provided in the following table use the pipe symbol (|
) as a list separator.
Attribute |
Type |
Description |
Example |
---|---|---|---|
|
string |
Required. Unique string used to identify a group of SKUs or an individual SKU. For example, all size and color variations of a shirt can be grouped into a When not specified, all products sharing a particular URL are grouped together. |
234sbc |
|
string |
Required. Name of the product. |
Red winter rubber boots |
|
string |
Required. URL of the product details page for this product (relative to the website's host). |
|
|
string (absolute URL) |
Required. Widgets use this absolute URL to display a product or SKU image. The optimal size for websites is around 300 pixels x 300 pixels. URL must be absolute because it can be served from a host different from the website's host. Multiple SKUs can have the same URL. |
|
|
string |
Optional. Product description including all relevant information. Do not include any tabs, carriage returns, and HTML tags. Escape all characters that might break the file. |
This great long-sleeved shirt is made of 100% cotton with breathing capability for hot summers. |
|
string |
Required. The stock keeping unit (SKU) used to identify a particular product. | |
|
string |
Required. Name associated with the SKU, if different from the product name. | |
|
string |
Required. The URL of the SKU details page for this product, if different from the |
|
|
string |
Required. Image URL connected to a particular product and used to show a SKU in widgets. You can use the same URL for several SKUs. It is an absolute URL as images might be served from a different host. Optimal image size is around 300 x 300 pixels. |
|
|
string |
Required. Description of the SKU. | |
|
string |
Required. List of customer category IDs (CCIDs) that this SKU or product belongs to. These IDs must be the same as those defined as CCIDs in the category feed. Provide only the leaf (lowest level) categories. To list multiple CCIDs, use the separator ( Discover can create category hierarchy in two ways. It can either create them from CCIDs, or it can create them from categories and their parent category (defined as |
Example leaf category IDs: Example hierarchical category IDs: |
|
string |
Required only if CCIDs and the category feed are not available. Path from the root category to the product. If the product is under multiple levels of categories, delimit each category in the path using If the product belongs to multiple categories, delimit the categories using a pipe |
|
|
float |
Required. Catalog price in any currency as a double precision floating point number. Do not include the currency symbol as part of the price attribute value. |
|
|
float |
Required. The current final price of the product that the customer must pay. Do not include the currency symbol as part of the price attribute value. If there is no discount, enter the value entered for price. |
|
|
Boolean |
Required. Flag ( Default: |
|
|
string |
Optional. Type of product ( Discover processes sets and bundles as products. |
Possible values are:
|
|
string |
Optional. Product groups or SKUs that are part of a set, if the |
|
|
string |
Optional. Product groups or SKUs that are part of a bundle, if the |
or
|
|
integer |
Optional. The number of items of the given SKU available in stock. |
|
|
string |
Optional. The name of the measurement unit used for stock quantity. |
|
|
integer |
Optional. The order of SKUs within a product group. Used to organize the SKUs within a product in ascending order, based on availability. The lowest integer is selected as the default SKU, and its image is shown at the product level. SKUs that are not in stock are always listed last. | |
|
string |
Optional. Any attribute used to create custom add-to-cart experiences. Requires JavaScript function (this can be sent outside of the data feed). Any values that need to be passed within the function can be included in the feed. | |
|
string |
Optional. Any attribute used to create custom experience with third-party quick view integration. Requires JavaScript function (this can be sent outside of feed). Any values that need to be passed within the function can be included in the feed. | |
|
string |
Optional. A number of keywords that are associated with the product during search. List of keywords separated by spaces. |
hat cap beanie visor |
|
string |
Optional. A list of additional URLs (formatted as absolute URLs) if multiple images are required for a particular product. |
|
|
string |
Optional. A list of additional URLs (formatted as absolute URLs) if multiple images are required for a particular SKU. |
|
|
string |
Optional. A flag that specifies the overlay image value (for example, Sale, New, Clearance). | |
|
integer / float |
Optional. The percentage value of the savings. For example, Save 40%. Only provide the numerical value. Can be a double precision floating point number if appropriate. |
|
|
string |
Optional. The brand of the product in question. |
|
|
string |
Optional. The number code assigned to a brand. |
|
|
string |
Optional. Alternative product URL for mobile pages. Use if your e-commerce site does not automatically detect mobile browsing. |
|
|
string |
Optional. Alternative product image URL for mobile pages. Separate multiple | |
|
string |
Optional. Alternative SKU URL (relative URL) for mobile pages if different from the |
|
|
string |
Optional. Alternative SKU image URL (relative URL) for mobile pages. Can be the same UR: for several SKUs. This image is used to show the product in the widgets. Optimal image size for a website is around 300 x 300. Use if your e-commerce system cannot automatically detect mobile browsers. |
|
|
string |
Optional. Color of the product. Separate multiple colors using a pipe (|) character. |
|
|
string |
Optional. A display name attached to the product. Separate multiple names using a pipe (|) character. |
|
|
string |
Optional. The hex code for a color. |
|
|
string |
Optional. The size of the particular item. |
|
|
float |
Optional. Number representing the rating in product review rating. Float with single digit precision. |
|
|
integer |
Optional. Number of reviews for this product. | |
|
string |
Optional. The path linking to a product's customer reviews. It can be an absolute or relative path. | |
|
float |
Optional. Sales price minus the cost of goods. Double precision floating point number. |
|
|
float |
Optional. Any value that you might use to customize search ranking experiences. For example, you might use an algorithm to compute ranking order based on business goals. | |
|
float |
Optional. Any value that you might use to customize search ranking experiences. For example, you might use an algorithm to compute ranking order based on business goals. |
Timed product availability attributes
The following table lists and describes the product attributes that support timed product releases, to make a product available or unavailable on a specific date:
Attribute |
Type |
Description |
Example |
---|---|---|---|
|
string |
Required. Date when the product is available. Can be a date in the future. Date format is ISO 8601 standard:
Date is converted and stored in Discover as a timestamp (UTC). It is used to compute the |
|
|
string |
Date when the product or SKU becomes unavailable. Date format is ISO 8601 standard:
The expiration date must be later than the |
|
Fitment and cross-category recommendations attributes
The following table lists and describes the product attributes that are required to support fitment and cross-category recommendations:
Attribute |
Type |
Description |
Example |
---|---|---|---|
|
string |
Required. Customer fitment IDs that this SKU or product is compatible with. These IDs must be the same as the |
|
|
string |
Required. List of tags that identify compatibility with other products. To determine compatible products to recommend, Discover looks for products across the catalog with at least one matching tag. |
|
|
string |
Required. List of SKUs to use for cross-category recommendations for this SKU. |
|
Product availability and restriction attributes in multistore and B2B scenarios
If your Discover implementation is set up for B2B or multistore support, these attributes give you the ability to manage product or SKU availability and restriction for each store/customer. You manage product availability using an inclusion list (availability_whitelist
). You manage availability restrictions using an exclusion list (availability_blacklist
).
Store and group IDs can't contain an underscore (_).
An inclusion list (availability_whitelist
) contains B2B customers or stores where the product or SKU is available.
An exclusion list (availability_blacklist
) contains B2B customers or stores where the product or SKU is not available.
As a general guideline, you use the option that produces the least amount of data to transfer. During your on-boarding, a Sitecore integration specialist helps you determine the optimal approach based on your specific implementation.
The following table describes the product attributes that are required to manage product availability and restriction for each store/customer:
Attribute |
Type |
Description |
Example |
---|---|---|---|
|
string |
Optional. List of customer IDs for which the product or SKU is available. A product can use either a whitelist or a blacklist, not both. Product inventory is managed using stock quantity overrides or the |
|
|
string |
Optional. List of customer/store IDs for which the product or SKU is not available. A product can either use a whitelist or a blacklist, not both. Product inventory is managed using stock quantity overrides or the |
|
|
string |
Optional. List of customer group IDs for which the product or SKU is available. A product can use either a whitelist group or a blacklist group, not both. If a blacklist and a whitelist is specified at different levels, (that is, |
|
|
string |
Optional. List of customer group IDs for which the product or SKU is not available. A product can either have a whitelist or a blacklist, not both. If a blacklist and whitelist is specified at different levels (that is, |
|
Override attributes for multistore and B2B scenarios
If your Discover implementation supports a B2B or multistore scenario, you can use these attributes to manage product price and stock quantities for each store or for each customer.
Attribute |
Type |
Description |
Example |
---|---|---|---|
|
string |
Optional. Specifies price for each store or each B2B customer in a one-level organization of customers or stores. Price overrides are only supported at the product level, and not at the SKU level. |
|
|
string |
Optional. Specifies price for each group of stores or group of customers, if you have a two-level grouping of your customers or stores, and you manage them as a group. Price overrides are only supported at the product level, and not at the SKU level. |
|
|
string |
Optional. Specifies stock quantity (inventory) for each store or each customer in a one-level organization of customers or stores. |
|
|
string |
Optional. Specifies stock quantity (inventory) for each group of stores or each group of customers, if you have a two-level grouping of customers or stores, and you manage them as a group. |
|
Locale attributes
There are two approaches you can choose from to specify localized attribute values in the feed file. You can either use locale (a combination of country and language) or you can specify languages.
Use a consistent approach in your feed file to manage locale, that is, either use a single column with a list of values, or use one column for each locale value. We recommend that you not mix the different formats. As a general rule, when Discover reads and processes locale information, the following precedence applies:
-
If a locale specific attribute column exists, then Discover uses it.
Otherwise...
-
If a language specific attribute column exists, then Discover uses it.
The following table contains attributes you can use to manage locale in Discover:
Attribute |
Type |
Description |
Example |
---|---|---|---|
|
string |
Optional. Provides locale specific values for any attribute in a In the feed file, the default value of an attribute is specified in its own column. For example for the Column header: Locale values: |
Column header: Values: |
|
string |
Optional. Provides language specific values for any attribute, in a The default value of an attribute is specified in a separate column. |
Column header: Values: |
|
string |
Optional. Used as an alternative to Specify one locale value for each column. For example, for the attribute |
Column header: Column header: Column header: |
|
string |
Optional. Used as an alternative to Specify locale or language specific values as one locale or language for each column. For example, for the attribute |
Column header: Column: Column: |
Dynamic product attributes
Sitecore Discover supports the use of dynamic product attributes, mainly to support filtering and faceting. Typically, you use dynamic attributes to accommodate very large product catalogs with a significant number of product attributes, where only a small number of these attributes are distributed sparsely across products. In these cases, we recommend the use of dynamic product attributes for optimal page rendering performance. A Sitecore integration specialist can help you determine whether dynamic product attributes are suitable in your Discover implementation.
The following table lists and describes dynamic product attributes:
Attribute |
Description |
---|---|
|
Optional. A composite list of multiple attribute names, values (of various data types), and an optional sort order. Use the following convention to list dynamic attributes:
|
|
Optional. A composite list of multiple attribute names, values (of various data types), and an optional sort order. Use the following convention to list dynamic attributes:
|
Examples
The following shows examples of dynamic attributes (dyn_attrs
) that take a mix of string and numeric values in a list:
dyn_attrs values format |
Example |
---|---|
|
|
|
|
|
|
JSON format: |
|
The following shows a representation of dynamic attributes (dyn_attrs_numeric
) that take numeric values in lists:
dyn_attrs_numeric format |
Example |
---|---|
|
|
|
|
|
|
|
|