Skip to main content
The format specification of the data feed describes how the product data needs to be formatted and structured to be imported into Voyado Elevate. This data feed is an XML file encoded using UTF-8. For full examples of the file syntax, see Import examples.
The XML format is the data import format used in version 3 of the Admin API. For newer versions, use the Catalog import format and look here for the specification.
  • Required fields must be provided for the import to be accepted.
  • Conditionally required fields are only required as stated by the conditions.
  • Recommended fields are important to very central features and are highly recommended to supply when possible.
  • Fields that are not highlighted are optional but may be required to enable specific features or performance gains. It is recommended to provide this information when easily accessible, or when needed for specific features. This information can often favorably be added iteratively once a data feed with required and recommended elements is in place.
Market identifiers and keys for product groups, products, and variants must be consistent across the data feed, the order notifications, and the order history. All keys within a market must be unique and are case sensitive.

Product data

Product data consist of product groups that include products that in turn include variants. Maximum length of an element value is 2,000,000 characters.

Product group

The first level of the data model is the product group (the overall article). The product group holds attributes that are common for all its products and variants. A product group must contain at least one product.

Elements and attributes

Product

A product is a color or style variation of a product group and contains attributes that are specific to this variation. Each product in turn must contain at least one variant and is strongly recommended to have at least one image.

Elements and attributes

Images

The images element is a part of the product element and contains one or more image elements. The image element defines a single image which may have URLs with different resolutions of the same image. Multiple resolutions are used for saving bandwidth and are especially useful for thumbnails. An image element must have an urls element which must have at least one URL, and URLs must be unique within a product. If relative image resolutions are known, the image URLs should be ordered by ascending width, that is smallest first, otherwise it can lead to inconsistencies before it is analyzed automatically. There can be a maximum of 25 images on a product.
Elements and attributes
Advanced image imports
Additional attributes regarding image tags, widths, and types can be set in the import. These attributes are mainly for use before the automatic image analysis is complete. There is also support for custom image attributes and the alt and caption elements.
Elements and attributes

Attribute names

The categories attribute, series attribute, and custom attributes on products and variants can have a name attribute. The name is used to link a human-friendly name to an identifier to simplify merchandising without breaking the site when values change.
Elements and attributes
It is strongly advised to use stable IDs when creating pages and/or boost/bury, but it is hard for merchandisers to work with IDs. To solve this problem, a name can be used to tie a name and an ID together. An attribute with a name will work just as an attribute with the name as its value in all aspects, except for filtering and making product selections. When making product selections in the apps, the name will be shown but the ID will be saved. This means that if the name changes, no pages or boost/bury will stop working.Names are supplied as an XML attribute to the attribute element. Below is an example:
In this example, for the first element, season is the attribute, Summer is the name, and m_678 is the ID. The name Summer will be searchable and used by Elevate to understand the product. Summer will also be shown in the apps, but if chosen, the ID m_678 will be saved instead of the name Summer.Import rules for name:
  • The number of pipe-separated values supplied must match the number of names. The first name represents the first value and so on. In the example above, Baggy is the name of the style with the ID m_c_333. If a custom attribute has multiple values and only some of them have names, then the ID should be entered as the name for the IDs which are missing a name. It is recommended to use names for either all values or none within one attribute.
  • IDs must only have one name. If an ID is associated with multiple names in the same import, the import will fail.
  • If two IDs within the same custom attribute share the same name, faceting will consider them to be the same but product selections will consider them separate. In the apps, names with multiple IDs will be represented as name (ID).
  • Setting or changing a name on one product will apply the name to all instances of that ID on all products in the import and previously existing products. If an ID has a name, it is recommended to always include the name alongside the ID.
  • If a value that has had a name since a previous import is only mentioned without a name in a new import, the name will be removed from all previously existing products.

Typed custom attributes

The custom element allows custom attributes of specific types to be imported. Supplying types on custom attributes enables type-specific features, such as range facets for lengths and numbers. The supported types are lengths and numbers.
Length custom attributes
Custom attributes of type lengths can be used to define secondary measurement attributes, such as the package size. Within the lengths element, the name of the custom length attribute is specified, followed by the length information.
Number custom attributes
Custom attributes of type numbers can be used to define number attributes, such as the number of items in a package. Negative numbers are supported.

Predefined measurements

Predefined measurements like width, height, length, depth, weight, and volume share product and variant values in facets, product selections, and sorting. This means that there is a single facet for, for example, width that holds all width values regardless of whether they are provided at product or variant level. In the import, each product must have predefined measurements specified, either at product level or variant level. When provided at variant level, all the variants of a product must specify the predefined measurement.

Lengths

Length properties consist of an amount and a unit describing a specific length. Lengths can be predefined measurements or supplied as typed custom attributes.
Length format
Elements and attributes

Volume

Volume is a property type consisting of an amount and a unit describing a specific volume. Volume is a predefined measurement.
Volume format
Elements and attributes

Weight

Weight is a property type consisting of an amount and a unit describing a specific weight. Weight is a predefined measurement.
Weight format
Elements and attributes

Variant

A variant is a stock-keeping unit (SKU) and contains attributes that are specific to the SKU. A variant typically represents a single physical size, and a physical size can be expressed in several formats, see Sizes, section Advanced size import.

