Translations for Promotions (Beta)

The Translations Admin GraphQL API is currently available on Catalyst storefronts only.

The following fields are translatable for promotions (all fields are included in responses; values may be null if no translation exists):

  • Banner availability as banner_availability
  • Banner upsell as banner_upsell
  • Banner eligibility as banner_eligibility
  • Banner congratulations as banner_congratulations

Only the fields above are supported for promotion translations. Requests with other field names will return an error.

Resource fields

Entity TyperesourceTyperesourceId Format
PromotionPROMOTIONSbc/store/promotion/{promotion_id}

Examples

Below are examples of GraphQL queries and mutations for retrieving and managing translation settings for promotions.

Query a List of Translations

This query returns up to 50 promotion translations for the specified resource type, channel, and locale.

The request below uses several variables for reusability. Replace {{channel_id}} and {{locale_code}} with the appropriate values for your use case.

Example query: Query a list of translations
GRAPHQL https://api.bigcommerce.com/stores/{{store_hash}}/graphql
X-Auth-Token: {{token}}
query {
store {
translations(
filters: {
resourceType: PROMOTIONS
channelId: "bc/store/channel/{{channel_id}}"
localeId: "bc/store/locale/{{locale_code}}"
}
first: 50
) {
edges {
node {
resourceId
fields {
fieldName
original
translation
}
}
cursor
}
pageInfo {
hasNextPage
hasPreviousPage
startCursor
endCursor
}
}
}
}

Query a Translation by Resource ID

This query returns translation(s) by resourceId.

When querying a translation by resourceId, you must provide the full resourceId in the format bc/store/promotion/{promotion_id}.

The request below uses several variables for reusability. Replace {{resourceId}}, {{channel_id}}, and {{locale_code}} with appropriate values for your use case. Make sure resourceId follows the format from the Resource fields table.

Example query: Query a translation by id
GRAPHQL https://api.bigcommerce.com/stores/{{store_hash}}/graphql
X-Auth-Token: {{token}}
query {
store {
translations(
filters: {
resourceType: PROMOTIONS
channelId: "bc/store/channel/{{channel_id}}"
localeId: "bc/store/locale/{{locale_code}}"
resourceIds: ["{{resourceId}}"]
}
) {
edges {
node {
resourceId
fields {
fieldName
original
translation
}
}
cursor
}
}
}
}

Update a Translation

This mutation updates translated values for promotions for a specific channel and locale.

Example mutation: Update a translation
GRAPHQL https://api.bigcommerce.com/stores/{{store_hash}}/graphql
X-Auth-Token: {{token}}
mutation {
translation {
updateTranslations(
input: {
resourceType: PROMOTIONS,
channelId: "bc/store/channel/{{channel_id}}",
localeId: "bc/store/locale/{{locale_code}}",
entities: [
{
resourceId: "bc/store/promotion/101",
fields: [
{ fieldName: "banner_availability", value: "Bannière disponible" },
{ fieldName: "banner_upsell", value: "Bannière de montée en gamme" },
{ fieldName: "banner_eligibility", value: "Bannière d'éligibilité" },
{ fieldName: "banner_congratulations", value: "Bannière de félicitations" }
]
},
{
resourceId: "bc/store/promotion/102",
fields: [
{ fieldName: "banner_availability", value: "Bannière disponible" },
{ fieldName: "banner_upsell", value: "Bannière de montée en gamme" },
{ fieldName: "banner_eligibility", value: "Bannière d'éligibilité" },
{ fieldName: "banner_congratulations", value: "Bannière de félicitations" }
]
}
]
}
) {
__typename
errors {
__typename
... on ValidationError {
message
}
... on EntityNotFoundError {
id
message
}
... on InvalidTranslationEntityFieldsError {
id
message
fields
}
}
}
}
}

The mutation example above shows a successful response. If invalid fields or resource IDs are provided, the API will return error responses. See the Error Handling Reference for more details on error responses.

Delete a Translation

The following mutation removes translated values for specified promotion fields, reverting them to the original values for a specific channel and locale.

Example mutation: Delete a translation
GRAPHQL https://api.bigcommerce.com/stores/{{store_hash}}/graphql
X-Auth-Token: {{token}}
mutation {
translation {
deleteTranslations(
input: {
resourceType: PROMOTIONS,
channelId: "bc/store/channel/{{channel_id}}",
localeId: "bc/store/locale/{{locale_code}}",
resources: [
{
resourceId: "bc/store/promotion/101",
fields: [
"banner_availability",
"banner_upsell",
"banner_eligibility",
"banner_congratulations"
]
},
{
resourceId: "bc/store/promotion/102",
fields: [
"banner_availability",
"banner_upsell"
]
}
]
}
) {
__typename
errors {
__typename
... on ValidationError {
message
}
... on EntityNotFoundError {
id
message
}
... on InvalidTranslationEntityFieldsError {
id
message
fields
}
}
}
}
}