> ## Documentation Index
> Fetch the complete documentation index at: https://api-docs.erp.olist.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Incluir Produto

> Serviço destinado a fazer inclusão de Produtos.

## Endpoint

```
POST https://api.tiny.com.br/api2/produto.incluir.php
```

## Parâmetros

| Parâmetro | Tipo   | Ocorrência  | Descrição                                     |
| --------- | ------ | ----------- | --------------------------------------------- |
| token     | string | obrigatório | Chave gerada para identificar sua empresa     |
| produto   | object | obrigatório | Dados do produto conforme layout especificado |
| formato   | string | obrigatório | Formato do retorno (json)                     |

### Estrutura do parâmetro "produto"

| Campo                                                        | Tipo    | Tamanho | Ocorrência                    | Descrição                                         |
| ------------------------------------------------------------ | ------- | ------- | ----------------------------- | ------------------------------------------------- |
| produtos\[]                                                  | list    | -       | obrigatório                   | Conjunto de Produtos                              |
| produtos\[].produto.sequencia                                | inteiro | -       | obrigatório                   | Número sequencial para identificar cada produto   |
| produtos\[].produto.nome                                     | string  | 120     | obrigatório                   | Nome do produto                                   |
| produtos\[].produto.codigo                                   | string  | 30      | opcional                      | Código do produto                                 |
| produtos\[].produto.unidade                                  | string  | 3       | obrigatório                   | Unidade do produto                                |
| produtos\[].produto.preco                                    | decimal | -       | obrigatório                   | Preço de venda do produto                         |
| produtos\[].produto.preco\_promocional                       | decimal | -       | opcional                      | Preço promocional do produto                      |
| produtos\[].produto.ncm                                      | string  | 10      | opcional                      | NCM do produto                                    |
| produtos\[].produto.origem                                   | string  | 1       | obrigatório                   | Código conforme Tabela Origem                     |
| produtos\[].produto.gtin                                     | string  | 14      | opcional                      | GTIN/EAN do produto                               |
| produtos\[].produto.gtin\_embalagem                          | string  | 14      | opcional                      | GTIN/EAN da embalagem do produto                  |
| produtos\[].produto.localizacao                              | string  | 50      | condicional                   | Localização física no estoque                     |
| produtos\[].produto.peso\_liquido                            | decimal | -       | opcional                      | Peso líquido do produto (Kg)                      |
| produtos\[].produto.peso\_bruto                              | decimal | -       | opcional                      | Peso bruto do produto (Kg)                        |
| produtos\[].produto.estoque\_minimo                          | decimal | -       | opcional                      | Quantidade mínima do produto no estoque           |
| produtos\[].produto.estoque\_maximo                          | decimal | -       | opcional                      | Quantidade máxima do produto no estoque           |
| produtos\[].produto.estoque\_atual                           | decimal | -       | opcional                      | Quantidade no estoque                             |
| produtos\[].produto.id\_fornecedor                           | int     | -       | opcional                      | Identificação do fornecedor na Olist              |
| produtos\[].produto.codigo\_fornecedor                       | string  | 15      | opcional                      | Código do fornecedor na Olist                     |
| produtos\[].produto.codigo\_pelo\_fornecedor                 | string  | 20      | opcional                      | Código do produto pelo fornecedor                 |
| produtos\[].produto.unidade\_por\_caixa                      | string  | 3       | opcional                      | Ítens por embalagem                               |
| produtos\[].produto.preco\_custo                             | decimal | -       | opcional                      | Preço de custo do produto                         |
| produtos\[].produto.situacao                                 | string  | 1       | obrigatório                   | Situação: "A" (Ativo) ou "I" (Inativo)            |
| produtos\[].produto.tipo                                     | string  | 1       | obrigatório                   | "P" (Produto) ou "S" (Serviço)                    |
| produtos\[].produto.classe\_ipi                              | string  | 5       | opcional                      | Classe para bebidas/cigarros conforme tabela      |
| produtos\[].produto.valor\_ipi\_fixo                         | decimal | -       | opcional                      | Valor IPI fixo para tributação específica         |
| produtos\[].produto.cod\_lista\_servicos                     | string  | 5       | opcional                      | Código conforme Tabela Lista de Serviços          |
| produtos\[].produto.descricao\_complementar                  | text    | -       | opcional                      | Descrição complementar para propostas/pedidos     |
| produtos\[].produto.obs                                      | text    | -       | opcional                      | Observações gerais sobre o produto                |
| produtos\[].produto.garantia                                 | text    | 20      | opcional                      | Garantia do produto                               |
| produtos\[].produto.cest                                     | text    | 9       | opcional                      | Código CEST do produto                            |
| produtos\[].produto.codigo\_anvisa                           | text    | 13      | obrigatório para medicamentos | Código do produto na ANVISA                       |
| produtos\[].produto.valor\_max                               | decimal | -       | opcional                      | Preço máximo para o consumidor                    |
| produtos\[].produto.motivo\_isencao                          | text    | 255     | opcional                      | Motivo de isenção da ANVISA                       |
| produtos\[].produto.dias\_preparacao                         | int     | 9       | opcional                      | Quantidade dias corridos para disponibilizar      |
| produtos\[].produto.marca                                    | string  | -       | opcional                      | Marca do produto                                  |
| produtos\[].produto.tipo\_embalagem                          | int     | -       | opcional                      | Tipo embalagem: 1 (Envelope), 2 (Caixa), 3 (Rolo) |
| produtos\[].produto.altura\_embalagem                        | decimal | -       | opcional                      | Altura da embalagem em cm                         |
| produtos\[].produto.largura\_embalagem                       | decimal | -       | opcional                      | Largura da embalagem em cm                        |
| produtos\[].produto.comprimento\_embalagem                   | decimal | -       | opcional                      | Comprimento da embalagem em cm                    |
| produtos\[].produto.diametro\_embalagem                      | decimal | -       | opcional                      | Diâmetro da embalagem em cm                       |
| produtos\[].produto.categoria                                | string  | -       | opcional                      | Árvore de categorias usando separador ">>"        |
| produtos\[].produto.anexos\[]                                | list    | -       | opcional                      | Lista contendo imagens e anexos                   |
| produtos\[].produto.anexos\[].anexo                          | string  | -       | opcional                      | URL de acesso ao anexo/imagem                     |
| produtos\[].produto.imagens\_externas\[]                     | list    | -       | opcional                      | Lista de imagens externas do produto              |
| produtos\[].produto.imagens\_externas\[].imagem\_externa.url | string  | -       | obrigatório                   | URL da imagem externa                             |
| produtos\[].produto.classe\_produto                          | string  | 1       | opcional                      | Classificação: S/K/V/F/M (padrão: S)              |
| produtos\[].produto.kit\[]                                   | list    | -       | opcional                      | Lista contendo itens do kit                       |
| produtos\[].produto.kit\[].item.id\_produto                  | int     | -       | obrigatório                   | ID do produto na Olist                            |
| produtos\[].produto.kit\[].item.quantidade                   | decimal | -       | obrigatório                   | Quantidade do produto dentro do kit               |
| produtos\[].produto.variacoes\[]                             | list    | -       | opcional                      | Lista contendo variações do produto               |
| produtos\[].produto.variacoes\[].variacao.codigo             | string  | -       | opcional                      | Código da variação                                |
| produtos\[].produto.variacoes\[].variacao.preco              | decimal | -       | opcional                      | Preço da variação                                 |
| produtos\[].produto.variacoes\[].variacao.preco\_promocional | decimal | -       | opcional                      | Preço promocional da variação                     |
| produtos\[].produto.variacoes\[].variacao.estoque\_atual     | decimal | -       | opcional                      | Quantidade em estoque da variação                 |
| produtos\[].produto.variacoes\[].variacao.grade\[]           | array   | -       | opcional                      | Grade da variação (chave-valor)                   |
| produtos\[].produto.tags\[]                                  | array   | -       | opcional                      | Tags do produto (IDs pré-cadastradas)             |
| produtos\[].produto.seo.seo\_title                           | string  | 120     | opcional                      | Título para resultados busca Google               |
| produtos\[].produto.seo.seo\_keywords                        | string  | 255     | opcional                      | Palavras-chave SEO (separadas por vírgula)        |
| produtos\[].produto.seo.link\_video                          | string  | 100     | opcional                      | Link do vídeo                                     |
| produtos\[].produto.seo.seo\_description                     | string  | 255     | opcional                      | Descrição para resultados busca Google            |
| produtos\[].produto.seo.slug                                 | text    | -       | opcional                      | Identificação legível no link do produto          |

