Get blog category translation
Fetch one blog category translation.
Returns stored translated Blog Category 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 |
Blog Category id. |
locale
required
|
string |
Enabled non-default store locale. |
Headers
| Name | Type | Description |
|---|---|---|
Authorization
required
|
string |
Bearer Store API token. |
Errors
-
400STORE_API_INVALID_CATEGORY_IDBlog Category 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_RESOURCE_ID_NOT_IN_STOREBlog Category does not exist in this store.
Set blog category translation
Set one blog category translation.
Writes translated Blog Category fields for one locale. Empty values clear the matching field translation.
Path parameters
| Name | Type | Description |
|---|---|---|
id
required
|
uuid |
Blog Category 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_CATEGORY_IDBlog Category 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_RESOURCE_ID_NOT_IN_STOREBlog Category does not exist in this store.
-
400TRANSLATION_FIELD_NOT_TRANSLATABLEField is not translatable for Blog Categories.
-
400TRANSLATION_FIELDS_REQUIREDAt least one translated field is required.
-
400TRANSLATION_FIELD_VALUE_TOO_LONGA translated value exceeds its field limit.
-
409TRANSLATION_DUPLICATE_NAME_OR_SLUGTranslated name or slug conflicts with another blog category.
-
409CATEGORY_DUPLICATEThe translated name or slug is already used by another blog category.
-
400CATEGORY_NAME_INVALID_CHARSThe translated name contains unsupported characters.
-
400CATEGORY_NAME_TOO_LONGThe translated name exceeds its limit.
-
400CATEGORY_SLUG_INVALID_FORMATThe translated slug is not URL-safe.
-
400CATEGORY_SLUG_TOO_LONGThe translated slug exceeds its limit.
-
400CATEGORY_DESCRIPTION_TOO_LONGThe translated description exceeds its limit.
-
400CATEGORY_SEO_TITLE_TOO_LONGThe translated SEO title exceeds its limit.
-
400CATEGORY_SEO_DESCRIPTION_TOO_LONGThe translated SEO description exceeds its limit.
Batch get blog category translations
Fetch blog category translations in batch.
Returns translated Blog Category fields for multiple category 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 Blog Category 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_RESOURCE_ID_NOT_IN_STOREBlog Category does not exist in this store.
-
400TRANSLATION_TOO_MANY_RESOURCESThe request exceeds the translation batch resource cap.
Batch set blog category translations
Set blog category translations in batch.
Writes translated Blog Category fields for multiple category 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_CATEGORY_IDOne category 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_RESOURCE_ID_NOT_IN_STOREBlog Category does not exist in this store.
-
400TRANSLATION_FIELD_NOT_TRANSLATABLEField is not translatable for Blog Categories.
-
400TRANSLATION_FIELDS_REQUIREDAt least one translated field is required.
-
400TRANSLATION_FIELD_VALUE_TOO_LONGA translated value exceeds its field limit.
-
409TRANSLATION_DUPLICATE_NAME_OR_SLUGTranslated name or slug conflicts with another blog category.
-
409CATEGORY_DUPLICATEThe translated name or slug is already used by another blog category.
-
400CATEGORY_NAME_INVALID_CHARSThe translated name contains unsupported characters.
-
400CATEGORY_NAME_TOO_LONGThe translated name exceeds its limit.
-
400CATEGORY_SLUG_INVALID_FORMATThe translated slug is not URL-safe.
-
400CATEGORY_SLUG_TOO_LONGThe translated slug exceeds its limit.
-
400CATEGORY_DESCRIPTION_TOO_LONGThe translated description exceeds its limit.
-
400CATEGORY_SEO_TITLE_TOO_LONGThe translated SEO title exceeds its limit.
-
400CATEGORY_SEO_DESCRIPTION_TOO_LONGThe translated SEO description exceeds its limit.
-
400TRANSLATION_TOO_MANY_RESOURCESThe request exceeds the translation batch resource cap.
Get a blog category metafield translation
Fetch one translated custom-data value.
The definition must be visible and translatable. 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 |
Blog Category id. |
namespace
required
|
string |
Metafield definition namespace. |
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
-
400PRODUCT_METAFIELD_DEF_NOT_FOUNDThe namespace and key do not identify an accessible definition.
-
404NOT_FOUNDThe resource does not exist in this store.
-
400TRANSLATION_FIELD_NOT_TRANSLATABLEThe definition is not translatable.
-
400TRANSLATION_LOCALE_REQUIREDLocale is missing.
-
400TRANSLATION_LOCALE_NOT_ENABLEDLocale is not enabled for this store.
-
400TRANSLATION_DEFAULT_LOCALE_FORBIDDENThe default locale cannot be a translation target.
-
400TRANSLATION_RESOURCE_ID_NOT_IN_STOREThe translated resource does not exist.
Set a blog category metafield translation
Set or clear one translated custom-data value.
Send an empty value to clear the 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 |
Blog Category id. |
namespace
required
|
string |
Metafield definition namespace. |
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; empty clears it. |
Errors
-
400PRODUCT_METAFIELD_DEF_NOT_FOUNDThe namespace and key do not identify an accessible definition.
-
404NOT_FOUNDThe resource does not exist in this store.
-
400TRANSLATION_FIELD_NOT_TRANSLATABLEThe definition is not translatable.
-
400TRANSLATION_LOCALE_REQUIREDLocale is missing.
-
400TRANSLATION_LOCALE_NOT_ENABLEDLocale is not enabled for this store.
-
400TRANSLATION_DEFAULT_LOCALE_FORBIDDENThe default locale cannot be a translation target.
-
400TRANSLATION_RESOURCE_ID_NOT_IN_STOREThe translated resource does not exist.
-
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 blog categories. Update and clear events identify the locale and changed fields. One write can emit both events when it sets some fields and clears others.
Blog category translations updated
Fired when a blog category's translations are added or updated for a locale.
Payload fields
| Field | Type | Description |
|---|---|---|
blog_category.id |
string |
Always present |
blog_category.name |
string |
Selectable in the Payload builder |
blog_category.slug |
string |
Selectable in the Payload builder |
blog_category.description |
string |
Selectable in the Payload builder |
blog_category.seo_title |
string |
Selectable in the Payload builder |
blog_category.seo_description |
string |
Selectable in the Payload builder |
blog_category.template_handle |
string |
Selectable in the Payload builder |
blog_category.post_count |
integer |
Selectable in the Payload builder |
blog_category.created_at |
string |
Selectable in the Payload builder |
blog_category.updated_at |
string |
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 |
Blog category translations deleted
Fired when a blog category's translations are cleared for one or more fields in a locale.
Payload fields
| Field | Type | Description |
|---|---|---|
blog_category.id |
string |
Always present |
blog_category.name |
string |
Selectable in the Payload builder |
blog_category.slug |
string |
Selectable in the Payload builder |
blog_category.description |
string |
Selectable in the Payload builder |
blog_category.seo_title |
string |
Selectable in the Payload builder |
blog_category.seo_description |
string |
Selectable in the Payload builder |
blog_category.template_handle |
string |
Selectable in the Payload builder |
blog_category.post_count |
integer |
Selectable in the Payload builder |
blog_category.created_at |
string |
Selectable in the Payload builder |
blog_category.updated_at |
string |
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 |
Blog category metafield translations updated
Fired when a blog category metafield's translation is added or updated for a locale.
Payload fields
| Field | Type | Description |
|---|---|---|
metafield.blog_category_id |
string |
Always present |
metafield.blog_category_name |
string |
Selectable in the Payload builder |
metafield.blog_category_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 |
Blog category metafield translations deleted
Fired when a blog category metafield's translation is cleared for a locale, including when its blog category is deleted.
Payload fields
| Field | Type | Description |
|---|---|---|
metafield.blog_category_id |
string |
Always present |
metafield.blog_category_name |
string |
Selectable in the Payload builder |
metafield.blog_category_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 |