Products

Elevate, May 20-22-2025, Miami Beach, Florida

Learn how to manage your Product catalog in a Project.

Only users in Teams with appropriate permissions can view and edit Products. The permissions are managed by the Administrators Team in your Organization.

The Product list displays all Products that exist in your Project and lets you do the following:

  • add and remove Products within your Project
  • view and edit Product details
  • publish and unpublish Products to manage their visibility in your stores
  • export your current Product list to make it transferrable between Organizations and Projects and import it back
  • search through your Products using the powerful search and filters in the view
Learn more about Products in our self-paced Product data modeling module.

Create a Product

  1. Go to Products > Add product.
  2. Select a Product type from the list of Product types created in your Project.
  3. Click Next.
  4. Enter the details for the Product.

    • For Product name, enter localized names for the Product.
    • For Product description, enter localized descriptions for the Product.
    • For Product key, enter a unique identifier value for the Product.
    • For Product categories, select the Categories for the Product. If the Recommended categories setting is enabled for your Project, Categories will be generated upon creating the Product.
    • For Product price mode, select the type of Price to be used for the Product at checkout.
    • For Tax category, select the Tax Category for the Product.
  5. Enter custom Product attributes configured for your Project. Fill in at least one locale configured for your Organization.
  6. Click Next.
  7. Click Add variant to add Product Variants for the Product.
    • Optional: For SKU, enter a SKU value for the Product Variant.
    • Optional: For Variant key, enter a unique identifier value for the Product Variant.
    • Enter the details for the Attributes.
    • Click Save.
  8. Click Next.
  9. Enter localized keywords for your internal storefront search.

  10. Add external search information for search engine optimization (SEO).

    • For URL slug, enter localized slugs for the Product to be used by external search engines.
    • Optional: For Meta title, enter localized meta titles for the Product to be used by external search engines. To use the same names for the Product, as defined earlier, click Use localized product name.
    • Optional: For Meta description, enter localized descriptions for the Product to be used by external search engines. To use the same descriptions for the Product, as defined earlier, click Use localized product description.
  11. As a rule, first Product Variant created is automatically set to the master Product Variant. Click the Set to master button on the desired Product Variant page to promote a Product Variant to master.
  12. Click Save.

You can now add images, Prices, Inventory, and store-based tailored data for the Product.

Add images

  1. Go to Products > Product list.
  2. Select a Product and click the Variants tab.
  3. Select a Product Variant and click the Images tab.
  4. Click the Add image button and upload an image of your Product Variant.
  5. Close the Product Variant window to finish modifications.

Merchant Center supports only .jpg, .png and .gif image formats. Maximal file size is 10 MB per image. Image filenames should not contain spaces.

Add Prices

  1. Select a Product Variant and click the Prices tab.
  2. Click Add embedded price and enter the price information.
    • Optional: For Price key, enter a unique identifier value for the Embedded Price.
    • For Price, select the currency and enter the money value.
    • Optional: You can add additional constraints for your Embedded Price.
    • Optional: To make the Embedded Price available only to Customers in a specific location, select a country from the Country drop-down.
    • Optional: To make the Embedded Price available only to a specific group of Customers, select a Customer Group from the Customer group drop-down.
    • Optional: To make the Embedded Price available only for Products sold through a specific Channel, select a Channel from the Channel drop-down.
    • Optional: To make the Embedded Price available for a specific time period, select the dates and time for Price valid from and Price valid to.
  3. If present, select a Custom Field for the Price and enter a value for it.
  4. Click Save.
  5. Close the Product Variant window to finish modifications.

Add Inventory

  1. Select a Product Variant and click the Inventory tab.
  2. Click Add inventory and enter the Inventory details.
    • Optional: For Channel, select a Channel; each Channel can be assigned to an Inventory only once.
    • For Quantity, enter the total stock units available for the Product Variant.
    • Optional: For Average restock period (days), enter the number of days it takes to restock the Product Variant.
    • Optional: For Expected delivery, enter the expected date and time of restock of the Product Variant.
  3. If present, select a Custom Field for the Inventory and enter a value for it.
  4. Click Save.
  5. Close the Product Variant window to finish modifications.

Add tailored data for a Product

You can tailor your product information to adapt to different brands or regions—based on your business requirements—to increase your visibility, customers' loyalty, and orders.

To add tailored data for a Product, do the following:

  1. Go to Products > Product list and select a Product.
  2. On the Product details page, select a Store from the drop-down. Store selection drop-down on the Product details page.
  3. Enter the tailored values for Product name, Product description, Key for tailored data, and any Product Attributes.
    If no value is given for a field, when publishing the tailored data, the related Product Projection falls back to the default Product data for the respective fields.
  4. Click Save tailored values in store.
  5. Optional: To tailor meta information for the Product, click the Int. / Ext. Search tab, enter the tailored values for URL slug, Meta title, and Meta description.
  6. Click Save.