> Campos com valores decimais utilizam "." (ponto) como separador (ex: "5.25").

> Campo `categoria` espera árvore de categorias usando separador ">>" (ex: "Categoria pai >> Categoria filha").

> Campo `classe_produto`: S (Simples), K (Kit), V (Com variações), F (Fabricado), M (Matéria-prima). Padrão: 'S'.

> Campo `kit` considerado apenas se classe\_produto = 'K'.

> Campo `variacoes` considerado apenas se classe\_produto = 'V'.

> Array `grade` onde chave é tipo variação (ex: Tamanho, Cor) e valor é valor da variação (ex: GG, Branco).

> Campo `preco_promocional` considerado apenas com extensão "Preço promocional" instalada.

## Retorno

| Campo                                                  | Tipo   | Tamanho | Ocorrência  | Descrição                                 |
| ------------------------------------------------------ | ------ | ------- | ----------- | ----------------------------------------- |
| retorno                                                | object | -       | obrigatório | Elemento raiz do retorno                  |
| retorno.status\_processamento                          | int    | -       | obrigatório | Conforme tabela "Status de Processamento" |
| retorno.status                                         | string | -       | obrigatório | "OK" ou "Erro"                            |
| retorno.codigo\_erro                                   | int    | -       | obrigatório | Conforme tabela "Códigos de erro"         |
| retorno.erros\[]                                       | list   | -       | condicional | Lista dos erros encontrados               |
| retorno.erros\[].erro                                  | string | -       | condicional | Descrição do erro                         |
| retorno.registros\[]                                   | list   | -       | condicional | Lista de resultados                       |
| retorno.registros\[].registro                          | object | -       | condicional | Representa um Produto                     |
| retorno.registros\[].registro.sequencia                | int    | -       | condicional | Número sequencial do produto              |
| retorno.registros\[].registro.status                   | string | -       | condicional | "OK" ou "Erro"                            |
| retorno.registros\[].registro.codigo\_erro             | int    | -       | condicional | Código do erro                            |
| retorno.registros\[].registro.erros\[]                 | list   | -       | condicional | Lista dos erros                           |
| retorno.registros\[].registro.erros\[].erro            | string | -       | condicional | Descrição do erro                         |
| retorno.registros\[].registro.id                       | int    | -       | condicional | ID do Produto na Olist                    |
| retorno.registros\[].registro.variacoes                | list   | -       | condicional | Lista das variações enviadas              |
| retorno.registros\[].registro.variacoes\[].variacao    | object | -       | condicional | Representa uma variação                   |
| retorno.registros\[].registro.variacoes\[].variacao.id | int    | -       | condicional | ID da variação                            |

