VenddorDocumentação API
API atualAPI legada
Guia rápidoReferência completa
Carregando índice…
API legada/Referência completa

Blocos e idiomas

Como a Venddor 1.0 expunha os blocos de layout da vitrine e a lista de idiomas, e como a plataforma atual responde a esse contrato.

Na plataforma antiga (Venddor 1.0), a aparência de cada página da loja era montada com blocos: o logotipo, a barra de busca, um carrossel de banners, uma grade de produtos. Integradores e apps antigos leem e editam esses blocos por /api/blocks. Esta seção documenta esse contrato, mais a lista de idiomas (/api/languages) que acompanhava a configuração da loja.

São rotas de compatibilidade, mantidas para quem já integrou o layout da loja pelo contrato da 1.0.

Pontos-chave
  • Um layout é a coleção de blocos de um tipo de página e tem id inteiro (11). Um bloco vive dentro de um layout e tem id UUID.
  • Leitura (GET) aceita qualquer usuário autenticado; escrita (POST, PUT, DELETE) pede administrador.
  • Para criar, atualizar ou excluir é preciso informar o layout_id do bloco, e ele precisa ser um número no JSON.
  • Use /api/v1.0/blocks. Na URL sem versão, o id do bloco sai como número e não volta a funcionar no GET, PUT ou DELETE.
  • A lista de idiomas é fixa (português e inglês) e não reflete os idiomas que a loja realmente habilitou.

Como funciona

Listar blocos→Ler um bloco→Criar no layout→Atualizar→Excluir

A leitura percorre os layouts da loja (até 250) e devolve os blocos de todos eles numa lista única, cada bloco com o layout_id a que pertence. Guarde esse layout_id: ele é obrigatório para atualizar e excluir.

Campo do blocoSignificado
block_idId do bloco (UUID na URL /api/v1.0).
nameTítulo do bloco.
typeTipo do bloco, por exemplo logo, search_bar. Define o que a vitrine desenha.
positionZona da página onde o bloco fica (header, main, footer...). Novo bloco sem posição entra em main.
orderPosição dentro da zona, a partir de 0.
contentA configuração do bloco, como texto JSON (string), não como objeto.
layout_idId inteiro do layout dono.
company_idSempre 0. Mantido por compatibilidade.
statusA visível, D oculto.

Conceitos-chave

content é uma string

Na resposta, content é o JSON do bloco serializado em texto ("{\"max_height\":60}"). Para criar e atualizar você pode mandar tanto uma string JSON quanto um objeto; a plataforma aceita os dois.

Duas URLs, dois formatos de id

Como nas demais rotas de compatibilidade, /api/v1.0/... usa UUID e /api/... troca UUIDs por inteiros derivados. No caso dos blocos a troca quebra o ciclo: a lista em /api/blocks devolve block_id numérico, mas GET /api/blocks/{numérico} responde 404 e DELETE responde 500. Só o UUID funciona no caminho. Resolva usando /api/v1.0/blocks.

Erros

Erros vêm como {"message": "...", "status": 400}. Atenção: bloco ou layout inexistente nas escritas responde 500, não 404 (veja as páginas de leitura e escrita).

Endpoints

Método e caminhoPara que serveAutenticaçãoPágina
GET /api/v1.0/blocks e /api/blocksLista blocos de todos os layoutsQualquer usuário autenticadoBlocos: consulta
GET /api/v1.0/blocks/{id} e /api/blocks/{id}Lê um blocoQualquer usuário autenticadoBlocos: consulta
POST /api/v1.0/blocks e /api/blocksCria um bloco em um layoutAdministradorBlocos: escrita
PUT /api/v1.0/blocks/{id} e /api/blocks/{id}Atualiza um blocoAdministradorBlocos: escrita
DELETE /api/v1.0/blocks/{id} e /api/blocks/{id}Exclui um blocoAdministradorBlocos: escrita
GET /api/v1.0/languagesLista os idiomasQualquer usuário autenticadoIdiomas
GET /api/v1.0/languages/{id}Lê um idiomaQualquer usuário autenticadoIdiomas

Erros comuns

  • Mandar layout_id como texto. "layout_id": "11" é tratado como ausente e a resposta é 400 Field 'layout_id' is required. Envie o número 11.
  • Esquecer o layout_id na exclusão. O DELETE pede ?layout_id= na URL e responde 400 sem ele.
  • Usar o id numérico de /api/blocks no caminho. Não é traduzido de volta. Use /api/v1.0/blocks.
  • Esperar 404 ao editar bloco inexistente. O erro vem como 500 com block not found ou layout not found.
  • Ler content como objeto. É uma string JSON; faça JSON.parse.
  • Achar que /api/v1.0/languages lista os idiomas da loja. A lista é fixa em pt e en.

Próximos passos

Blocos: consulta
Listar e ler blocos.
Blocos: escrita
Criar, atualizar e excluir.
Idiomas
A lista fixa de idiomas.
Anterior
Cotação de preço em lote
Próxima
Blocos: consulta
Nesta página
  • Como funciona
  • Conceitos-chave
  • content é uma string
  • Duas URLs, dois formatos de id
  • Erros
  • Endpoints
  • Erros comuns
  • Próximos passos