To add tailored data for a Product Variant, do the following:

  1. Go to Products > Product list and select a Product.
  2. Click the Variants tab and select a Product Variant.
  3. Select a Store from the drop-down.
  4. Optional: To tailor Attributes, enter the tailored values for the Attributes and click Save tailored values in store.
  5. Optional: To tailor images, click the Images tab and click Add image by URL. Upload an image and click Save tailored values in store.
For tailored Product Projections, you can only upload an image using the Product Tailoring API.

After saving your tailored Product Projection, you can manage the visibility of tailored values.

Publish tailored data

  1. Go to Products > Product list and select a Product.
  2. To publish the tailored data, select store-based values. If fallback values is selected, the default (original) Product data is available for the Product (Variant) on your storefront. Publish tailored data for the Store.

Manage Products

You can perform the same action on multiple Products simultaneously or export a selection of Products from the Product list. For example, this can be useful in conjunction with the search feature to publish all the Products in a specific campaign or sale.

To perform bulk Product actions, select any of the following actions from the Actions drop-down list:
  • Publish: publishes the selected Products.
  • Unpublish: unpublishes the selected Products.
  • Delete: deletes the selected Products.
  • Bulk edit attributes: updates the selected Product's Attributes in bulk.
  • Bulk edit categories: updates the selected Product's Categories in bulk.
  • Bulk assign products to product selections: assigns Products to Product Selections in bulk.

To select Products on different pages, you can pin up to 20 Products to the top of the table; it allows you to navigate through other pages of the Product list.

Reorder Attributes

You can only reorder Attributes with a Same for all constraint—which are at the Product-level—and that match the following conditions:
  • No Attribute Groups must be associated with a given Product.
  • The total number of Attributes must be more than one.

To reorder Product-level Attributes, do the following:

  1. Go to Products > Product list.
  2. Select a Product from the Product details page.
  3. In the Product Attributes section, click Reorder and drag the Attribute fields accordingly. You can reorder fields only if no filter is applied for the Attribute fields.
  4. Click Save.
  5. In the Update your attribute order dialog, select if you want to save the field order only for the selected Product or for all Products of the respective Product Type, and then click Confirm.

Review modified Products

When you modify Products, their status will be updated as Modified. This reflects that the changes made to the Products are staged and not published. You can review all your unpublished changes to Products by navigating to Products > Review modified products.
Layout of modified Products.

You can edit, revert, or publish your changes.

  • To revert or publish all changes on the page, click Revert all or Publish all and confirm the action.
  • To revert or publish all changes to a Product, click Revert or Publish. If one or more fields are edited or reverted, save your changes before reverting or publishing the changes.
  • To revert individual changes, click Revert to published.

Manage Products in Categories

Before adding or removing Products from Categories, you must index your product catalog. To index, go to Products > Product list and click Index my product catalog now.

After this, proceed to editing Products in Categories:

  1. Go to Products > Product list.
  2. Select the Products and, in the Actions drop-down menu, select Bulk edit categories.
  3. Select Categories to add or remove and click Next.
  4. On the confirmation dialog, confirm the action.
After the update is complete, the update summary is displayed. To edit or revert the change, see Review Modified Products.

Search for Products

You can perform a basic (default) or advanced search for Products. If you're a new user, we recommend using the basic search mode. To switch to using the advanced search mode, click the Advanced search button (angle brackets icon).

To search Products, you must index your Product list in your Project. The indexing time can vary based on the size of the Product list.

Only members of the Administrators Team can index a Project.

Query object

A query object consists of the following:

  • A compound expression wrapper defining relations between expressions. You can use only one compound expression per query.
  • A query expression defining fields and values to search across. You can use multiple different query expressions that will be combined with the compound expression.
  • A set of query fields within the query expression. The field and value fields are required, whereas the other fields are optional.

Compound expressions

Compound expression wrapper has the following options:

  • and: only matches Products that match all query expressions.
  • or: matches Products that match at least one query expression.
  • not: matches Products that do not match any query expressions.
For example, the following query only matches Product Variants with a price of 222.20 Euro. Hence, the currencyCode must be EUR and the centAmount must be 2222.
{
  "query": {
    "and": [
      {
        "exact": {
          "field": "variants.prices.currencyCode",
          "value": "EUR"
        }
      },
      {
        "exact": {
          "field": "variants.prices.centAmount",
          "value": 2222
        }
      }
    ]
  }
}

Query expressions

A query expression wraps the actual data of a query and defines how a search is conducted.

