Get collection translation
Fetch one collection translation.
Returns stored translated Collection fields for one locale, including whether the translation is out of date. Fields without a translation in this locale are omitted from the response. An omitted field is not empty: shoppers see the store's base-language value, which the resource's own GET endpoint returns.
Path parameters
| Name | Type | Description |
|---|---|---|
id
required
|
uuid |
Collection id. |
locale
required
|
string |
Enabled non-default store locale. |
Headers
| Name | Type | Description |
|---|---|---|
Authorization
required
|
string |
Bearer Store API token. |
Errors
-
400STORE_API_INVALID_COLLECTION_IDCollection id is not a valid UUID.
-
400TRANSLATION_LOCALE_REQUIREDLocale is required.
-
400TRANSLATION_LOCALE_NOT_ENABLEDLocale is not enabled for this store.
-
400TRANSLATION_DEFAULT_LOCALE_FORBIDDENTranslations cannot target the store's default locale.
-
400TRANSLATION_FIELD_NOT_TRANSLATABLEField is not translatable for collections.
-
400TRANSLATION_FIELDS_REQUIREDAt least one translated field is required.
-
400TRANSLATION_FIELD_VALUE_TOO_LONGA translated value exceeds its field limit.
-
400TRANSLATION_INVALID_RESOURCE_IDA Collection id is invalid.
-
400TRANSLATION_TOO_MANY_RESOURCESThe request exceeds the translation batch resource cap.
-
404TRANSLATION_RESOURCE_NOT_FOUNDCollection does not exist in this store.
-
409TRANSLATION_DUPLICATE_NAME_OR_SLUGTranslated name or slug conflicts with another collection.
Set collection translation
Set one collection translation.
Writes translated Collection fields for one locale. Empty values clear the matching field translation.
Path parameters
| Name | Type | Description |
|---|---|---|
id
required
|
uuid |
Collection id. |
locale
required
|
string |
Enabled non-default store locale. |
Headers
| Name | Type | Description |
|---|---|---|
Authorization
required
|
string |
Bearer Store API token. |
Idempotency-Key
|
string |
Optional key for this translation write. Reuse it only with the same payload when repeating the request. |
Body parameters
| Name | Type | Description |
|---|---|---|
translations
required
|
object |
Field-keyed translation values. Allowed fields come from |
Errors
-
400STORE_API_INVALID_COLLECTION_IDCollection id is not a valid UUID.
-
400STORE_API_INVALID_REQUEST_BODYRequest body is not valid JSON.
-
400TRANSLATION_LOCALE_REQUIREDLocale is required.
-
400TRANSLATION_LOCALE_NOT_ENABLEDLocale is not enabled for this store.
-
400TRANSLATION_DEFAULT_LOCALE_FORBIDDENTranslations cannot target the store's default locale.
-
400TRANSLATION_FIELD_NOT_TRANSLATABLEField is not translatable for collections.
-
400TRANSLATION_FIELDS_REQUIREDAt least one translated field is required.
-
400TRANSLATION_FIELD_VALUE_TOO_LONGA translated value exceeds its field limit.
-
400TRANSLATION_INVALID_RESOURCE_IDA Collection id is invalid.
-
400TRANSLATION_TOO_MANY_RESOURCESThe request exceeds the translation batch resource cap.
-
404TRANSLATION_RESOURCE_NOT_FOUNDCollection does not exist in this store.
-
409TRANSLATION_DUPLICATE_NAME_OR_SLUGTranslated name or slug conflicts with another collection.
Batch get collection translations
Fetch collection translations in batch.
Returns translated Collection fields for multiple collection ids in one locale. Fields without a translation in this locale are omitted from the response. An omitted field is not empty: shoppers see the store's base-language value, which the resource's own GET endpoint returns.
Path parameters
| Name | Type | Description |
|---|---|---|
locale
required
|
string |
Enabled non-default store locale. |
Query parameters
| Name | Type | Description |
|---|---|---|
ids
required
|
string |
Comma-separated collection ids. |
Headers
| Name | Type | Description |
|---|---|---|
Authorization
required
|
string |
Bearer Store API token. |
Errors
-
400TRANSLATION_LOCALE_REQUIREDLocale is required.
-
400TRANSLATION_LOCALE_NOT_ENABLEDLocale is not enabled for this store.
-
400TRANSLATION_DEFAULT_LOCALE_FORBIDDENTranslations cannot target the store's default locale.
-
400TRANSLATION_FIELD_NOT_TRANSLATABLEField is not translatable for collections.
-
400TRANSLATION_FIELDS_REQUIREDAt least one translated field is required.
-
400TRANSLATION_FIELD_VALUE_TOO_LONGA translated value exceeds its field limit.
-
400TRANSLATION_INVALID_RESOURCE_IDA Collection id is invalid.
-
400TRANSLATION_TOO_MANY_RESOURCESThe request exceeds the translation batch resource cap.
-
404TRANSLATION_RESOURCE_NOT_FOUNDCollection does not exist in this store.
-
409TRANSLATION_DUPLICATE_NAME_OR_SLUGTranslated name or slug conflicts with another collection.
Batch set collection translations
Set collection translations in batch.
Writes translated Collection fields for multiple collection ids in one locale. Either every row is written or, if any row is invalid, none are.
Path parameters
| Name | Type | Description |
|---|---|---|
locale
required
|
string |
Enabled non-default store locale. |
Headers
| Name | Type | Description |
|---|---|---|
Authorization
required
|
string |
Bearer Store API token. |
Idempotency-Key
|
string |
Optional key for this translation write. Reuse it only with the same payload when repeating the request. |
Body parameters
| Name | Type | Description |
|---|---|---|
translations
required
|
array<object> |
Rows with |
Errors
-
400STORE_API_INVALID_REQUEST_BODYRequest body is not valid JSON.
-
400STORE_API_INVALID_COLLECTION_IDOne collection id is not a valid UUID.
-
400TRANSLATION_LOCALE_REQUIREDLocale is required.
-
400TRANSLATION_LOCALE_NOT_ENABLEDLocale is not enabled for this store.
-
400TRANSLATION_DEFAULT_LOCALE_FORBIDDENTranslations cannot target the store's default locale.
-
400TRANSLATION_FIELD_NOT_TRANSLATABLEField is not translatable for collections.
-
400TRANSLATION_FIELDS_REQUIREDAt least one translated field is required.
-
400TRANSLATION_FIELD_VALUE_TOO_LONGA translated value exceeds its field limit.
-
400TRANSLATION_INVALID_RESOURCE_IDA Collection id is invalid.
-
400TRANSLATION_TOO_MANY_RESOURCESThe request exceeds the translation batch resource cap.
-
404TRANSLATION_RESOURCE_NOT_FOUNDCollection does not exist in this store.
-
409TRANSLATION_DUPLICATE_NAME_OR_SLUGTranslated name or slug conflicts with another collection.
Get a collection metafield translation
Fetch one translated collection custom-data value.
Resolves the definition by namespace and key, verifies that it is translatable and visible to the calling app, then returns the stored value for the requested enabled non-default language. Fields without a translation in this locale are omitted from the response. An omitted field is not empty: shoppers see the store's base-language value, which the resource's own GET endpoint returns.
Path parameters
| Name | Type | Description |
|---|---|---|
id
required
|
uuid |
Collection id. |
namespace
required
|
string |
Metafield definition namespace. URL-encode reserved path characters; for example |
key
required
|
string |
Metafield definition key. |
locale
required
|
string |
Enabled non-default store locale. |
Headers
| Name | Type | Description |
|---|---|---|
Authorization
required
|
string |
Bearer Store API token. |
Errors
-
400STORE_API_INVALID_COLLECTION_IDCollection id is not a valid UUID.
-
404COLLECTION_NOT_FOUNDCollection does not exist in this store.
-
404METAFIELD_DEFINITION_NOT_FOUNDThe namespace and key do not identify an accessible Collection definition.
-
400TRANSLATION_FIELD_NOT_TRANSLATABLEThe definition is not translatable or its value type cannot be translated.
-
400TRANSLATION_LOCALE_REQUIREDLocale is missing.
-
400TRANSLATION_LOCALE_NOT_ENABLEDLocale is not enabled for this store.
-
400TRANSLATION_DEFAULT_LOCALE_FORBIDDENThe default language stores source values and cannot be used as a translation locale.
Set a collection metafield translation
Set or clear one translated collection custom-data value.
Writes the translated value using the same definition ownership, type, length, locale, audit, search-index, and webhook rules as the admin translation workflow. Send an empty value to clear this locale's translation. Send an explicit string in value; omit neither the field nor its value, and do not send null. An empty string clears the translation. For list.string, send a JSON-encoded string array with one translated item for each source item, in the same order.
Path parameters
| Name | Type | Description |
|---|---|---|
id
required
|
uuid |
Collection id. |
namespace
required
|
string |
Metafield definition namespace. URL-encode reserved path characters; for example |
key
required
|
string |
Metafield definition key. |
locale
required
|
string |
Enabled non-default store locale. |
Headers
| Name | Type | Description |
|---|---|---|
Authorization
required
|
string |
Bearer Store API token. |
Idempotency-Key
|
string |
Optional key for this translation write. Reuse it only with the same payload when repeating the request. |
Body parameters
| Name | Type | Description |
|---|---|---|
value
required
|
string |
Translated value. Send an empty string to delete the stored translation for this locale. |
Errors
-
400STORE_API_INVALID_COLLECTION_IDCollection id is not a valid UUID.
-
404COLLECTION_NOT_FOUNDCollection does not exist in this store.
-
404METAFIELD_DEFINITION_NOT_FOUNDThe namespace and key do not identify an accessible Collection definition.
-
400TRANSLATION_FIELD_NOT_TRANSLATABLEThe definition is not translatable or its value type cannot be translated.
-
400TRANSLATION_LOCALE_REQUIREDLocale is missing.
-
400TRANSLATION_LOCALE_NOT_ENABLEDLocale is not enabled for this store.
-
400TRANSLATION_DEFAULT_LOCALE_FORBIDDENThe default language stores source values and cannot be used as a translation locale.
-
400TRANSLATION_LIST_LENGTH_MISMATCHThe translated list must have the same number of items as the source list.
Webhook events#
Subscribe to these events when your integration mirrors localized collections. Update and clear events identify the locale and changed fields. One write can emit both events when it sets some fields and clears others.
Collection translations updated
Fired when a collection's translations are added or updated for a locale.
Payload fields
| Field | Type | Description |
|---|---|---|
collection.id |
string |
Always present |
collection.name |
string |
Selectable in the Payload builder |
collection.slug |
string |
Selectable in the Payload builder |
collection.description |
string |
Selectable in the Payload builder |
collection.image_id |
string |
Selectable in the Payload builder |
collection.image_url |
string |
Selectable in the Payload builder |
collection.image_cdn_url |
string |
Selectable in the Payload builder |
collection.seo_title |
string |
Selectable in the Payload builder |
collection.seo_description |
string |
Selectable in the Payload builder |
collection.template_handle |
string |
Selectable in the Payload builder |
collection.match_type |
string |
Selectable in the Payload builder |
collection.is_active |
boolean |
Selectable in the Payload builder |
collection.product_count |
integer |
Selectable in the Payload builder |
collection.materialized_at |
string |
Selectable in the Payload builder |
collection.created_at |
string |
Selectable in the Payload builder |
collection.updated_at |
string |
Selectable in the Payload builder |
collection.rules[*].id |
string |
Selectable in the Payload builder |
collection.rules[*].collection_id |
string |
Selectable in the Payload builder |
collection.rules[*].field |
string |
Selectable in the Payload builder |
collection.rules[*].operator |
string |
Selectable in the Payload builder |
collection.rules[*].value |
string |
Selectable in the Payload builder |
collection.rules[*].value_label |
string |
Selectable in the Payload builder |
collection.rules[*].include_subcategories |
boolean |
Selectable in the Payload builder |
locale |
string |
Selectable in the Payload builder |
translation.name |
string |
Selectable in the Payload builder |
translation.slug |
string |
Selectable in the Payload builder |
translation.description |
string |
Selectable in the Payload builder |
translation.seo_title |
string |
Selectable in the Payload builder |
translation.seo_description |
string |
Selectable in the Payload builder |
updated_at |
string |
Selectable in the Payload builder |
Collection translations deleted
Fired when a collection's translations are cleared for one or more fields in a locale.
Payload fields
| Field | Type | Description |
|---|---|---|
collection.id |
string |
Always present |
collection.name |
string |
Selectable in the Payload builder |
collection.slug |
string |
Selectable in the Payload builder |
collection.description |
string |
Selectable in the Payload builder |
collection.image_id |
string |
Selectable in the Payload builder |
collection.image_url |
string |
Selectable in the Payload builder |
collection.image_cdn_url |
string |
Selectable in the Payload builder |
collection.seo_title |
string |
Selectable in the Payload builder |
collection.seo_description |
string |
Selectable in the Payload builder |
collection.template_handle |
string |
Selectable in the Payload builder |
collection.match_type |
string |
Selectable in the Payload builder |
collection.is_active |
boolean |
Selectable in the Payload builder |
collection.product_count |
integer |
Selectable in the Payload builder |
collection.materialized_at |
string |
Selectable in the Payload builder |
collection.created_at |
string |
Selectable in the Payload builder |
collection.updated_at |
string |
Selectable in the Payload builder |
collection.rules[*].id |
string |
Selectable in the Payload builder |
collection.rules[*].collection_id |
string |
Selectable in the Payload builder |
collection.rules[*].field |
string |
Selectable in the Payload builder |
collection.rules[*].operator |
string |
Selectable in the Payload builder |
collection.rules[*].value |
string |
Selectable in the Payload builder |
collection.rules[*].value_label |
string |
Selectable in the Payload builder |
collection.rules[*].include_subcategories |
boolean |
Selectable in the Payload builder |
locale |
string |
Selectable in the Payload builder |
translation.name |
string |
Selectable in the Payload builder |
translation.slug |
string |
Selectable in the Payload builder |
translation.description |
string |
Selectable in the Payload builder |
translation.seo_title |
string |
Selectable in the Payload builder |
translation.seo_description |
string |
Selectable in the Payload builder |
updated_at |
string |
Selectable in the Payload builder |
Collection metafield translations updated
Fired when a collection metafield's translation is added or updated for a locale.
Payload fields
| Field | Type | Description |
|---|---|---|
metafield.collection_id |
string |
Always present |
metafield.collection_name |
string |
Selectable in the Payload builder |
metafield.collection_slug |
string |
Selectable in the Payload builder |
metafield.definition_id |
string |
Always present |
metafield.namespace |
string |
Selectable in the Payload builder |
metafield.key |
string |
Selectable in the Payload builder |
metafield.name |
string |
Selectable in the Payload builder |
metafield.type |
string |
Selectable in the Payload builder |
metafield.app_id |
string |
Selectable in the Payload builder |
metafield.app_access |
string |
Selectable in the Payload builder |
metafield.merchant_access |
string |
Selectable in the Payload builder |
locale |
string |
Always present |
translation.value |
string |
Selectable in the Payload builder |
updated_at |
string |
Selectable in the Payload builder |
Collection metafield translations deleted
Fired when a collection metafield's translation is cleared for a locale, including when its collection is deleted.
Payload fields
| Field | Type | Description |
|---|---|---|
metafield.collection_id |
string |
Always present |
metafield.collection_name |
string |
Selectable in the Payload builder |
metafield.collection_slug |
string |
Selectable in the Payload builder |
metafield.definition_id |
string |
Always present |
metafield.namespace |
string |
Selectable in the Payload builder |
metafield.key |
string |
Selectable in the Payload builder |
metafield.name |
string |
Selectable in the Payload builder |
metafield.type |
string |
Selectable in the Payload builder |
metafield.app_id |
string |
Selectable in the Payload builder |
metafield.app_access |
string |
Selectable in the Payload builder |
metafield.merchant_access |
string |
Selectable in the Payload builder |
locale |
string |
Selectable in the Payload builder |
translation.value |
string |
Selectable in the Payload builder |
updated_at |
string |
Selectable in the Payload builder |