## Exemplo de chamada

```php theme={null}
$url = 'https://api.tiny.com.br/api2/produto.incluir.php';
$token = 'coloque aqui a sua chave da api';
$produto = '<produtos>...</produtos>';
$data = "token=$token&produto=$produto&formato=JSON";

enviarREST($url, $data);
```

## Exemplos de retorno

### Sucesso

```json theme={null}
{
  "retorno": {
    "status_processamento": 3,
    "status": "OK",
    "registros": [
      {
        "registro": {
          "sequencia": "1",
          "status": "OK",
          "id": "49644544"
        }
      },
      {
        "registro": {
          "sequencia": "2",
          "status": "OK",
          "id": "49644545",
          "variacoes": [
            {
              "variacao": {
                "id": "31232333"
              }
            },
            {
              "variacao": {
                "id": "43234442"
              }
            }
          ]
        }
      }
    ]
  }
}
```

### Erro - Autenticação

```json theme={null}
{
  "retorno": {
    "status_processamento": 1,
    "status": "Erro",
    "codigo_erro": 2,
    "erros": [
      {
        "erro": "token invalido"
      }
    ]
  }
}
```

### Erro - Duplicidade

```json theme={null}
{
  "retorno": {
    "status_processamento": 2,
    "status": "Erro",
    "registros": [
      {
        "registro": {
          "sequencia": "1",
          "status": "Erro",
          "codigo_erro": "30",
          "erros": [
            {
              "erro": "Registro em duplicidade"
            }
          ]
        }
      }
    ]
  }
}
```