{
  "query" {
    "or": [
      "exact": { //This is a query expression
        ...
      },
      "fullText": { //This is a query expression
        ...
      }
    ]
  }
}

You can use the following types:

  • fullText
  • exact
  • prefix
  • range
  • wildcard
  • exists

fullText

A fullText query performs full-text searches of fields. Full-text searches use the fields specified in the Query body and have the option of using the mustMatch field.
For example, the following query searches for Products that have either green or handbag in their name. Hence, Products with the name yellow handbag and green shoes match.
{
  "query": {
    "fullText": {
      "field": "name",
      "language": "en",
      "value": "green handbag",
      "mustMatch": "any"
    }
  }
}

exact

Anexact query searches for exact values only. Exact searches use the fields specified in the Query body and have the option of using the caseInsensitive field.
For example, the following query returns any SKU that exactly matches the value field. Hence, Chiquita_yellow_123 and chiquita_YELLOW_123 match, but not chiquita_yellow_1234.
{
  "query": {
    "exact": {
      "field": "variants.sku",
      "value": "chiquita_yellow_123",
      "caseInsensitive": true
    }
  }
}

prefix

A prefix query searches for values of fields that begin with the specified prefix. Prefix searches use the fields specified in the Query body and have the option of using the caseInsensitive field.
For example, the following search returns Products that begin with commerceto. Hence, Products that begin with commerce do not match.
{
  "query": {
    "prefix": {
      "field": "variants.attributes.brand",
      "attributeType": "text",
      "value": "commerceto",
      "caseInsensitive": true
    }
  }
}

range

A range query only matches values between specified boundaries and works with date and number values. Range queries use the following fields:
  • field - String - Required
    Any DateTime field, like lastModifiedAt
  • gte - DateTime - Optional
    Lower bound of the range query. If omitted, the query body must have an lte specified and searches from the lte date backwards.
  • lte - DateTime - Optional
    Upper bound of the range query. If omitted, the query body must have a gte specified and searches from the gte date forwards.

For example, the following query searches for Products last modified between 25 August 2019 and 26 August 2019.

{
  "query": {
    "range": {
      "field": "lastModifiedAt",
      "gte": "2019-08-25T12:00:00.000Z",
      "lte": "2019-08-26T12:00:00.000Z"
     }
  }
}

wildcard

A wildcard query searches for values of fields that match the specified wildcard expression. Wildcard searches use the fields specified in the Query body and have the option of using the caseInsensitive field.
In wildcard searches, the following characters have a special meaning when used as a part of the value:
  • * for one or more characters
  • $ for exactly one character.
{
  "query": {
    "wildcard": {
      "field": "name",
      "value": "ki*y"
    }
  }
}
{
  "query": {
    "wildcard": {
      "field": "name",
      "value": "kit$y",
      "caseInsensitive": true
    }
  }
}

exists

A exists query searches for fields that have a non-null value. The only field required is field.
{
  "query": {
    "exists": {
      "field": "name"
    }
  }
}

Query body

A query expression can use the following fields in its body:

  • field - String - Required
    The name of the field to search for. For more information, see Searchable fields.
  • value - String - Required
    The value to search for.
  • attributeType - String - Optional
    The Attribute type. Use only when the field specified is a Product Variant Attribute (product.attribute.<attribute-name>). Allowed values are:
    • text, set_text
    • boolean, set_boolean
    • ltext, set_ltext
    • enum
    • lenum
    • number, set_number
    • money, set_money
    • date, set_date
    • time, set_time
    • datetime, set_datetime
    • reference, set_reference
  • boost - Number - Optional
    Makes a query expression count more towards the relevance score in relation to other query expressions.
  • mustMatch - String - Optional
    Use with fullText searches only. It can either be any or all.
    • If you use all, and search with a value of yellow car, the full text search matches Products that have both yellow and car anywhere in the searched field.
    • If you use any, the full text search matches Products that have yellow or car in the searched field.
  • caseInsensitive - Boolean - Optional
    Use with exact, prefix and wildcard searches only. If true, the search is treated as case insensitive. For example, a case insensitive search for Yellow Car matches a field with yellow car.

Searchable fields

You can access any direct field of a Product Projection, Product Type or Attribute definition, or a sub-field of a referenced or nested object in some cases.

The field accessed must be a JSON data type. The only exception is LocalizedString fields, which are treated differently.
You can access any field on a ProductProjection, which is:
  • a simple JSON data type, such as id or key.
  • a field on a referenced type or array of a type, such as variants.sku, or taxCategory.name.
  • a LocalizedString. If so, use the language field to specify the language to be searched in.
  • a field on a Product Variant's Embedded Price, accessed using the format variants.prices.currencyCode, where currencyCode is the field accessed.
  • a Product Variant Attribute, accessed using variants.attributes.<attribute_name>. If so, use the attributeType field to specify the attribute type.
