Fechar
esqueci a minha senha
criar uma conta

Gerar Ordem de Produção do Pedido API 2.0

Serviço destinado a gerar ordens de produção dos itens de um Pedido.

ElementoTipoOcorrênciaDescrição
tokenstringobrigatórioChave gerada para identificar sua empresa
idintobrigatórioNúmero de identificação do pedido no Tiny
lancarEstoquestringobrigatórioOpção para lançar estoque das ordens de produção geradas (S/N)
formatostringobrigatórioFormato do retorno (json ou xml)
ElementoTipoTamanhoOcorrênciaDescrição
retorno--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.status_geracao_ordens (2)string10condicionalContém o status da geração das ordens “OK” ou “Alertas”
retorno.mensagem_geracao_ordens (2)string-condicionalMensagens de alterta da geração das ordens, caso existam alertar.
retorno.itens[ ]listobrigatórioLista de itens do pedido
retorno.itens[ ].itemobjectobrigatórioElemento utilizado para representar um item do pedido
retorno.itens[ ].item.codigostring20opcionalCódigo do Produto
retorno.itens[ ].item.descricaostring120opcionalDescrição do Produto
retorno.itens[ ].item.quantidade (4)decimal-opcionalQuantidade do produto
retorno.itens[ ].item.quantidade_gerada (4)decimal-opcionalQuantidade do produto que foi gerada
retorno.itens[ ].item.mensagem string- opcionalMensagens referentes a geração da orden de produção do item

(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/gerar.ordem.producao.pedido.php';
$token = 'coloque aqui a sua chave da api';
$id = 'xxxxx';
$formato = 'XML';
$data = "token=$token&id=$id&lancarEstoque=N&formato=$formato";

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("gerarOrdemProducaPedido", array('token' => 'xxxxx','id'=>'xxxxx','lancarEstoque'=>'N','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>
  <itens>
    <item>
      <descricao>Produto Teste 1</descricao>
      <quantidade>2</quantidade>
      <quantidade_gerada>2</quantidade_gerada>
      <mensagem/>
    </item>
    <item>
      <descricao>Produto Teste 2</descricao>
      <quantidade>4</quantidade>
      <quantidade_gerada>0</quantidade_gerada>
      <mensagem>Produto não cadastrado no Tiny, somente podem ser geradas ordens de produção para produtos já cadastrados.</mensagem>
    </item>
  </itens>
</retorno>