> ## 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.

# Alterar Produto

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

## Endpoint

```
POST https://api.tiny.com.br/api2/produto.alterar.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          |
| formato   | string | obrigatório | Formato do retorno (json)                 |

### Estrutura do parâmetro "produto"

| Campo                                                        | Tipo    | Tamanho | Ocorrência  | Descrição                                                                                |
| ------------------------------------------------------------ | ------- | ------- | ----------- | ---------------------------------------------------------------------------------------- |
| produtos\[]                                                  | list    | -       | obrigatório | Elemento para representar conjunto de Produtos                                           |
| produtos\[].produto.sequencia                                | inteiro | -       | obrigatório | Número sequencial para identificar cada produto                                          |
| produtos\[].produto.id                                       | int     | -       | opcional    | Número de identificação do Produto na Olist                                              |
| produtos\[].produto.codigo                                   | string  | 30      | opcional    | Código do produto                                                                        |
| produtos\[].produto.nome                                     | string  | 120     | obrigatório | Nome 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.id\_fornecedor                           | int     | -       | opcional    | Número de 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    | Itens por embalagem                                                                      |
| produtos\[].produto.preco\_custo                             | decimal | -       | opcional    | Preço de custo do produto                                                                |
| produtos\[].produto.situacao                                 | string  | 1       | obrigatório | Situação do produto: "A" (Ativo) ou "I" (Inativo)                                        |
| produtos\[].produto.tipo                                     | string  | 1       | obrigatório | Indica se é produto ("P") ou serviço ("S")                                               |
| produtos\[].produto.classe\_ipi                              | string  | 5       | opcional    | Somente para bebidas e cigarros, classe 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 exibida em propostas e pedidos de venda                                        |
| 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.dias\_preparacao                         | int     | 9       | opcional    | Dias corridos para disponibilizar o produto                                              |
| produtos\[].produto.marca                                    | string  | -       | opcional    | Marca do produto                                                                         |
| produtos\[].produto.tipo\_embalagem                          | int     | -       | opcional    | Tipo da embalagem do produto                                                             |
| 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    | Categoria do produto                                                                     |
| produtos\[].produto.anexos\[]                                | list    | -       | opcional    | Lista contendo imagens e anexos do produto                                               |
| produtos\[].produto.anexos\[].anexo                          | string  | -       | opcional    | URL de acesso ao anexo/imagem do produto                                                 |
| produtos\[].produto.imagens\_externas\[]                     | list    | -       | opcional    | Lista contendo 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 (Simples), K (Kit), V (Com variações), F (Fabricado), M (Matéria-prima) |
| produtos\[].produto.kit\[]                                   | list    | -       | condicional | Lista contendo os itens do kit do produto                                                |
| produtos\[].produto.kit\[].item.id\_produto                  | int     | -       | obrigatório | Número de identificação do produto na Olist                                              |
| produtos\[].produto.kit\[].item.quantidade                   | decimal | -       | obrigatório | Quantidade do produto dentro do kit                                                      |
| produtos\[].produto.grade\[]                                 | array   | -       | opcional    | Grade da variação                                                                        |
| produtos\[].produto.variacoes\[]                             | list    | -       | opcional    | Lista contendo variações do produto                                                      |
| produtos\[].produto.variacoes\[].variacao.id                 | int     | -       | opcional    | Número de identificação da variação na Olist                                             |
| 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.grade\[]           | array   | -       | opcional    | Grade da variação                                                                        |
| produtos\[].produto.tags\[]                                  | array   | -       | opcional    | Tags do produto                                                                          |
| produtos\[].produto.seo.seo\_title                           | string  | 120     | opcional    | Título exibido nos resultados de busca Google                                            |
| produtos\[].produto.seo.seo\_keywords                        | string  | 255     | opcional    | Keywords para SEO, valores separados 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 exibida nos resultados de busca Google                                         |
| produtos\[].produto.seo.slug                                 | text    | -       | opcional    | Identificação legível no link do produto                                                 |

> Campos id, codigo e nome são utilizados para localizar o produto que será alterado. Ordem de busca: id → codigo → nome.

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

> Valores possíveis para `tipo_embalagem`: 1 (Envelope), 2 (Pacote/Caixa), 3 (Rolo/Cilindro).

> 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` obrigatório se classe\_produto = 'K'.

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

> Array `tags` contém identificadores de tags pré-cadastradas. Somente uma tag por grupo permitida. Se não enviado, tags atuais do produto são mantidas.

> Campo `preco_promocional` considerado somente se empresa tiver 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 | Status do retorno: "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 | Mensagem descrevendo o erro                  |
| retorno.registros\[]                                   | list   | -       | condicional | Lista de resultados da pesquisa              |
| retorno.registros\[].registro                          | object | -       | condicional | Elemento para representar um Produto         |
| retorno.registros\[].registro.sequencia                | int    | -       | condicional | Número sequencial de cada produto            |
| retorno.registros\[].registro.status                   | string | -       | condicional | Status do registro: "OK" ou "Erro"           |
| retorno.registros\[].registro.codigo\_erro             | int    | -       | condicional | Conforme tabela "Códigos de erro"            |
| retorno.registros\[].registro.erros\[]                 | list   | -       | condicional | Lista dos erros encontrados                  |
| retorno.registros\[].registro.erros\[].erro            | string | -       | condicional | Mensagem descrevendo o erro                  |
| retorno.registros\[].registro.id                       | int    | -       | condicional | Número de identificação do Produto na Olist  |
| retorno.registros\[].registro.variacoes                | list   | -       | condicional | Lista com informações das variações enviadas |
| retorno.registros\[].registro.variacoes\[].variacao    | object | -       | condicional | Elemento que representa uma variação         |
| retorno.registros\[].registro.variacoes\[].variacao.id | int    | -       | condicional | Identificador da variação                    |

## Exemplo de chamada

```bash theme={null}
curl -X POST https://api.tiny.com.br/api2/produto.alterar.php \
  -d "token=SEU_TOKEN_AQUI" \
  -d "produto={...JSON do produto...}" \
  -d "formato=JSON"
```

## 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 - Token inválido

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

### Erro - Produto não localizado

```json theme={null}
{
  "retorno": {
    "status_processamento": 2,
    "status": "Erro",
    "registros": [
      {
        "registro": {
          "sequencia": "1",
          "status": "Erro",
          "codigo_erro": "32",
          "erros": [
            {
              "erro": "Produto não localizado pelo id"
            }
          ]
        }
      }
    ]
  }
}
```