You can access any field on a ProductType, which is:
  • a simple JSON data type, such as id or key.
  • a LocalizedString. If so, use the language field to specify the language to search in.
  • Any field on an AttributeDefinition, accessed using attributes.name or attributes.label, where name and label are the fields being accessed.

boost field

When you provide more than one query expression to a query, the boost field adds more importance to a query result than the others.
For example, in the following query, results that have butter in the name field are more important than those that have butter in the description field.
{
  "query": {
    "or": [
      {
        "fullText": {
          "field": "name",
          "language": "en",
          "value": "butter",
          "boost": 2
        }
      },
      {
        "fullText": {
          "field": "description",
          "language": "en",
          "value": "butter"
        }
      }
    ]
  }
}

Filter object

A query can have a filter section. The filter contains fullText, exact, or prefix query expressions, as described above, and filters for the field described. All sub-expressions contained in a filter are connected with and logic. All sub-expressions of query count towards the score except for filter.
{
  "query": {
    "and": [
      {
        ... //query expressions here
      },
      {
        "filter": [
          {
            "exact": {
              "field": "categories.id",
              "value": "cd2c2b6b"
            }
          }
        ]
      }
    ]
  },

Sort object

A query can have the optional sort object after it. The sort object defines how the query is sorted and displayed in the Product List.
The sort object contains the following:
  • field - String - Required
    The name of the field to sort by. For more information, see Searchable fields. You can also use the internal field score, in addition to the internal field set to true, to sort by the weighted score.
  • order - String - Required
    The sort order. Can either be asc (ascending) or desc (descending).
  • mode - String - Optional
    The sort mode to use. Allowed values are:
    • min: uses the minimum of all available values.
    • max: uses the maximum of all available values.
    • avg: uses the average of all available values.
    • sum: uses the sum of all available values.
  • attributeType - String - Optional
    The attribute type. Use only when the field is a Product Attribute.
  • internal - Boolean - Optional
    Set this to true when field is set to score.
{
  "query": {
      ...
  },
  "sort": {
    "field": "name",
    "order": "desc"
  }
}

Pagination object

A query can have the optional pagination information that includes the following fields:

  • limit - Number - Required
    Set the upper limit of items to return.
  • offset - Number - Required
    Set the offset from which the query is evaluated.

Import and export

For more information about importing resources into the Merchant Center, see Import data.

Import Products

To import Products into the Merchant Center, do the following:

  1. Go to Products > Product list.
  2. Click the Actions drop-down and select Import products.
  3. In the Import products by CSV window, choose a CSV file on your computer to upload, and click Upload and preview.
    • Select the Publish all products in the file checkbox to update the current and staged representation of existing Products, and publish new Products. If not selected, the imported data will only update the staged representation of existing Products and new Products created by the import process are not published.
  4. After the file is uploaded and validated, verify the rows and columns to be imported, and click Continue.
  5. Click Start import to confirm the import process. As the import process is a background task, you do not need to wait for it to complete. To check the import status, go to Operations > Import.

Import Inventory

  1. Go to Products > Product list.
  2. Click the Actions drop-down and select Import inventories.
  3. In the Import inventories by CSV window, choose a CSV file on your computer to upload, and click Upload and preview.
  4. After the file is uploaded and validated, verify the rows and columns to be imported, and click Continue.
  5. Click Start import to confirm the import process. As the import process is a background task, you do not need to wait for it to complete. To check the import status, go to Operations > Import.

Export Products or Inventory

Bulk unpublish via CSV import

For more information about importing resources into the Merchant Center, see Import data.
  1. Go to Products > Product list.
  2. Click the Actions drop-down and select Bulk unpublish via CSV.
  3. In the Bulk unpublish via CSV window, choose a CSV file on your computer to upload, and click Upload and preview.
  4. After the file is uploaded and validated, verify the number of Products to be unpublished, and click Continue.
  5. Click Start bulk unpublish to confirm the import process. As the import process is a background task, you do not need to wait for it to complete. To check the import status, go to Operations > Import.

Bulk delete via CSV import

For more information about importing resources into the Merchant Center, see Import data. Only unpublished Products can be bulk deleted.

This action cannot be undone. After you delete a Product, you cannot recover it.

  1. Go to Products > Product list.
  2. Click the Actions drop-down and select Bulk delete via CSV.
  3. In the Bulk delete via CSV window, choose a CSV file on your computer to upload, and click Upload and preview.
  4. After the file is uploaded and validated, verify the number of Products to be deleted, and click Continue.
  5. Click Start bulk delete to confirm the import process. As the import process is a background task, you do not need to wait for it to complete. To check the import status, go to Operations > Import.