This is the documentation for Recommendations AI, Retail Search, and the new Retail console.

REST Resource: projects.locations.catalogs.attributesConfig

Resource: AttributesConfig

Catalog level attribute config.

JSON representation
{
  "name": string,
  "catalogAttributes": {
    string: {
      object (CatalogAttribute)
    },
    ...
  },
  "attributeConfigLevel": enum (AttributeConfigLevel)
}
Fields
name

string

Required. Immutable. The fully qualified resource name of the attribute config. Format: projects/*/locations/*/catalogs/*/attributesConfig

catalogAttributes

map (key: string, value: object (CatalogAttribute))

Enable attribute(s) config at catalog level. For example, indexable, dynamicFacetable, or searchable for each attribute.

The key is catalog attribute's name. For example: color, brands, attributes.custom_attribute, such as attributes.xyz.

The maximum number of catalog attributes allowed in a request is 1000.

attributeConfigLevel

enum (AttributeConfigLevel)

Output only. The AttributeConfigLevel used for this catalog.

CatalogAttribute

Catalog level attribute config for an attribute. For example, if customers want to enable/disable facet for a specific attribute.

JSON representation
{
  "key": string,
  "inUse": boolean,
  "type": enum (AttributeType),
  "indexableOption": enum (IndexableOption),
  "dynamicFacetableOption": enum (DynamicFacetableOption),
  "searchableOption": enum (SearchableOption),
  "recommendationsFilteringOption": enum (RecommendationsFilteringOption)
}
Fields
key

string

Required. Attribute name. For example: color, brands, attributes.custom_attribute, such as attributes.xyz. To be indexable, the attribute name can contain only alpha-numeric characters and underscores. For example, an attribute named attributes.abc_xyz can be indexed, but an attribute named attributes.abc-xyz cannot be indexed.

inUse

boolean

Output only. Indicates whether this attribute has been used by any products. True if at least one Product is using this attribute in Product.attributes. Otherwise, this field is False.

CatalogAttribute can be pre-loaded by using CatalogService.AddCatalogAttribute, CatalogService.ImportCatalogAttributes, or CatalogService.UpdateAttributesConfig APIs. This field is False for pre-loaded CatalogAttributes.

Only CatalogAttributes that are not in use by products can be deleted. CatalogAttributes that are in use by products cannot be deleted; however, their configuration properties will reset to default values upon removal request.

After catalog changes, it takes about 10 minutes for this field to update.

type

enum (AttributeType)

Output only. The type of this attribute. This is derived from the attribute in Product.attributes.

indexableOption

enum (IndexableOption)

When AttributesConfig.attribute_config_level is CATALOG_LEVEL_ATTRIBUTE_CONFIG, if INDEXABLE_ENABLED attribute values are indexed so that it can be filtered, faceted, or boosted in SearchService.Search.

dynamicFacetableOption

enum (DynamicFacetableOption)

If DYNAMIC_FACETABLE_ENABLED, attribute values are available for dynamic facet. Could only be DYNAMIC_FACETABLE_DISABLED if CatalogAttribute.indexable_option is INDEXABLE_DISABLED. Otherwise, an INVALID_ARGUMENT error is returned.

searchableOption

enum (SearchableOption)

When AttributesConfig.attribute_config_level is CATALOG_LEVEL_ATTRIBUTE_CONFIG, if SEARCHABLE_ENABLED, attribute values are searchable by text queries in SearchService.Search.

If SEARCHABLE_ENABLED but attribute type is numerical, attribute values will not be searchable by text queries in SearchService.Search, as there are no text values associated to numerical attributes.

recommendationsFilteringOption

enum (RecommendationsFilteringOption)

When AttributesConfig.attribute_config_level is CATALOG_LEVEL_ATTRIBUTE_CONFIG, if RECOMMENDATIONS_FILTERING_ENABLED, attribute values are filterable for recommendations. This option works for categorical features only, does not work for numerical features, inventory filtering.

AttributeType

The type of an attribute.

Enums
UNKNOWN

The type of the attribute is unknown.

Used when type cannot be derived from attribute that is not inUse.

TEXTUAL Textual attribute.
NUMERICAL Numerical attribute.

IndexableOption

The status of the indexable option of a catalog attribute.

Enums
INDEXABLE_OPTION_UNSPECIFIED Value used when unset. Defaults to INDEXABLE_ENABLED.
INDEXABLE_ENABLED Indexable option enabled for an attribute.
INDEXABLE_DISABLED Indexable option disabled for an attribute.

DynamicFacetableOption

The status of the dynamic facetable option of a catalog attribute.

Enums
DYNAMIC_FACETABLE_OPTION_UNSPECIFIED Value used when unset. Defaults to DYNAMIC_FACETABLE_ENABLED.
DYNAMIC_FACETABLE_ENABLED Dynamic facetable option enabled for an attribute.
DYNAMIC_FACETABLE_DISABLED Dynamic facetable option disabled for an attribute.

SearchableOption

The status of the searchable option of a catalog attribute.

Enums
SEARCHABLE_OPTION_UNSPECIFIED Value used when unset. Defaults to SEARCHABLE_DISABLED.
SEARCHABLE_ENABLED Searchable option enabled for an attribute.
SEARCHABLE_DISABLED Searchable option disabled for an attribute.

RecommendationsFilteringOption

If filtering for recommendations is enabled.

Enums
RECOMMENDATIONS_FILTERING_OPTION_UNSPECIFIED Value used when unset. Defaults to RECOMMENDATIONS_FILTERING_DISABLED.
RECOMMENDATIONS_FILTERING_DISABLED Recommendation filtering is disabled.
RECOMMENDATIONS_FILTERING_ENABLED Recommendation filtering is enabled.

AttributeConfigLevel

At which level we offer configuration for attributes.

Enums
ATTRIBUTE_CONFIG_LEVEL_UNSPECIFIED Value used when unset. Defaults to CATALOG_LEVEL_ATTRIBUTE_CONFIG.
PRODUCT_LEVEL_ATTRIBUTE_CONFIG At this level, we honor the attribute configurations set in Product.attributes.
CATALOG_LEVEL_ATTRIBUTE_CONFIG At this level, we honor the attribute configurations set in CatalogConfig.attribute_configs.

Methods

addCatalogAttribute

Adds the specified CatalogAttribute to the AttributesConfig.

removeCatalogAttribute

Removes the specified CatalogAttribute from the AttributesConfig.

replaceCatalogAttribute

Replaces the specified CatalogAttribute in the AttributesConfig by updating the catalog attribute with the same CatalogAttribute.key.