Skip to content

Channel Translations

The locale-specific copy for a channel — its display name, tagline, maintenance-mode text, and per-locale home-page SEO.

⚠️ The URL uses an underscore: channel_translations, not channel-translations. This matches the IRI strings emitted by /api/shop/channels/{id} (translation and translations[]).

Most clients reach a single row by following the translation / translations[] IRIs on a Channel response. The collection endpoint is mostly useful for bulk auditing or pre-caching every locale.

Endpoints

MethodPathPurpose
GET/api/shop/channel_translationsPaginated flat list of every translation
GET/api/shop/channel_translations/{id}Single translation by ID

Request Headers

HeaderRequiredDescription
AcceptYesapplication/json
X-STOREFRONT-KEYYesStorefront API key (pk_storefront_…)

Query Parameters (collection only)

ParameterTypeDefaultDescription
pageinteger1Page number (1-based)
per_pageinteger10Items per page. Max 50.

Pagination headers are emitted on the collection. See Pagination.

Translation Object Fields

FieldTypeDescription
idintegerTranslation primary key
channelIdintegerOwning channel — fetch via GET /api/shop/channels/{channelId}
localestringLocale code (en, fr, de, ar, …)
namestringChannel display name in this locale
descriptionstring | nullChannel tagline / description
maintenanceModeTextstring | nullText shown to customers while maintenance mode is active
homeSeoobject{ meta_title, meta_keywords, meta_description } for the home page in this locale
createdAtstring | nullCreation timestamp
updatedAtstring | nullLast update timestamp

Typical Flow

GET /api/shop/channels/1
   └─ response.translation  = "/api/shop/channel_translations/1"
   └─ response.translations = [
        "/api/shop/channel_translations/1",  // en
        "/api/shop/channel_translations/2",  // fr
        "/api/shop/channel_translations/3",  // de
        ...
      ]

GET /api/shop/channel_translations/2
   └─ { id: 2, channelId: 1, locale: "fr", name: "...", maintenanceModeText: "...", homeSeo: {...} }

You don't need to know the translation ID up front — read the parent channel's translation / translations[] and dereference any entry you need.

Use Cases

  • Audit translation completeness across every locale and channel.
  • Build an admin UI that lets store managers review channel-level localization.
  • Pre-cache every locale's home-page SEO for a multi-locale SPA.
  • Render the localized maintenance-mode banner when Channel.isMaintenanceOn = 1.

Released under the MIT License.