Fechar
esqueci a minha senha
criar uma conta

Pesquisar Produtos API 2.0

Serviço destinado a fazer consulta de Produtos.

ElementoTipoOcorrênciaDescrição
tokenstringobrigatórioChave gerada para identificar sua empresa
formatostringobrigatórioFormato do retorno (json ou xml)
pesquisastringobrigatórioNome ou código (ou parte) do produto que deseja consultar
idTagintopcionalNúmero de identificação da tag no Tiny
idListaPreco (1)intopcionalNúmero de identificação da lista de preço no Tiny
pagina (2)intopcionalNúmero da página

(1) - Os preços de venda retornados serão calculados de acordo com a lista de preço informada.
(2) - Número da página de produtos que deseja obter (por padrão são listados 50 registros por página), caso não seja informado o valor padrão é 1.

ElementoTipoTamanhoOcorrênciaDescrição
retorno object-obrigatórioElemento raiz do retorno
retorno.status_processamentoint-obrigatórioConforme tabela "Status de Processamento"
retorno.statusstring-obrigatórioContém o status do retorno “OK” ou “Erro”. Para o caso de conter erros estes serão descritos abaixo
retorno.codigo_erro (1)int-condicionalConforme tabela "Códigos de erro"
retorno.erros[ ] (1) (3)list-condicional [0..n]Contém a lista dos erros encontrados.
retorno.erros[ ].errostring-condicionalMensagem contendo a descrição do erro
retorno.paginaint-obrigatórioNúmero da página que está sendo retornada
retorno.numero_paginasint-obrigatórioNúmero de paginas do retorno
retorno.produtos[ ] (2)list-condicionalLista de resultados da pesquisa
retorno.produtos[ ].produto (2)object-condicionalElemento utilizado para representar um produto.
retorno.produtos[ ].produto.idint-obrigatórioNúmero de identificação do produto no Tiny
retorno.produtos[ ].produto.nomestring120obrigatórioNome do produto
retorno.produtos[ ].produto.codigostring30condicionalCódigo do produto
retorno.produtos[ ].produto.preco (4)decimal- obrigatórioPreço de venda do produto
retorno.produtos[ ].produto.preco_custo (4)decimal- condicionalPreço de custo do produto
retorno.produtos[ ].produto.preco_custo_medio (4)decimal- condicionalPreço médio de custo do produto
retorno.produtos[ ].produto.unidadestring3condicionalUnidade do produto
retorno.produtos[ ].produto.gtinstring14condicionalGTIN/EAN do produto
retorno.produtos[ ].produto.tipoVariacaostring1obrigatórioTipo de variação "N" - Normal, "P" - Pai, "V" - Variação
retorno.produtos[ ].produto.localizacaostring50condicionalLocalização física no estoque

(1) - Somente estará presente no retorno caso o elemento "status" seja "Erro".
(2) - Somente estará presente no retorno caso o elemento "status" seja "OK".
(3) - Estes campos somente serão informados caso o retorno contenha erros.
(4) - Estes campos utilizam “.” (ponto) como separador de decimais, exemplo "5.25".


$url = 'https://api.tiny.com.br/api2/produtos.pesquisa.php';
$token = 'coloque aqui a sua chave da api';
$pesquisa = 'xxxxx';
$data = "token=$token&pesquisa=$pesquisa&formato=XML";

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;
}

$client = new nusoap_client("https://api.tiny.com.br/api2.php?wsdl", true);
$client->soap_defencoding = 'UTF-8';
$client->decode_utf8 = false;

$result = $client->call("pesquisarProdutosService", array('token' => 'xxxxx','pesquisa'=>'xxxxx','formato'=>'XML'));

$res = array();
if ($client->fault) {
	$retorno = $result['faultstring'];
} else {
	$err = $client->getError();
	if ($err) {
		$retorno = $err;
	} else {
		$retorno = $result;
	}
}
<?xml version="1.0" encoding="UTF-8"?>
<retorno>
  <status_processamento>1</status_processamento>
  <status>Erro</status>
  <codigo_erro>2</codigo_erro>
  <erros>
    <erro>token invalido</erro>
  </erros>
</retorno>
<?xml version="1.0" encoding="UTF-8"?>
<retorno>
  <status_processamento>2</status_processamento>
  <status>Erro</status>
  <codigo_erro>21</codigo_erro>
  <erros>
    <erro>A consulta retornou mais registros que o permitido</erro>
  </erros>
</retorno>
<?xml version="1.0" encoding="UTF-8"?>
<retorno>
  <status_processamento>3</status_processamento>
  <status>OK</status>
  <pagina>1</pagina>
  <numero_paginas>1</numero_paginas>
  <produtos>
    <produto>
      <id>46829062</id>
      <nome>produto teste</nome>
      <codigo>123</codigo>
      <preco>1.20</preco>
      <preco_custo>1.05</preco_custo>
      <preco_custo_medio>1.02</preco_custo_medio>
      <unidade>UN</unidade>
      <tipoVariacao>P</tipoVariacao>
    </produto>
    <produto>
      <id>46829066</id>
      <nome>produto teste 2</nome>
      <codigo>1234</codigo>
      <preco>15.25</preco>
      <preco_custo>12.75</preco_custo>
      <preco_custo_medio>11.89</preco_custo_medio>
      <unidade>PC</unidade>
      <tipoVariacao>N</tipoVariacao>
    </produto>
  </produtos>
</retorno>