Idiomas da vitrine
Lista os idiomas ligados na loja, lê o idioma ativo do visitante, grava a escolha dele e baixa o dicionário de textos traduzidos.
Estas quatro rotas implementam o seletor de idioma da vitrine. O idioma escolhido fica no cookie venddor_language (válido por 30 dias, Path=/, SameSite=Lax, legível pelo JavaScript; Secure quando a conexão é HTTPS). Em chamadas feitas por um app, que não tem o cookie do navegador, guarde o código você mesmo e passe-o nas rotas que o pedem.
Listar idiomas
/api/v1/storefront/languagesPúblicaLista os idiomas habilitados e o ativo
Devolve os idiomas ligados na loja e, em active, o código do idioma válido para este visitante: o do cookie venddor_language se for um idioma ligado, senão o padrão da loja.
Exemplo de requisição
Resposta
Campos da resposta
activestringitemsarrayitems[].codestringpt-BR, es, ar). É o valor para select e para os textos.items[].nameEnstringitems[].nameNativestringitems[].directionstringLTRRTLRTL (direita para esquerda) exige espelhar a interface.items[].localestringes-ES).items[].enabledbooleantrue aqui.items[].isDefaultbooleantrue no idioma padrão da loja.items[].positioninteger0).items[].createdAtstringitems[].updatedAtstringErros
| Status | Quando | Corpo |
|---|---|---|
| 500 | Falha ao listar | {"error":"failed to list languages","detail":"..."} |
Idioma ativo
/api/v1/storefront/languages/activePúblicaConsulta o idioma ativo do visitante
Devolve o idioma ativo (cookie válido ou padrão da loja) e grava de novo o cookie venddor_language, renovando a validade. Use ao abrir o app para saber em que idioma desenhar a primeira tela.
Exemplo de requisição
Resposta
Campos da resposta
codestringnameEnstringnameNativestringdirectionstringLTRRTLlocalestringenabledbooleantrue.isDefaultbooleanpositionintegercreatedAtstringupdatedAtstringErros
| Status | Quando | Corpo |
|---|---|---|
| 404 | A loja não tem nenhum idioma padrão | {"error":"no active language configured"} |
| 500 | Falha ao ler | {"error":"failed to list languages","detail":"..."} |
Escolher o idioma
/api/v1/storefront/languages/selectPúblicaEscolhe o idioma do visitante
Valida o código contra os idiomas ligados e grava o cookie venddor_language. É idempotente e responde 204 sem corpo. O código é normalizado (pt-br vira pt-BR).
Corpo da requisição
codestringobrigatórioExemplo de requisição
Resposta
Erros
| Status | Quando | Corpo |
|---|---|---|
| 400 | Corpo que não é JSON | {"error":"invalid request body","detail":"..."} |
| 400 | Sem code | {"error":"code is required"} |
| 404 | Idioma desligado ou inexistente | {"error":"language not enabled on this tenant"} |
Textos traduzidos
/api/v1/storefront/languages/{code}/translationsPúblicaConsulta os textos traduzidos de um idioma
Devolve o dicionário de textos da vitrine para o idioma. Ele já vem mesclado: pacote da plataforma, depois idioma padrão da loja, depois o idioma pedido, de modo que uma chave sem tradução cai no idioma padrão em vez de sumir. O dicionário completo é grande (cerca de 47 mil chaves e 3 MB na loja de teste, a maior parte do painel de administração): peça só os prefixos que a sua tela usa.
Parâmetros de caminho
codestringobrigatóriopt-BR, es).Parâmetros de consulta
prefixstringstorefront.,common.). Só as chaves que começam com algum deles são devolvidas. Ausente: o dicionário inteiro. Um prefixo que não casa com nada devolve {"translations": {}} com 200.Exemplo de requisição
Resposta
Campos da resposta
translationsobjectchave para texto. As chaves usam pontos como separador (common.actions). O exemplo está abreviado.Erros
| Status | Quando | Corpo |
|---|---|---|
| 404 | Idioma desligado ou inexistente | {"error":"language not enabled on this tenant"} |
| 500 | Falha ao montar o dicionário | {"error":"failed to resolve translations","detail":"..."} |