GET/api/v1/produtos
O catálogo como o app o vê: fotos, atributos, variações e a sugestão pronta.
Precisa do escopo qualquer um de leitura
- Só produtos publicados. Produto escondido não está na vitrine, então configurá-lo não mudaria nada lá.
- Cada produto vem com
sugestao: o mapa que nós montaríamos a partir da foto principal de cada variação — { "atributo": "Cor", "fotos": { "Azul": ["987"] } }. Vem null quando não há de onde tirar. - A resposta traz
tem_mais; enquanto ele for verdadeiro, peça a página seguinte.
q texto- Busca por nome. Vazio traz a loja inteira.
pagina número- A partir de 1.
por_pagina número- Até 200. O padrão é 50.
curl -H "Authorization: Bearer $TOKEN" \
"https://api.rockbase.com.br/api/v1/produtos?por_pagina=200"
GET/api/v1/galeria/config
Tudo que está configurado, no mesmo formato que o PUT aceita de volta.
Precisa do escopo galeria:ler
- Um item por foto, com as mesmas colunas da planilha. O que sai daqui volta para cá sem tradução.
- Loja sem nada configurado devolve
{ "ok": true, "itens": [] }.
curl -H "Authorization: Bearer $TOKEN" \
"https://api.rockbase.com.br/api/v1/galeria/config"
PUT/api/v1/galeria/config
Substitui a configuração inteira. O produto que não vier no corpo perde o mapa.
Precisa do escopo galeria:escrever
- Tudo ou nada: se qualquer item for inválido, nenhum é aplicado e a resposta traz a lista de erros com o índice de cada um.
- A cota do plano vale igual. Se o lote não couber, a resposta é 402 e nada é gravado.
- A resposta traz
importacao: o id para acompanhar o lote, e estado, que num lote pequeno já vem concluida. - A loja é publicada uma vez, no fim.
curl -X PUT "https://api.rockbase.com.br/api/v1/galeria/config" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"itens": [
{
"produto_id": "123",
"foto_id": "987",
"atributo": "Cor",
"valor": "Azul"
},
{
"produto_id": "123",
"foto_id": "988",
"atributo": "Cor",
"valor": "Preto"
}
]
}'
PATCH/api/v1/galeria/config
Muda só o que veio, sem tocar no resto. É a promessa da planilha.
Precisa do escopo galeria:escrever
- Produto ausente do corpo continua exatamente como está. Para apagar, mande o item com
"apagar": "sim". - Fora isso, o comportamento é o mesmo do PUT: tudo ou nada, cota antes de gravar, uma publicação no fim.
curl -X PATCH "https://api.rockbase.com.br/api/v1/galeria/config" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"itens": [
{
"produto_id": "123",
"foto_id": "987",
"atributo": "Cor",
"valor": "Vermelho"
}
]
}'
GET/api/v1/agrupador/config
Os grupos de produtos irmãos, no mesmo formato que o PUT aceita de volta.
Precisa do escopo agrupador:ler
- Um item por produto agrupado, com as mesmas colunas da planilha:
grupo, atributo, valor e ordem. - Linhas com o mesmo
grupo são o mesmo grupo — é o rótulo que une os irmãos. - Loja sem nada configurado devolve
{ "ok": true, "itens": [] }.
curl -H "Authorization: Bearer $TOKEN" \
"https://api.rockbase.com.br/api/v1/agrupador/config"
PUT/api/v1/agrupador/config
Substitui a configuração inteira. O produto que não vier no corpo sai do grupo.
Precisa do escopo agrupador:escrever
- Itens que repetem o mesmo
grupo formam um grupo, todos com a mesma atributo. Cada produto entra em um grupo só. - Tudo ou nada: se qualquer item for inválido, nenhum é aplicado e a resposta traz cada erro com o índice do item.
- A cota do plano vale igual. Se o lote não couber, a resposta é 402 e nada é gravado.
- A loja é publicada uma vez, no fim.
curl -X PUT "https://api.rockbase.com.br/api/v1/agrupador/config" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"itens": [
{
"produto_id": "101",
"grupo": "tapete-kodi",
"atributo": "Medida",
"valor": "2,00x3,00m",
"ordem": 0
},
{
"produto_id": "102",
"grupo": "tapete-kodi",
"atributo": "Medida",
"valor": "2,50x3,00m",
"ordem": 1
},
{
"produto_id": "103",
"grupo": "tapete-kodi",
"atributo": "Medida",
"valor": "2,00x2,50m",
"ordem": 2
}
]
}'
PATCH/api/v1/agrupador/config
Muda só o que veio, sem tocar no resto. É a promessa da planilha.
Precisa do escopo agrupador:escrever
- Produto ausente do corpo continua como está — inclusive os outros produtos do mesmo grupo.
- Para tirar um produto do grupo, mande o item com
"apagar": "sim". - Produto que não existe mais na loja vira aviso no relatório, nunca recusa o lote.
curl -X PATCH "https://api.rockbase.com.br/api/v1/agrupador/config" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"itens": [
{
"produto_id": "102",
"grupo": "tapete-kodi",
"atributo": "Medida",
"valor": "2,50x3,00m"
}
]
}'
GET/api/v1/banners/config
As seções da loja, inteiras, no mesmo formato que o PUT aceita de volta.
Precisa do escopo banners:ler
- Cada seção sai completa:
modelo, ordem, ligada, alcance e conteudo — inclusive os ids das imagens. - O
alcance é a condição do motor de regras, o mesmo JSON das etiquetas: { "kind": "inCategory", "categoryId": "123" }, { "kind": "hasTag", "tag": "promo" }, { "kind": "all", "conditions": [] } para todos. - Loja sem nada configurado devolve
{ "ok": true, "secoes": [] }.
curl -H "Authorization: Bearer $TOKEN" \
"https://api.rockbase.com.br/api/v1/banners/config"
PUT/api/v1/banners/config
Substitui o conjunto. A seção que não vier no corpo sai, e as imagens dela vão para o expurgo de 30 dias.
Precisa do escopo banners:escrever
- O id de cada seção é seu: é ele que o PATCH e o GET usam depois. Letras, números, hífen e sublinhado, até 64.
- As imagens sobem ANTES, por
/api/v1/banners/imagens — o corpo daqui só referencia os ids. - Tudo ou nada: um item inválido recusa o corpo inteiro, com o índice e a frase de cada erro.
- O teto de seções publicadas do plano vale no estado final. Se não couber, 402 e nada é gravado.
- A loja é publicada uma vez, no fim.
curl -X PUT "https://api.rockbase.com.br/api/v1/banners/config" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"secoes": [
{
"id": "colecao-verao",
"modelo": "faixa",
"ordem": 0,
"ligada": true,
"alcance": {
"kind": "inCategory",
"categoryId": "123456"
},
"conteudo": {
"imagens": {
"computador": {
"imagemId": "a1b2c3",
"proporcao": {
"tipo": "lista",
"valor": "3/1"
}
}
},
"textoAlternativo": "Coleção de verão"
}
}
]
}'
PATCH/api/v1/banners/config
Cria ou atualiza só as seções que vieram, sem tocar no resto.
Precisa do escopo banners:escrever
- Seção ausente do corpo continua exatamente como está — é a promessa da planilha, cumprida na API.
- Para trocar só o alcance de uma seção, mande a seção inteira com o alcance novo: o GET devolve o formato pronto para editar.
curl -X PATCH "https://api.rockbase.com.br/api/v1/banners/config" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"secoes": [
{
"id": "colecao-verao",
"modelo": "faixa",
"ordem": 0,
"ligada": true,
"alcance": {
"kind": "inCategory",
"categoryId": "123456"
},
"conteudo": {
"imagens": {
"computador": {
"imagemId": "a1b2c3",
"proporcao": {
"tipo": "lista",
"valor": "3/1"
}
}
},
"textoAlternativo": "Coleção de verão"
}
}
]
}'
POST/api/v1/banners/imagens
Reserva o espaço e devolve uma URL assinada por largura. O arquivo não passa por aqui.
Precisa do escopo banners:escrever
- São dois passos: este POST reserva a cota e assina as URLs; depois, um PUT do arquivo em cada URL, direto na nossa CDN, com o
Content-Type igual ao declarado. - Reduza antes de enviar:
papel "computador" espera as larguras 1600, 1100 e 750; "celular", 1100 e 750. Mande o tamanho em bytes de cada uma. - O teto é 5 MB por arquivo, e os formatos são JPEG, PNG e WebP — GIF e SVG são recusados com o porquê, como no painel.
- Sem espaço na conta, 402 — e nada do que já está no ar sai do ar.
- A resposta traz o
id da imagem, que é o que a seção referencia em imagemId.
curl -X POST "https://api.rockbase.com.br/api/v1/banners/imagens" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"papel": "computador",
"tipo": "image/webp",
"arquivos": [
{
"largura": 1600,
"bytes": 220000
},
{
"largura": 1100,
"bytes": 70000
},
{
"largura": 750,
"bytes": 17000
}
]
}'
GET/api/v1/importacoes/{id}
O estado e o relatório de um lote.
Precisa do escopo qualquer um de leitura
- O
id vem no campo importacao da resposta do PUT ou do PATCH. estado é concluida, processando ou falhou. Um lote muito grande continua sozinho e vira concluida sem você fazer nada.
curl -H "Authorization: Bearer $TOKEN" \
"https://api.rockbase.com.br/api/v1/importacoes/8f3c..."