For the complete documentation index, see llms.txt. This page is also available as Markdown.

Criar Produto

Cadastra um novo produto na loja. É possível criar produtos simples (sem variação) ou com variações (ex.: Cor, Tamanho), incluindo fotos e atributos.

POST /produtos/

As fotos são enviadas no formato Base64, no padrão data:image/png;base64,.... A foto com "IsCapa": true é a imagem principal do produto.

🧩 Blocos principais do corpo

Bloco
Descrição

Dados básicos

Nome, SKU, Status, preços, dimensões, Fabricante, Marca, GTIN, EAN etc.

Departamentos

Lista de departamentos; DepartamentoPrincipal indica o principal

Estoque

Tipo: P (produto simples, com Disponivel) ou V (controlado por variação)

Variacoes

Definição das variações (CampoA/CampoB) e a Listagem de cada combinação

Fotos

Imagens em Base64 (data:image/png;base64,...), com indicação da capa

Atributos

Grupos e itens de atributos do produto

Relacionados

Códigos de produtos relacionados

📥 Exemplo de requisição (produto com variação)

Este é o exemplo completo, com variações, atributos e fotos:

curl -X POST "https://api.toplojas.com.br/produtos/" \
  -H "Authorization: Bearer [Token]" \
  -H "Loja: [Identificador de Sua Loja]" \
  -H "Content-Type: application/json" \
  -d '{
    "Nome": "Teste1",
    "SKU": "T1",
    "Status": "A",
    "PrecoNormal": 234.56,
    "PrecoPromocional": 120.2,
    "PrecoCusto": 100.96,
    "Tags": "Teste1 Teste1 Teste1 Teste1 Teste1",
    "Fabricante": "TesteFabricante1",
    "Marca": "TesteMarca1",
    "Dim_Altura": 1.548,
    "Dim_Largura": 2.323,
    "Dim_Comprimento": 4.323,
    "Peso": 12.34,
    "DepartamentoPrincipal": "Livros > Aventura",
    "Departamentos": [
      "Livros",
      "Livros > Aventura",
      "Escolar",
      "Escolar > Livros"
    ],
    "GTIN": "TesteGTIN1",
    "EAN": "TesteEAN1",
    "CodigoImportacao": "IMP100",
    "Estoque": {
      "Tipo": "V"
    },
    "Descricao": {
      "Texto": "TesteDescricao1"
    },
    "Relacionados": [
      1188323,
      1187878,
      1187877
    ],
    "Fotos": [
      {
        "Foto": "data:image/png;base64,XXXXXXXXXX",
        "IsCapa": true
      }
    ],
    "Variacoes": {
      "CampoAIs": true,
      "CampoA": "Cor",
      "CampoBIs": false,
      "CampoB": "",
      "Listagem": [
        {
          "CampoA": "Azul",
          "CampoB": "",
          "SKU": "Azul_SKU",
          "GTIN": "Azul_GTIN",
          "EAN": "Azul_EAN",
          "PrecoTipo": "N",
          "PrecoValor": 0,
          "PesoTipo": "N",
          "PesoValor": 0,
          "Estoque": {
            "Disponivel": 100
          }
        },
        {
          "CampoA": "Preto",
          "CampoB": "",
          "SKU": "Preto_SKU",
          "GTIN": "Preto_GTIN",
          "EAN": "Preto_EAN",
          "PrecoTipo": "F",
          "PrecoValor": 250.26,
          "PesoTipo": "F",
          "PesoValor": 2.32,
          "Estoque": {
            "Disponivel": 200
          }
        },
        {
          "CampoA": "Branco",
          "CampoB": "",
          "SKU": "Branco_SKU",
          "GTIN": "Branco_GTIN",
          "EAN": "Branco_EAN",
          "PrecoTipo": "A",
          "PrecoValor": 50.25,
          "PesoTipo": "S",
          "PesoValor": 0.852,
          "Estoque": {
            "Disponivel": 300
          }
        }
      ]
    },
    "Atributos": [
      {
        "Grupo": "Composicao",
        "Item": "Exemplo de Composicao 1"
      },
      {
        "Grupo": "Genero",
        "Item": "Exemplo de Genero 1"
      },
      {
        "Grupo": "Mataria Prima",
        "Item": "Exemplo de Mataria Prima 1"
      }
    ]
  }'

🧾 Produto sem variação

Para um produto simples, use Estoque.Tipo como P e informe a quantidade em Estoque.Disponivel, sem o bloco Variacoes:

Em caso de sucesso, a API retorna o HTTP Code 201.

Referência completa deste endpoint (com todos os campos e schemas):

Last updated