Skip to content

Data fields

Inspect and manage which of a website's data fields are indexed for search filtering and sorting. These tools show the same information as the Data fields page in My Hello Retail, covering both product fields and content fields (categories, site pages, blog posts, and brands).

Every field carries a searchIndexChangeMode that tells you whether its indexing can be changed:

  • ALWAYS: the field is always indexed and cannot be turned off.
  • ALLOWED: the field can be toggled on or off. In practice these are the extraData, extraDataNumber, and extraDataList fields.
  • NEVER: the field cannot be indexed.

Only ALLOWED fields can be changed with the update tools.

Tips & tricks

Start by listing a website's product fields to see what exists and what can be toggled. The usedBySearchConfigs and usedByPageDesigns arrays show where each field is already in use.

List the product data fields for my website and show which ones I can index for search.

Changing indexing starts a full catalog re-index, which is a heavy job on large catalogs. Batch every field you want to change into a single update call rather than one call per field.

Index extraData.color and extraData.material for search filtering on my website, in one call.

A field that is in use by a live search config or a page design cannot be un-indexed until those usages are removed. The update tools report such fields back as unchanged rather than failing.

Which product fields on my website are indexed but still in use by a search config or page design?

getProductFields

List the product data fields of a customer website: every field available on the website's products, collected from its product feeds and site selectors plus the standard Hello Retail fields. For each field the response reports whether it is used for product (variant) grouping, whether it is indexed for search filtering and sorting, whether that indexing can be changed (searchIndexChangeMode), and the names of the search configs and page designs currently using the field. A field that is in use cannot be un-indexed until those usages are removed.

Name Type Required Description
websiteUuid string Yes The UUID of the customer's website in Hello Retail. Use getWebsiteInfo to look up available websites, or find it in my.helloretail.com under Settings → Website Settings → Website Unique Id.
Example request & response
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "getProductFields",
    "arguments": {
      "websiteUuid": "<string>"
    }
  }
}
{
  "fields": [
    {
      "field": "<string>",
      "usedForGrouping": false,
      "searchIndexed": false,
      "searchIndexChangeMode": "<string>",
      "usedBySearchConfigs": [],
      "usedByPageDesigns": []
    }
  ]
}

getContentFields

List the content data fields of a customer website for one content type: every field available on the website's content items of that type, collected from its content feeds and site selectors plus the standard Hello Retail fields. For each field the response reports whether it is indexed for search filtering and sorting, and whether that indexing can be changed (searchIndexChangeMode).

Name Type Required Description
websiteUuid string Yes The UUID of the customer's website in Hello Retail. Use getWebsiteInfo to look up available websites, or find it in my.helloretail.com under Settings → Website Settings → Website Unique Id.
contentType string Yes The content type to list fields for. One of: CATEGORY, SITE_PAGE, BLOG_POST, BRAND.
Example request & response
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "getContentFields",
    "arguments": {
      "websiteUuid": "<string>",
      "contentType": "CATEGORY"
    }
  }
}
{
  "fields": [
    {
      "field": "<string>",
      "searchIndexed": false,
      "searchIndexChangeMode": "<string>"
    }
  ]
}

updateProductFieldsIndexing

Update which product data fields of a customer website are indexed for search filtering and sorting. Only fields whose searchIndexChangeMode is ALLOWED can be changed. ALWAYS and NEVER fields, and fields currently in use by a search config or page design, are reported back as unchanged. The response splits every requested field into fieldsNowIndexed, fieldsNoLongerIndexed, fieldsUnchanged, and fieldsNotFound.

Write operation

Any actual change automatically starts a full re-index of the website's product catalog, a heavy job that can take a long time on large catalogs. Batch every field you want to change into one call instead of calling once per field. Your assistant will ask for confirmation before this runs.

Name Type Required Description
websiteUuid string Yes The UUID of the customer's website in Hello Retail. Use getWebsiteInfo to look up available websites, or find it in my.helloretail.com under Settings → Website Settings → Website Unique Id.
updates array Yes The desired indexed state per field: an array of {"field": "<name>", "indexed": true\|false} objects, e.g. [{"field": "extraData.color", "indexed": true}]. Batch all fields to change into one call.

The reindex field in the response reports what happened to the catalog:

  • STARTED: a full catalog re-index was enqueued for the changes.
  • ALREADY_ACTIVE: a re-index was already queued or running. The saved changes are reflected the next time one runs.
  • NOT_NEEDED: no field actually changed, so no re-index is required.

The settings are saved regardless of the re-index outcome.

Example request & response
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "updateProductFieldsIndexing",
    "arguments": {
      "websiteUuid": "<string>",
      "updates": [
        {"field": "extraData.color", "indexed": true},
        {"field": "extraData.material", "indexed": true}
      ]
    }
  }
}
{
  "fieldsNowIndexed": [],
  "fieldsNoLongerIndexed": [],
  "fieldsUnchanged": [],
  "fieldsNotFound": [],
  "reindex": "<string>"
}

updateContentFieldsIndexing

Update which content data fields of a customer website are indexed for search filtering and sorting, for one content type. Only fields whose searchIndexChangeMode is ALLOWED can be changed. ALWAYS and NEVER fields are reported back as unchanged. The response splits every requested field into fieldsNowIndexed, fieldsNoLongerIndexed, fieldsUnchanged, and fieldsNotFound.

Write operation

Any actual change automatically starts a full re-index of the website's content catalog, a heavy job that can take a long time on large catalogs. Batch every field you want to change into one call instead of calling once per field. Your assistant will ask for confirmation before this runs.

Name Type Required Description
websiteUuid string Yes The UUID of the customer's website in Hello Retail. Use getWebsiteInfo to look up available websites, or find it in my.helloretail.com under Settings → Website Settings → Website Unique Id.
contentType string Yes The content type to update fields for. One of: CATEGORY, SITE_PAGE, BLOG_POST, BRAND.
updates array Yes The desired indexed state per field: an array of {"field": "<name>", "indexed": true\|false} objects, e.g. [{"field": "extraData.season", "indexed": true}]. Batch all fields to change into one call.

The reindex field in the response reports what happened to the catalog:

  • STARTED: a full catalog re-index was enqueued for the changes.
  • ALREADY_ACTIVE: a re-index was already queued or running. The saved changes are reflected the next time one runs.
  • NOT_NEEDED: no field actually changed, so no re-index is required.

The settings are saved regardless of the re-index outcome.

Example request & response
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "updateContentFieldsIndexing",
    "arguments": {
      "websiteUuid": "<string>",
      "contentType": "CATEGORY",
      "updates": [
        {"field": "extraData.season", "indexed": true}
      ]
    }
  }
}
{
  "fieldsNowIndexed": [],
  "fieldsNoLongerIndexed": [],
  "fieldsUnchanged": [],
  "fieldsNotFound": [],
  "reindex": "<string>"
}