Atualizar preços do produto API 2.0
Serviço destinado a atualizar os preços de produtos.
Parâmetros do serviço
| Elemento | Tipo | Ocorrência | Descrição | 
|---|---|---|---|
| token | string | obrigatório | Chave gerada para identificar sua empresa | 
Conteúdo do body
| Elemento | Tipo | Ocorrência | Descrição | 
|---|---|---|---|
| precos (1) | object[] | obrigatório | Dados dos preços conforme layout | 
| Elemento | Tipo | Tamanho | Ocorrência | Descrição | 
|---|---|---|---|---|
| precos[] | object[] | - | obrigatório | Elemento utilizado para representar um conjunto de Preços. | 
| precos[].id | int | - | obrigatório | Número de identificação do Produto no Tiny. | 
| precos[].preco (1) | decimal | - | opcional | Preço do produto. | 
| precos[].preco_promocional (1) (2) | decimal | - | opcional | Preço promocional do produto. | 
							(1) - Estes campos utilizam “.” (ponto) como separador de decimais, exemplo "5.25".
							(2) - Este campo só será atualizado se empresa tiver a extensão Preço promocional instalada.
						
Retorno do serviço
| Elemento | 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 | Contém o status do retorno “OK”, “Erro” ou "Parcial". Para o caso de conter erros estes serão descritos abaixo | 
| retorno.registros[ ] | list | - | condicional | Lista de resultados da pesquisa | 
| retorno.registros[ ].registro | object | - | condicional | Elemento utilizado para representar um registro de atualização de preços. | 
| retorno.registros[ ].registro.sequencia | int | - | condicional | Número sequencial utilizado para identificar cada registro de atualização de preços. | 
| retorno.registros[ ].registro.status | string | - | condicional | Contém o status do registro “OK” ou “Erro”. Para o caso de conter erros estes serão descritos abaixo | 
| retorno.registros[ ].registro.codigo_erro | int | - | condicional | Conforme tabela "Códigos de erro" | 
| retorno.registros[ ].registro.erros[ ] (1) | object[] | - | condicional [0..n] | Contém a lista dos erros encontrados. | 
| retorno.registros[ ].registro.erros[ ].campo(1) | string | - | condicional | Campo que contém o erro. | 
| retorno.registros[ ].registro.erros[ ].erro(1) | 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. | 
			(1) - Estes campos somente serão informados caso o retorno contenha erros.
		
Exemplos do conteúdo do body
Exemplos de chamada da API
$precos = { "precos" : [{...}, {...}, ...] };
$token = "coloque aqui a sua chave da api";
$url = "https://api.tiny.com.brapi2/produto.atualizar.precos.php?token={$token}";
$data = $precos;
enviarREST($url, $data);    
function enviarREST($url, $data, $optional_headers = null) {
	$params = array('http' => array(
		'method' => 'POST',
	    'content' => $data
	));
	
	if ($optional_headers !== null) {
		$params['http']['header'] = $optional_headers;
	}
	
	$ctx = stream_context_create($params);
	$fp = @fopen($url, 'rb', false, $ctx);
	if (!$fp) {
		throw new Exception("Problema com $url, $php_errormsg");
	}
	$response = @stream_get_contents($fp);
	if ($response === false) {
		throw new Exception("Problema obtendo retorno de $url, $php_errormsg");
	}
	
	return $response;
}