Colunas da linha
Cria, altera e remove colunas, com larguras responsivas em uma grade de 12.
A coluna divide uma linha na horizontal. A largura vai de 1 a 12 e é definida por dispositivo: uma coluna width_desktop: 6 ocupa metade da linha no desktop e, com width_mobile: 12, a linha inteira no celular. Duas colunas 6+6 ficam lado a lado e empilham no celular.
Criar coluna
Adiciona uma coluna à linha. Larguras omitidas ou zero viram 12 (largura total).
/api/v1/admin/advanced-layouts/rows/{id}/columnsAdminCriar uma coluna na linha
Requer o privilégio manage_layouts.
Parâmetros de caminho
idintegerobrigatórioId numérico da linha.
Corpo da requisição
sort_orderintegerpadrão: 0Posição na linha.
width_desktopintegerpadrão: 12Largura no desktop, 1 a 12.
width_tabletintegerpadrão: 12Largura no tablet, 1 a 12.
width_mobileintegerpadrão: 12Largura no celular, 1 a 12.
visibilityobjectVisibilidade por dispositivo. Chaves
desktop, tablet e mobile, valores booleanos. Se omitido na criação, vale true nos três.usergroup_idsstring[]Restringe a visibilidade a grupos de compradores. Vazio (padrão) mostra a todos. Aceita os atalhos
guest (visitante anônimo) e registered (logado), além de UUIDs de grupos.custom_classstringClasse CSS extra.
designobjectCamada de estilo universal (fundo, espaçamento, borda, sombra, tipografia, tamanho, efeitos), com sobrescritas por breakpoint em
base, tablet e mobile. O formato dos campos vem de Esquema de design. Opcional.Exemplo de requisição
bash
curl -X POST "$BASE_URL/api/v1/admin/advanced-layouts/rows/8029/columns" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"width_desktop": 6,
"width_tablet": 6,
"width_mobile": 12
}'Resposta
201Coluna criada
json
{
"id": 8786,
"row_id": 8029,
"sort_order": 0,
"width_desktop": 6,
"width_tablet": 6,
"width_mobile": 12,
"visibility": {
"desktop": true,
"tablet": true,
"mobile": true
}
}Campos da resposta
idintegerId da coluna.
row_idintegerId da linha dona da coluna.
sort_orderintegerPosição da coluna dentro da linha.
width_desktopintegerLargura em desktop, de 1 a 12 (grade de 12 colunas).
width_tabletintegerLargura em tablet, de 1 a 12.
width_mobileintegerLargura em celular, de 1 a 12.
visibilityobjectVisibilidade por dispositivo.
usergroup_idsstring[]Grupos de compradores que veem a coluna. Ausente quando vazio.
custom_classstringClasse CSS extra. Colunas não têm CSS próprio: estilize pela classe na linha ou use
design.designobjectCamada de estilo universal.
blocksarrayBlocos da coluna (só vem quando carregada com filhos).
Erros
| Status | Quando | Corpo de exemplo |
|---|---|---|
| 400 | O id de row no caminho não é um inteiro. | {"error":"invalid row id","detail":"id must be an integer"} |
| 400 | Corpo JSON inválido. | {"error":"invalid request body","detail":"unexpected EOF"} |
| 401 | Sem token, token inválido ou expirado. | {"error":"invalid or expired token"} |
| 403 | Seu usuário não tem o privilégio manage_layouts. | {"error":"insufficient privileges","required":"manage_layouts"} |
| 500 | Falha ao gravar ou ler no banco, ou id inexistente onde a rota não trata 404. | {"error":"failed to create column","detail":"..."} |
Atualizar coluna
Altera só os campos enviados.
/api/v1/admin/advanced-layouts/columns/{id}AdminAtualizar uma coluna
Requer o privilégio manage_layouts.
Parâmetros de caminho
idintegerobrigatórioId numérico da coluna.
Corpo da requisição
sort_orderintegerPosição.
width_desktopintegerLargura no desktop, 1 a 12.
width_tabletintegerLargura no tablet.
width_mobileintegerLargura no celular.
visibilityobjectVisibilidade por dispositivo. Chaves
desktop, tablet e mobile, valores booleanos. Se omitido, o valor atual é mantido. Se enviado, substitui o objeto inteiro.usergroup_idsstring[]Restringe a visibilidade a grupos de compradores. Vazio (padrão) mostra a todos. Aceita os atalhos
guest (visitante anônimo) e registered (logado), além de UUIDs de grupos.custom_classstringClasse CSS extra.
designobjectCamada de estilo universal (fundo, espaçamento, borda, sombra, tipografia, tamanho, efeitos), com sobrescritas por breakpoint em
base, tablet e mobile. O formato dos campos vem de Esquema de design. Substitui o objeto inteiro quando enviado; envie {} para limpar.Exemplo de requisição
bash
curl -X PUT "$BASE_URL/api/v1/admin/advanced-layouts/columns/8786" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"width_desktop": 8
}'Resposta
200Coluna atualizada
json
{
"id": 8786,
"row_id": 8029,
"sort_order": 0,
"width_desktop": 8,
"width_tablet": 12,
"width_mobile": 12,
"visibility": {
"desktop": true,
"tablet": true,
"mobile": true
}
}Campos da resposta
idintegerId da coluna.
row_idintegerId da linha dona da coluna.
sort_orderintegerPosição da coluna dentro da linha.
width_desktopintegerLargura em desktop, de 1 a 12 (grade de 12 colunas).
width_tabletintegerLargura em tablet, de 1 a 12.
width_mobileintegerLargura em celular, de 1 a 12.
visibilityobjectVisibilidade por dispositivo.
usergroup_idsstring[]Grupos de compradores que veem a coluna. Ausente quando vazio.
custom_classstringClasse CSS extra. Colunas não têm CSS próprio: estilize pela classe na linha ou use
design.designobjectCamada de estilo universal.
blocksarrayBlocos da coluna (só vem quando carregada com filhos).
Erros
| Status | Quando | Corpo de exemplo |
|---|---|---|
| 400 | O id de column no caminho não é um inteiro. | {"error":"invalid column id","detail":"id must be an integer"} |
| 400 | Corpo JSON inválido. | {"error":"invalid request body","detail":"unexpected EOF"} |
| 401 | Sem token, token inválido ou expirado. | {"error":"invalid or expired token"} |
| 403 | Seu usuário não tem o privilégio manage_layouts. | {"error":"insufficient privileges","required":"manage_layouts"} |
| 500 | Falha ao gravar ou ler no banco, ou id inexistente onde a rota não trata 404. | {"error":"failed to update column","detail":"..."} |
Excluir coluna
Remove a coluna e os blocos dentro dela.
/api/v1/admin/advanced-layouts/columns/{id}AdminExcluir uma coluna
Requer o privilégio manage_layouts.
Parâmetros de caminho
idintegerobrigatórioId numérico da coluna.
Exemplo de requisição
bash
curl -X DELETE "$BASE_URL/api/v1/admin/advanced-layouts/columns/8786" \
-H "Authorization: Bearer $TOKEN"Resposta
200Excluída
json
{
"message": "column deleted"
}Erros
| Status | Quando | Corpo de exemplo |
|---|---|---|
| 400 | O id de column no caminho não é um inteiro. | {"error":"invalid column id","detail":"id must be an integer"} |
| 401 | Sem token, token inválido ou expirado. | {"error":"invalid or expired token"} |
| 403 | Seu usuário não tem o privilégio manage_layouts. | {"error":"insufficient privileges","required":"manage_layouts"} |
| 404 | Coluna não existe. | {"error":"column not found","detail":"8786"} |
| 500 | Falha ao gravar ou ler no banco, ou id inexistente onde a rota não trata 404. | {"error":"failed to delete column","detail":"..."} |