Elements and attributes

Sizes

Sizes is a part of the variant element and contains one or more size elements.
Elements and attributes
Advanced size import
Each variant has a single physical size, but the size can be expressed in several formats. For example, a shirt can be considered both a size S and sizes 34 and 36 simultaneously. If multiple formats are known, all should be provided. The format of the size is specified as an attribute and the actual size is provided as the value of the size element.
Multiple variants with the same format and value are allowed, as long as there is one format with a unique single value. For example, the snippet below shares the value 36 in the format EU with the example above, but may be imported as sizes for another variant, as the sizes have unique values in the format SML.
Elements and attributes

Custom prices

The custom_prices element is a part of the variant element and contains one or more price elements. The maximum number of price elements for a variant is 1,000.
Advanced price import
For more information about custom prices, see Additional features .
Elements and attributes

Stores

The stores element is a part of the variant element and contains one or more store elements and their stock numbers.
Advanced stores import
For more information about stores, see Store specific stock numbers.
Elements and attributes

Content

The content element enables visitors to find editorial content items on a site, such as FAQs, shipping, and contact information. Content items are usually placed after the product groups in the import files.

Elements and attributes

Imports

An import can be either a full, a partial, or an attribute modification import. The import type is based on the root element of the import file. The import file type is XML and must be encoded using UTF-8. A full import is used to set the complete state of the product and content data for all markets. Partial updates are used to add, replace, or remove product or content items. The attribute modification import has a different root element than full and partial imports. It is used for frequent updates of item attributes such as selling_price and stock_number. Only attributes defined in the import will be modified. The attribute modification import can also add new attributes to existing items. For more information on when to use full, partial, or attribute modification imports, see Scheduled imports.

Data import

The data import is either full or partial and is the root element of an import XML file. Three elements, remove_all, remove, and add_or_replace, in the XML file define what Elevate will do with the data in the file. The full import sets the complete state of the data, thus anything that is not declared in the import will be deleted from Elevate, regardless of market. This enables a retailer to do a full synchronization between their systems and Elevate. Data is added into Elevate by using the add_or_replace element. A partial import has the type attribute set to partial. This means that no data is automatically removed at the beginning of the import unless remove or remove_all are present in the file before using add_or_replace. Note that partial updates of product groups replace the entire group. This means that the product group is expected to be complete, as it replaces all information about the product group and any connected products and variants. To only modify information, use Attribute modification.

Elements and attributes

Modify

The modify element is used by the full and partial import methods. It defines the market and locale that is being imported. Multiple markets can be modified in the same import. A market and locale combination can only be modified once during an import.

Elements and attributes

Attribute modification

The attribute modification import has the root element attribute_modification in the import XML file. It is used to modify attributes within individual items, as well as to add new attributes to existing items. All items that are to be modified, such as product_groups, product, variant, and content, are identified by their key attribute values. If an item cannot be identified, for example due to an incorrect or nonexistent key, that item will be ignored, a warning will be logged, and the rest of the items are imported normally. Nesting of products within product groups and variants within products in the XML is not allowed. The modify_attributes element is used by the attribute modification. It defines what existing market and locale that content will be operated on. Multiple markets and locales can be modified in the same import. A market and locale combination can only be modified once during an import. For markets with exactly one locale, the locale may be omitted. For markets with multiple locales, the locale must be specified except for cross-locale attribute modifications, see below. Product groups, products, variants, and content are modified separately when performing an attribute modification.

Elements and attributes

Cross-locale attribute modifications

On markets with multiple languages, stock, cost, and price may be modified across all locales in a market. A cross-locale attribute modification is specified by omitting the locale in the modify_attributes element.
Cross-locale attribute modifications cannot be combined with normal attribute modifications on the same market in the same import. For more information, see Multilingual markets.

Import examples

Full import

The following example will add items to a site with market set to UK and locale set to en-GB. Any previous data not included in the import will be deleted from Elevate, regardless of market.
Full import example with basic information
Full import example with advanced feature usage

Partial import

The following example of a partial import will add or replace one or more product groups, products, variants, and content in an existing market with the key UK. The items are identified using their key values.
Partial updates of product groups replace the entire group. This means that the product group is expected to be complete, as it replaces all information about the product group and any connected products and variants. To only modify information, use Attribute modification.
Partial import example with add or replace
The following example of a partial import will remove all product_groups and content_items from an existing market with the key UK.
Partial import example with remove all
The following example of a partial import will remove a specific product_group and content from an existing market with the key UK. The items are identified using their key values.
Partial import example with remove

Attribute modification examples

The common use case for attribute modifications is when updating prices and stock numbers. The following example of an attribute modification import will update specific values for a product_group, a product, a variant, and a content item on an existing market with the key UK. The items are identified using their key values.
Attribute modification import example
Cross-locale attribute modification import example with store specific stock numbers and custom prices

Escaping special characters

Some elements in the data model can take multiple pipe-separated (|) values. Therefore, if the pipe character is part of the data, such as in a category name, it must be escaped using a backslash, \, before the actual character, \|. Using a backslash in the data must also be escaped using another backslash, \\. Escaping must be done for values in all elements, including single-value elements.
Character escaping example
Last modified on September 17, 2026