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

# Atualizar Preços do Produto

> Serviço destinado a atualizar os preços de produtos.

## Endpoint

```
POST https://api.tiny.com.br/api2/produto.atualizar.precos.php?token={token}
```

## Parâmetros

| Parâmetro | Tipo      | Ocorrência  | Descrição                                 |
| --------- | --------- | ----------- | ----------------------------------------- |
| token     | string    | obrigatório | Chave gerada para identificar sua empresa |
| precos    | object\[] | obrigatório | Dados dos preços conforme layout          |

### Estrutura do parâmetro "precos"

| Campo                        | Tipo      | Tamanho | Ocorrência  | Descrição                                    |
| ---------------------------- | --------- | ------- | ----------- | -------------------------------------------- |
| precos\[]                    | object\[] | -       | obrigatório | Elemento para representar conjunto de preços |
| precos\[].id                 | int       | -       | obrigatório | Número de identificação do Produto na Olist  |
| precos\[].preco              | decimal   | -       | opcional    | Preço do produto                             |
| precos\[].preco\_promocional | decimal   | -       | opcional    | Preço promocional do produto                 |

> Campos `preco` e `preco_promocional` utilizam "." (ponto) como separador decimal, exemplo "5.25".

> Campo `preco_promocional` só será atualizado se empresa tiver a 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: "OK", "Erro" ou "Parcial"         |
| retorno.registros\[]                             | list      | -       | condicional | Lista de resultados                       |
| retorno.registros\[].registro                    | object    | -       | condicional | Registro de atualização de preços         |
| retorno.registros\[].registro.sequencia          | int       | -       | condicional | Número sequencial do registro             |
| retorno.registros\[].registro.status             | string    | -       | condicional | Status: "OK" ou "Erro"                    |
| retorno.registros\[].registro.codigo\_erro       | int       | -       | condicional | Código do erro conforme tabela            |
| retorno.registros\[].registro.erros\[]           | object\[] | -       | condicional | Lista de erros encontrados                |
| retorno.registros\[].registro.erros\[].campo     | string    | -       | condicional | Campo contendo erro                       |
| retorno.registros\[].registro.erros\[].erro      | string    | -       | condicional | Mensagem de erro                          |
| retorno.registros\[].registro.id                 | int       | -       | obrigatório | Número de identificação do Produto        |
| retorno.registros\[].registro.preco              | decimal   | -       | obrigatório | Preço do produto                          |
| retorno.registros\[].registro.preco\_promocional | decimal   | -       | condicional | Preço promocional do produto              |

## Exemplo de chamada

```php theme={null}
$precos = { "precos" : [{...}, {...}, ...] };
$token = "coloque aqui a sua chave da api";
$url = "https://api.tiny.com.br/api2/produto.atualizar.precos.php?token={$token}";
$data = $precos;

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

## Exemplos de retorno

### Sucesso completo

```json theme={null}
{
  "retorno": {
    "status_processamento": "3",
    "status": "OK",
    "registros": [
      {
        "registro": {
          "id": "123",
          "sequencia": 1,
          "status": "OK",
          "preco": 15,
          "preco_promocional": 10
        }
      }
    ]
  }
}
```

### Sucesso parcial

```json theme={null}
{
  "retorno": {
    "status_processamento": "4",
    "status": "Parcial",
    "registros": [
      {
        "registro": {
          "id": "123",
          "sequencia": 1,
          "status": "OK",
          "preco": 15,
          "preco_promocional": 10
        }
      },
      {
        "registro": {
          "id": "456",
          "sequencia": 2,
          "status": "Erro",
          "codigo_erro": "31",
          "erros": {
            "campo": "preco",
            "erro": "O valor de 'preco' não é um número válido."
          }
        }
      }
    ]
  }
}
```

### Erro - Token inválido

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

### Erro - Validação

```json theme={null}
{
  "retorno": {
    "status_processamento": "2",
    "status": "Erro",
    "registros": [
      {
        "registro": {
          "id": "123",
          "sequencia": 1,
          "status": "Erro",
          "codigo_erro": "31",
          "erros": {
            "campo": "preco",
            "erro": "O valor de 'preco' não é um número válido."
          }
        }
      }
    ]
  }
}
```
