> For the complete documentation index, see [llms.txt](https://apidoc.toplojas.com.br/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://apidoc.toplojas.com.br/produtos/criar-produto.md).

# 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/
```

{% hint style="info" %}
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.
{% endhint %}

## 🧩 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:

```bash
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`:

```json
{
  "Nome": "Teste1",
  "SKU": "T1",
  "Status": "A",
  "PrecoNormal": 234.56,
  "PrecoPromocional": 120.2,
  "PrecoCusto": 100.96,
  "Estoque": {
    "Tipo": "P",
    "Disponivel": 125
  },
  "Descricao": {
    "Texto": "TesteDescricao1"
  },
  "Fotos": [
    {
      "Foto": "data:image/png;base64,XXXXXXX",
      "IsCapa": true
    }
  ],
  "Atributos": [
    {
      "Grupo": "Composicao",
      "Item": "Exemplo de Composicao 1"
    }
  ]
}
```

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

{% hint style="info" %}
Referência completa deste endpoint (com todos os campos e schemas):

{% embed url="<https://api.toplojas.com.br/doc/#/Produtos>" %}
{% endhint %}
