Appearance
Configuração da Loja
Cada Workspace possui uma loja única, identificada pelo header X-Shop-Id. Por isso, os endpoints de configuração não recebem um ID na rota — eles sempre operam sobre a loja do contexto atual.
Aqui você gerencia as informações gerais da loja: nome, descrição, tags, configurações de SEO, personalização de tema e integrações externas.
Estrutura de Dados Principal
| Campo | Tipo | Descrição |
|---|---|---|
name | String | Nome da loja (máx. 100 caracteres). |
hash | UUID | Identificador público único da loja. |
description | String | Descrição curta da loja (máx. 200 caracteres). |
tags | String | Tags separadas por vírgula (máx. 5000 caracteres). |
seoConfigs | String | Configurações de SEO serializadas em JSON (máx. 5000 caracteres). |
themeSettings | String | Configurações de tema serializadas em JSON (máx. 5000 caracteres). |
integrations | String | Integrações externas serializadas em JSON (máx. 5000 caracteres). |
JSON como String
Os campos seoConfigs, themeSettings e integrations são enviados e armazenados como string JSON (ex: "{\"primaryColor\": \"#0055ff\"}"), e não como objetos. No endpoint de detalhe, eles são retornados já desserializados como objetos.
Obter Detalhes da Loja [public]
Retorna as configurações públicas da loja identificada pelo X-Shop-Id. Ideal para montar a vitrine (nome, SEO, tema) sem exigir autenticação.
http
GET /v1/shop/public/detailExemplo de Requisição
bash
curl -X GET "https://api.us.basis.tavares.in/v1/shop/public/detail" \
-H "X-Shop-Id: 123e4567-e89b-12d3-a456-426614174000" \
-H "Accept: application/json"Respostas
200 OK
Retorna os dados públicos da loja.
json
{
"name": "Minha Loja",
"hash": "9f1c2a3b-4d5e-4f6a-8b7c-9d0e1f2a3b4c",
"description": "Uma loja virtual incrível.",
"tags": "loja, e-commerce, varejo",
"seoConfigs": {},
"themeSettings": {},
"integrations": {},
"createdAt": "2026-06-04T14:25:49.078+00:00"
}401 Unauthorized
Ocorre quando o X-Shop-Id está ausente, é inválido ou o domínio/IP de origem não está autorizado.
json
{
"errors": [
{
"message": "X-Shop-Id não identificado",
"field": "X-Shop-Id"
}
]
}Atualizar Configurações da Loja
Atualiza as configurações da loja do contexto atual. Requer autenticação de user (lojista).
http
PUT /v1/shopPayload (Body)
| Atributo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
name | string | Sim | Nome da loja (máx. 100 caracteres). |
description | string | Não | Descrição curta (máx. 200 caracteres). Aceita null. |
tags | string | Não | Tags separadas por vírgula (máx. 5000 caracteres). Aceita null. |
seoConfigs | string | Não | Configurações de SEO em string JSON (máx. 5000 caracteres). Aceita null. |
themeSettings | string | Não | Configurações de tema em string JSON (máx. 5000 caracteres). Aceita null. |
integrations | string | Não | Integrações em string JSON (máx. 5000 caracteres). Aceita null. |
Exemplo de Requisição
bash
curl -X PUT "https://api.us.basis.tavares.in/v1/shop" \
-H "X-Shop-Id: 123e4567-e89b-12d3-a456-426614174000" \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{
"name": "Minha Loja",
"description": "Uma loja virtual incrível.",
"tags": "loja, e-commerce, varejo",
"themeSettings": "{}",
"seoConfigs": "{}",
"integrations": "{}"
}'Respostas
204 No Content
Configurações atualizadas com sucesso.
422 Unprocessable Entity
Erro de validação nos campos enviados.
json
{
"errors": [
{
"message": "Nome é obrigatório",
"rule": "required",
"field": "name"
}
]
}