Jump to table of contents

Manual API REST Oruc

Esse manual técnico tem como objetivo ajudar desenvolvedores/programadores na integração com a API Rest Oruc. Este manual conta também com exemplos práticos e em português para que a integração seja simples e completa.

O que é a API Oruc?

A API Oruc é uma integração do tipo REST que realiza comunicações seguras com lojas virtuais credenciadas a esta integração através de objetos JSON, que tenham ID e Token válidos.

A REST API pode ter seus recursos acessados e utilizados por qualquer linguagem de programação que tenha recursos Web de comunicação HTTP e manipulação de JSON.

Como posso saber se estou executando as requisições de forma correta?

A API possui um simulador de requisições, e por meio dele, pode ser feito os testes e comparações de request. Para acessar basta clicar aqui

Quais são as operações que a API Oruc pode realizar?

Os endpoints correspondem a cada operação permitida, abaixo a relação das operações disponíveis na API:

			- GET https://www.meudatacenter.com/api/v1/produtos
			- GET https://www.meudatacenter.com/api/v1/produto/{COD}
			- POST https://www.meudatacenter.com/api/v1/produto
			- PUT https://www.meudatacenter.com/api/v1/produto/{COD}
			- POST https://www.meudatacenter.com/api/v1/imagem
			- PUT https://www.meudatacenter.com/api/v1/item/{REFERENCIA}/estoque
			- PUT https://www.meudatacenter.com/api/v1/produto/{COD}/preco
			- GET https://www.meudatacenter.com/api/v1/item/{REFERENCIA}/estoque
			- GET https://www.meudatacenter.com/api/v1/produto/{COD}/preco
			- GET https://www.meudatacenter.com/api/v1/pedidos
			- GET https://www.meudatacenter.com/api/v1/pedido/{ID}
			- PUT https://www.meudatacenter.com/api/v1/pedido/{ID}/pago
			- PUT https://www.meudatacenter.com/api/v1/pedido/{ID}/separacao
			- PUT https://www.meudatacenter.com/api/v1/pedido/{ID}/entrega
			- PUT https://www.meudatacenter.com/api/v1/pedido/{ID}/concluido
			- PUT https://www.meudatacenter.com/api/v1/pedido/{ID}/cancelado
			- PUT https://www.meudatacenter.com/api/v1/pedido/{ID}/nfe
			

Autenticação

Somente usuários autenticados terão acesso a essa REST API. A Autenticação se dá através de um ID e Token.

Como obter meu ID e Token?

No painel de controle da loja virtual credenciada a API Oruc, basta ativar a integração API e obter o ID e o Token desta integração. Com esses dados já é possível acessar os recursos desta API

Autorização

Para utilizar os recursos da API é necessário enviar em todas as requisições o ID e Token no cabeçalho da requisição HTTP. Os parametros a serem passados são: x-ID:Seu ID e x-Token:Seu Token além disso é necessário enviar o Content-Type neste formato Content-Type: application/json

Abaixo, veja um exemplo de uma comunicação autorizada na linguagem PHP no endpoint GET produtos utilizando-se do Curl:

//Exemplo do GET PRODUTOS $url = "https://www.meudatacenter.com/api/v1/produtos?page=1"; $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); $headers = array(); $headers[] = "x-ID:3566"; // Coloque seu ID aqui $headers[] = "x-Token:3481260001..."; // Coloque aqui seu Token $headers[] = "Content-Type: application/json"; curl_setopt($curl, CURLOPT_HTTPHEADER, $headers); curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE); curl_setopt($curl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1); $response = curl_exec($curl); $httpcode = curl_getinfo($curl, CURLINFO_HTTP_CODE); // Código de retorno. curl_close($curl); $retornoJSON = json_decode($response); var_dump($retornoJSON);

Veja o exemplo abaixo de Autorização utilizando o Postman:

GET /api/v1/produtos HTTP/1.1 Host: www.meudatacenter.com x-ID: 9898 x-Token: 77O585194T334540R429730I7167u50O9460u63a1223O59u9156I51C4171R97j8830T18S84627 Content-Type: application/json Cache-Control: no-cache Postman-Token: 0d5cb339-7fa1-bcb8-4796-53026a8b28ed

PRODUTOS

As operações em produtos permitem: consultas, inserção e atualizações pontuais de preço e estoque.

A estrutura de um produto é a sequinte:
- - Produto (Código, Nome, preço, etc...)
- - - - - - - Modelos (Cor e Imagens. Exemplo: Azul, Amarelo, Vermelho...)
- - - - - - - - - - - - Opções (Referencia, Estoque, SKU. Exemplos: P, M, G, GG...)

Desta forma, observa-se que um produto pode ter vários modelos, e cada modelo pode ter vários itens. Confira abaixo alguns exemplos dos endpoints:

GET PRODUTOS

O endpoint usado na API para realizar a operação de consultar todos os produtos é a "produtos". Veja abaixo um exemplo do código usando o cURL PHP


		//Exemplo do GET PRODUTOS
		$url = "https://www.meudatacenter.com/api/v1/produtos?page=1";

		$curl = curl_init();
		curl_setopt($curl, CURLOPT_URL, $url);

		$headers = array();
		$headers[] = "x-ID:3566"; // Coloque seu ID aqui
		$headers[] = "x-Token:3481260001..."; // Coloque aqui seu Token
		$headers[] = "Content-Type: application/json";

		curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
		curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
		curl_setopt($curl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
		$response = curl_exec($curl);
		$httpcode = curl_getinfo($curl, CURLINFO_HTTP_CODE); // Código de retorno.

		curl_close($curl);

		$retornoJSON = json_decode($response);
		
		var_dump($retornoJSON);
			

Paginação do Método GET PRODUTOS
O método GET PRODUTOS possui o filtro de paginação ?page= que deve ser passado na URL da chamada. Caso o filtro ?page= não seja informado, será considerada a página 1. Observe também que no final da requisição GET PRODUTOS é retornado pela API em "totais" o total de produtos, o total de páginas e a página atual.
Exemplo de Uso: https://www.meudatacenter.com/api/v1/produtos?page=1

Se tudo ocorreu bem, será retornado o codigo 200 no header e no body o seguinte Payload no formato json:

			
{
  "produtos": [
    {
      "nome": "NOME DO PRODUTO",
      "codigo": "1144AXXXXAVD4",
      "descricao": "<b>A bicicleta Caloi Andes proporciona conforto...</b>",
      "departamento": "Esportes>Bicicletas",
      "fabricante": "Caloi",
      "preco": 720.00,
      "custo": 610.00,
      "comprimento": 1.00,
      "largura": 0.00,
      "altura": 1.00,
      "peso": 13.00,
      "cubagem": 0.00,
      "garantia": "90 dias",
      "modelos": [
        {
          "nome": "Amarela",
          "crossdocking": 10,
          "imagens": "http://www.exemplo.com.br/1.jpg,http://www.exemplo.com.br/2.jpg",
          "status": 0,
          "url_produto": "https://www.exemplo.com.br/produto/p",
          "itens": [
            {
              "sku": "21891781",
              "nome_opcao": "p",
              "referencia": "11482378",
              "estoque": 10,
              "ean": "7891473021257"
            },
            {
              "sku": "21891782",
              "nome_opcao": "m",
              "referencia": "11482379",
              "estoque": 10,
              "ean": ""
                        }
                    ]
                }
            ]
        }
    ],
	"totais": {
		"totalProdutos": "1",
		"totalPaginas": "1",
		"paginaAtual": "1"
	}
   
}
			
		

GET PRODUTO/CODIGO

Para consultar apenas um produto com o seu código, o endpoint usado na API para realizar essa operação é a: "produto/{CODIGO}". Outra opção de consulta é utilizando o filtro referencia, vide abaixo.

O código do produto (CODIGO) é o mesmo que você utilizou no POST produto, caso você não tenha cadastrado o produto via POST, é possível obter os códigos dos produtos já existentes através do GET PRODUTOS.

Utilizando o filtro referencia no método GET PRODUTO
Você também poderá consultar um produto e suas variações através do filtro referencia= que pode ser usado na URL da chamada. Esse filtro irá buscar o produto que possui a referencia entre suas opções.
Exemplo de Uso:
https://www.meudatacenter.com/api/v1/produto?referencia=SKU12000 Essa consulta irá retornar toda a estrutura do produto que possui essa referencia


		$url = "https://www.meudatacenter.com/api/v1/produto/777";
		
		//-OU USANDO O FILTRO REFERENCIA-
		// $url = "https://www.meudatacenter.com/api/v1/produto?referencia=SKU12000";

		$curl = curl_init();
		curl_setopt($curl, CURLOPT_URL, $url);

		$headers = array();
		$headers[] = "x-ID:3566"; // Coloque seu ID aqui
		$headers[] = "x-Token:3481260001..."; // Coloque aqui seu Token
		$headers[] = "Content-Type: application/json";

		curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
		curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
		curl_setopt($curl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
		$response = curl_exec($curl);
		$httpcode = curl_getinfo($curl, CURLINFO_HTTP_CODE); // Código de retorno.

		curl_close($curl);

		$retornoJSON = json_decode($response);
		
		

Se tudo ocorreu bem, será retornado um codigo 200 no header e no body o seguinte Payload no formato json:

			
{
  "produto": {
    "nome": "Produto de Teste 777",
    "codigo": "777",
    "descricao": "<b>A bicicleta Caloi Andes proporciona conforto...</b>",
    "departamento": "Esportes>Bicicletas",
    "fabricante": "Caloi",
    "preco": 720.00,
    "custo": 610.00,
    "comprimento": 1.00,
    "largura": 0.00,
    "altura": 1.00,
    "peso": 13.00,
    "cubagem": 0.00,
    "garantia": 90 dias,
    "modelos": [
      {
        "nome": "Amarela",
        "crossdocking": 10,
        "imagens": "https://www.google.com.b/arquivos/PRODUTOS/631156285843478112/631156285843478112_G_1.jpg,https://google.com/arquivos/PRODUTOS/9521562858436591238/9521562858436591238_G_2.jpg",
        "status": 0,
        "url_produto": "https://www.exemplo.com.br/produto/p",
        "itens": [
          {
            "sku": "21891781",
            "nome_opcao": "p",
            "referencia": "11482378",
            "estoque": 10,
            "ean": "7891473021257"
          },
          {
            "sku": "21891782",
            "nome_opcao": "m",
            "referencia": "11482379",
            "estoque": 10,
            "ean": "891473021257"
          },
        ]
      }
    ]
  }
}
		

Repare que na operação GET PRODUTOS são retornados os produtos no nó "produtos" e já na operação GET PRODUTO/CODIGO o produto é retornado no nó "produto".

Importante! Uma dúvida comum entre os programadores é a diferença que existe entre a estrutura do JSON de produtos no "GET PRODUTO" e no "PUT/POST PRODUTO". A diferença existe, principalmente na tipagem dos campos de valores, por exemplo, ao enviar deve ser em double, mas no "GET" o retorno é string. Outra diferença é no "nó" opções, no POST/PUT deve ser informado "itens" já ao receber no "GET" ele vem como "opcoes". Então é importante informa-los sobre essa diferenciação que pode ocorrer.

POST PRODUTO

Operação que permite você inserir um novo produto. O endpoint usado na API para realizar essa operação é a: "POST produto". Veja abaixo um exemplo do código usando o cURL PHP


	$jso = array(
	'nome' => 'Produto de Teste 8899',
	'codigo' => '8899',
	'descricao' => 'A bicicleta Caloi Andes proporciona conforto...',
	'departamento' => 'Esportes>Bicicletas',
	'fabricante' => 'Caloi',
	'preco' => 720.00,
	'custo' => 610.00,
	'comprimento' => 1.62,
	'largura' => 0.20,
	'altura' => 1.20,
	'peso' => 13.40,
	'cubagem' => 0,
	'garantia' => '90 dias',
	'modelos' => array(
		array(
		'nome' => 'Amarela',
		'crossdocking' => 10,
		'imagens' => 'http://www.personal.psu.edu/jul229/mini.jpg,http://www.personal.psu.edu/jul229/rv1.jpg',
		'status' => 1,
		'itens' =>array(
			 array(
				'nome_opcao' => 'm',
				'referencia' => "11482378",
				'estoque' => 12,
				'ean' => '7891473021257'
				)
			)
		)
	)
);

	$jso = json_encode($jso);


	$url = "https://www.meudatacenter.com/api/v1/produto";

	$curl = curl_init();
	curl_setopt($curl, CURLOPT_URL, $url);

	$headers = array();
	$headers[] = "x-ID:3566"; // Coloque seu ID aqui
	$headers[] = "x-Token:3481260001..."; // Coloque aqui seu Token
	$headers[] = "Content-Type: application/json";

	curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);

	curl_setopt($curl, CURLOPT_POST, 1); // Informando que é POST
	curl_setopt($curl, CURLOPT_POSTFIELDS, $jso); // Envio do JSON

	curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
	curl_setopt($curl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
	$response = curl_exec($curl);
	$httpcode = curl_getinfo($curl, CURLINFO_HTTP_CODE); // Código de retorno header

	curl_close($curl);

	$retornoJSON = json_decode($response);
	

Caso a operação seja bem sucedida o retorno será um código 201, repare que o retorno de sucesso para operações de consultas (GET) é o 200 e para operações de POST e PUT o retorno é o 201.

Uma dúvida comun dos usuários da API é referente ao envio em massa de produtos, sobre isso, a API não permite o envio de vários produtos. Veja que a abertura do payload do POST PRODUTO é com "{" e não com "[". Desta forma o envio em massa deverá ser tratado por loops no lado do usuário, sempre aguardando o resultado do envio anterior para enviar o próximo POST PRODUTO.

Tabela de Especificações do Produtos (POST produto)

Campo Formato Tamanho Obrigatório Exemplo
nome string 100 Sim Bicicleta Mountain Bike Caloi 21
codigo string 20 Sim 114
descricao TEXT 4000 Sim A bicicleta Caloi Andes proporciona conforto total ao pedalar seja na ciclovia, praia ou parque. Com qualidade e estilo, ela vem equipada de 21 velocidades, permitindo ao ciclista a escolha da marcha ideal de acordo com o local.
departamento string 100 Sim Esportes>Bicicletas
fabricante string 20 Sim Caloi
preco double 10,2 Sim 720.00
custo double 10,2 Não 610.00
comprimento double 10,2 Não 1.60
largura double 10,2 Não 0.20
altura double 10,2 Não 1.20
peso double 10,2 Sim 13.40
cubagem double 10,2 Não
garantia string 30 Não 90 dias
modelos Sim
nome string 20 Não Amarela
crossdocking integer 11 Não 5
imagens TEXT 4000 Não url1, url2, url3, url4
status integer 11 Não 1
itens string 30 Sim
nome_opcao string 30 Não
referencia string 45 Não 11482378. GERALMENTE ESSE É O CÓDIGO DE RELACIONAMENTO ENTRE SEU SISTEMA E A LOJA VIRTUAL. A REFERENCIA É O CÓDIGO SKU DO ÚLTIMO NÍVEL DO PRODUTO, ÚLTIMA VARIAÇÃO, ONDE E ESTÁ O ESTOQUE.
estoque integer 11 Sim 12
ean string 13 Não 7891473021257


PUT PRODUTO

Operação que permite alterar um produto e suas variações. O endpoint usado na API para realizar essa operação é a: "PUT PRODUTO/{CODIGO}".

A estrutura do JSON do "PUT PRODUTO/{CODIGO}" é parecida com a "POST PRODUTO" mas existem 2 diferenças importantes:
  • O campo "codigo" não pode ser informado no JSON do "PUT PRODUTO/{CODIGO}", ele deve ser informado em /{CODIGO}no ENDPOINT do método para identificar o produto a ser alterado.
  • O campo "status" é novo na estrutura JSON do "PUT PRODUTO/{CODIGO}", ele permite desativar o produto como um todo, ativar ou excluir.

Veja as regras:

As especificações dos campos do "PUT PRODUTO/{CODIGO}" são as mesmas do "POST PRODUTO", com exceção das diferenças citadas acima.
  • Você poderá enviar campos individualmente para atualização, e se for necessário atualizar a estrutura de modelos ou opções, devem ser informados todos campos dentro de "modelos" ou "opções".
  • O identificador para atualização do "modelo" é o nome, e o identificações da "opção" (item) é a referencia. Esses campos não são alterados na atualização pois são identificadores.
  • As imagens serão substituídas, se enviadas.
  • O campo "url_produto" não será alterado
  • Os departamentos, se diferentes serão substituídos.
  • Todos os demais campos do produto e das suas variações são atualizados, com excessão dos mencionados acima.

Modelo de envio do PUT produto/{CODIGO}PUT https://www.meudatacenter.com/api/v1/produto/8812312399
	{
   "nome":"Produto de Teste 8812312399",
   "descricao":"A bicicleta Caloi Andes proporciona conforto...",
   "departamento":"Esportes>Bicicletas",
   "fabricante":"Caloi",
   "preco":720.20,
   "custo":610.10,
   "comprimento":1.62,
   "largura":0.2,
   "altura":1.2,
   "peso":13.4,
   "cubagem":0,
   "garantia":"90 dias",
   "status":1,
   "modelos":[
      {
         "nome":"Amarela",
         "crossdocking":10,
         "imagens":"http:\/\/www.personal.psu.edu\/jul229\/mini.jpg,http:\/\/www.personal.psu.edu\/jul229\/rv1.jpg",
         "status":1,
         "itens":[
            {
               "nome_opcao":"m",
               "referencia":"11482378",
               "estoque":12,
               "ean":"7891473021257"
            }
         ]
      }
   ]
 }
	

Caso a operação seja bem sucedida o retorno será um código 201

Uma dúvida comun dos usuários da API é referente à atualização em massa de produtos, sobre isso, a API não permite a atualização de vários produtos na mesma requisição. A atualização em massa deverá ser tratada por loops no lado do usuário, sempre aguardando o resultado da requisição anterior para enviar a próxima.


POST imagem

Essa operação permite o envio de imagens dos modelos dos produtos por string, ao invés de enviar fornecendo a url da imagem conforme ocorre no POST PRODUTO ou PUT PRODUTO. O endpoint usado na API para realizar essa operação é a: "POST imagem".

Essa solução visa atender ERPs e outros sistemas locais que não utilizam de imagens em ambiente web e necessitam enviar uma imagem local para a API. Estando o produto previamente cadastrado na loja virtual, basta obter o código do mesmo, o modelo que receberá a imagem, e enviar as imagens por string, no padrão base64.

Modelo de envio de imagem por string POST imagem
	{
    "codigo": "12312323",
    "nome_modelo": "Amarela2",
    "imagens": 
		[
        "/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sAB...",
        "/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sAB...",
        "/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sAB..."
		]
	}
	

Abaixo as regras para utilização da "POST IMAGEM"
  • No campo "codigo" informar o CODIGO do produto.
  • No campo "nome_modelo" informar o "nome_modelo" que receberá a imagem. (Lembre-se que a imagem é informada na variação do modelo, e não no produto)
  • Caso o produto só tenha um modelo, e este não tiver um "nome_modelo" deixe em branco.
  • O formato de envio da imagem deve ser em base64. Portanto, é necessário obter o fonte da imagem, aplicar um base64_encode para enviar como string à API.
  • A imagem deve ser obrigatoriamente no formato jpg
  • A resolução recomendada é a 1000x1000px
  • Podem ser enviadas várias imagens, separando as string de imagens por vírgula.

Caso a operação seja bem sucedida o retorno será um código 201


PREÇO

As operações de Preço permitem consultar e atualizar o preço do produto. Abaixo as especificações dessas duas operações.

GET PRECO

O endpoint usado na API para realizar a operação de consulta de preço é a: "produto/{CODIGO}/preco", onde CODIGO é o código do produto. Outra opção de consulta é utilizando o filtro referencia, veja abaixo.

O código do produto (CODIGO) é o mesmo que você utilizou no POST produto, caso você não tenha cadastrado o produto via POST, é possível obter os códigos dos produtos já existentes através do GET PRODUTOS.

Utilizando o filtro referencia no método GET PRECO
Você também poderá consultar o preço do produto através do filtro referencia= que pode ser usado na URL da chamada. Esse filtro irá buscar o preço do produto que possui a referencia entre suas opções.
Exemplo de Uso:
https://www.meudatacenter.com/api/v1/produto/null/preco?referencia=SKU12000 Essa consulta irá retornar toda a estrutura do produto que possui essa referencia.


						   
		$url = "https://www.meudatacenter.com/api/v1/produto/77/preco";

		//-OU USANDO O FILTRO REFERENCIA-
		// $url = "https://www.meudatacenter.com/api/v1/produto/null/preco?referencia=SKU12000";
		
		$curl = curl_init();
		curl_setopt($curl, CURLOPT_URL, $url);

		$headers = array();
		$headers[] = "x-ID:3566"; // Coloque seu ID aqui
		$headers[] = "x-Token:3481260001..."; // Coloque aqui seu Token
		$headers[] = "Content-Type: application/json";

		curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);

		curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
		curl_setopt($curl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
		$response = curl_exec($curl);
		$httpcode = curl_getinfo($curl, CURLINFO_HTTP_CODE);

		curl_close($curl);

		$retornoJSON = json_decode($response);
		
	

Caso a operação seja bem sucedida o retorno será um código 200 no header e no body você terá o retorno json do custo e do preço do produto consultado.


			{
				"preco": "720.00",
				"custo": "610.00"
			}
			

PUT PRECO

O endpoint usado na API para realizar a operação de atualização de preço é a: "produto/{COD}/preco", onde CODIGO é o código do produto. Outra opção é utilizando do filtro referencia.

Utilizando o filtro referencia no método PUT PRECO
Você também poderá processar a atualização de preço de um produto através do filtro referencia= que pode ser usado na URL da chamada. Esse filtro irá buscar o produto que possui a referencia entre suas opções.
Exemplo de Uso:
https://www.meudatacenter.com/api/v1/produto/null/preco?referencia=SKU12000


$jso = array(
	'preco' => 1.99,
	'custo' => 0.99
);

$jso = json_encode($jso);


	$url = "https://www.meudatacenter.com/api/v1/produto/99/preco";

	//-OU USANDO O FILTRO REFERENCIA-
	// $url = "https://www.meudatacenter.com/api/v1/produto/null/preco?referencia=SKU12000";

	$curl = curl_init();
	curl_setopt($curl, CURLOPT_URL, $url);

	$headers = array();
	$headers[] = "x-ID:3566"; // Coloque seu ID aqui
	$headers[] = "x-Token:3481260001..."; // Coloque aqui seu Token
	$headers[] = "Content-Type: application/json";

	curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);

	curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'PUT'); // Definindo o PUT
	curl_setopt($curl, CURLOPT_POSTFIELDS, $jso); // Informando o Json
	

	curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
	curl_setopt($curl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
	$response = curl_exec($curl);
	$httpcode = curl_getinfo($curl, CURLINFO_HTTP_CODE);

	curl_close($curl);

	$retornoJSON = json_decode($response);
	
	

Se tudo ocorreu bem,será retornado um codigo 200 e o seguinte Payload:

		
{
	"preco": "720.00",
	"custo": "610.00"
}
		
	

ESTOQUE

As operações de Estoque permitem consultar e atualizar o estoque da última variação do produto, chamada de opção do produto ou item do produto. Abaixo as especificações dessas duas operações.

GET ESTOQUE

O endpoint usado na API para realizar a operação de consulta de estoque é a: "item/{REFERENCIA}/estoque", onde REFERENCIA é o código utilizado no último nível do produto, em opções, onde fica o estoque da última variação. Para obter a referencia do item, você poderá realizar consultas através dos métodos de consulta de PRODUTOS ou consultar diretamente na loja virtual.

		
		$jso = json_encode($jso);
		$url = "https://www.meudatacenter.com/api/v1/item/2348923/estoque";

		$curl = curl_init();
		curl_setopt($curl, CURLOPT_URL, $url);

		$headers = array();
		$headers = array();
		$headers[] = "x-ID:3566"; // Coloque seu ID aqui
		$headers[] = "x-Token:3481260001..."; // Coloque aqui seu Token
		$headers[] = "Content-Type: application/json";

		curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);

		curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
		curl_setopt($curl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
		$response = curl_exec($curl);
		$httpcode = curl_getinfo($curl, CURLINFO_HTTP_CODE);

		curl_close($curl);

		$retornoJSON = json_decode($response);
		
	

Se tudo ocorreu bem,será retornado um codigo 200 e o seguinte Payload:

		
	{
		"estoque": 22
	}
		
	

PUT ESTOQUE

O endpoint usado na API para realizar a operação de atualização de estoque é a: "item/{REFERENCIA}/estoque", onde REFERENCIA é o código utilizado no último nível do produto, em opções, onde fica o estoque da última variação. Para obter a referencia do item, você poderá realizar consultas através dos métodos de consulta de PRODUTOS ou consultar diretamente na loja virtual.

		
$jso = array(
	'estoque' => 115
);

$jso = json_encode($jso);


	$url = "https://www.meudatacenter.com/api/v1/item/129312/estoque";

	$curl = curl_init();
	curl_setopt($curl, CURLOPT_URL, $url);

	$headers = array();
	$headers[] = "x-ID:3566"; // Coloque seu ID aqui
	$headers[] = "x-Token:3481260001..."; // Coloque aqui seu Token
	$headers[] = "Content-Type: application/json";

	curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);

	curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'PUT'); // Tipo PUT
			  
	curl_setopt($curl, CURLOPT_POSTFIELDS, $jso); // Envio json

	curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
	curl_setopt($curl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
	$response = curl_exec($curl);
	$httpcode = curl_getinfo($curl, CURLINFO_HTTP_CODE);

	curl_close($curl);

	$retornoJSON = json_decode($response);
	

Se tudo ocorreu bem, será retornado um codigo 201.

PEDIDOS

Abaixo poderá ser visto todas as solicitações relacionadas a pedidos, você poderá realizar consulta a todos pedidos, pedidos especificos e realizar mudanças de fase dos pedidos enviando informações relacionadas a cada fase.

Importante!
Nas operações de mudanças de fase de pedidos, é importante observar a fase atual do pedido a ser alterado, pois só é permitido alterar as fases de forma sequencial.
Sequencia de Fases: Novo > Pago > Separação > Entrega > Concluído (Cancelamento poderá ocorrer em qualquer fase)

GET PEDIDOS

Operação que retorna todos os pedidos na loja virtual em ordem do mais recente para o mais antigo, independente da fase. O endpoint usado na API para realizar essa operação é a: "pedidos". Se sua solicitação ocorrer como o previsto o retorno será um 200 code no header o no body o resultado da consulta em json.

		
						   
		$url = "https://www.meudatacenter.com/api/v1/pedidos?dataInicial=2019-10-01&dataFinal=2019-10-07";

		$curl = curl_init();
		curl_setopt($curl, CURLOPT_URL, $url);
 
		$headers = array();
		$headers[] = "x-ID:3566"; // Coloque seu ID aqui
		$headers[] = "x-Token:3481260001..."; // Coloque aqui seu Token
		$headers[] = "Content-Type: application/json";

		curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);

		curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
		curl_setopt($curl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
		$response = curl_exec($curl);
		$httpcode = curl_getinfo($curl, CURLINFO_HTTP_CODE);

		curl_close($curl);

		$retornoJSON = json_decode($response);
		
	

O sequinte retorno JSON será emitido:

		
{
  "pedidos": [
    {
      "id": 201,
      "codigo": "PA091233",
      "numero_controle": "22454556764",
      "origem": "PLAT",
      "loja": "PLAT",
      "fase_marketplace": "",
      "fase_atual": "novo",
      "data_pedido": "2019-10-04 11:15:41",
      "data_pagamento": "0000-00-00 00:00:00",
      "data_separacao": "0000-00-00 00:00:00",
      "data_enviado": "0000-00-00 00:00:00",
      "data_concluido": "0000-00-00 00:00:00",
      "data_cancelado": "0000-00-00 00:00:00",
      "frete_tipo": "PAC",
      "frete_valor": 20.00,
      "frete_rastreio": "BR1235467643",
      "frete_prazo": 6,
      "forma_pagamento": "CARTAO",
      "parcelas": 3,
      "parcelas_valor": 40.00,
      "bandeira_cartao": "VISA",
      "valor_desconto": 0.00,
      "valor_desconto_cupom": 0.00,
      "juros": 0.00,
      "valor_total": 140.00,
      "valor_total_credito": 140.00,
      "observacao_cliente": "",
      "nf": 44444444444444444444444444444444444444444444,
      "nf_emissao": "20/10/2019",
      "cliente": {
        "nome": "JOÃO VITOR DA SILVA",
        "tipo_conta": "CPF",
        "doc": "07162277812",
        "ie": "",
        "email": "JOAOVITOR@DKK.COM",
        "celular": "(32) 99118-2992",
        "telefone": "(32) 3232-3333",
        "data_nascimento": "29/08/1985",
        "cep": 36015001,
        "codigo_ibge": "3543402",
        "endereco": "RUA SANTO ANTONIO",
        "numero": 22640,
        "complemento": 22208,
        "bairro": "CENTRO",
        "cidade": "JUIZ DE FORA",
        "estado": "MG",
        "pais": "BR",
        "referencia": "ESQUINA",
        "tipo": "recebedor",
        "recebedor": "PEDRO EMANUEL SILVA"
		},
      "itens": [
        {
			"produto": "Produto de Teste",
			"quantidade": "1",
			"modelo": "",
			"nome_opcao": "",
			"sku": "1212333",
			"referencia": "",
			"variavel": "",
			"valor": "120.00",
			"valor_final": "120.00",
			"desconto": "0.00",
			"estoque_atual": "9",
			"ean": ""
        }
      ]
    }      
  ]
}
		
	

Filtro de data do Método GET PEDIDOS
O método GET PEDIDOS possui filtros de data de realização do pedido dataInicial= e dataFinal= que deve ser passado na URL da chamada. Caso o range de datas não seja informado, será retornado pela API os últimos 100 pedidos mais recentes. O padrão de datas a ser utilizado nos filtros é o YYYY-MM-DD
Exemplo de Uso:
https://www.meudatacenter.com/api/v1/pedidos?dataInicial=2019-10-01&dataFinal=2019-10-07

Filtro da data da última alteração no Pedido - Método GET PEDIDOS
O método GET PEDIDOS possui o filtro "data da última alteração" no Pedido dataAlteracao= que deve ser passado na URL da chamada. Esse filtro irá obter todos os pedidos que tiveram a sua última movimentação/atualização na data indicada. O padrão de datas a ser utilizado nos filtros é o YYYY-MM-DD
Exemplo de Uso:
https://www.meudatacenter.com/api/v1/pedidos?dataAlteracao=2020-06-23 Essa consulta irá retornar todos os pedidos que tiveram a sua última movimentação no dia 23/06/2020.

Filtro de STATUS do Método GET PEDIDOS
O método GET PEDIDOS possui também o filtro de STATUS pedido status= que deve ser passado na URL da chamada. Os valores aceitos para esse filtro são: novo, pago, separacao, entrega, concluido OU cancelado
Exemplo de Uso:
https://www.meudatacenter.com/api/v1/pedidos?status=pago Serão retornados desta forma somente pedidos com o status "pago".

GET PEDIDO

Operação que retorna um pedido especifico da loja virtual. O endpoint usado na API para realizar essa operação é a: "pedido/{ID}", onde ID é o identificar do pedido na plataforma. Para obter os ID realize a consulta GET PEDIDOS que irá retornar os pedidos da loja virtual dos mais recentes para os mais antigos.

		
						   
		$url = "https://www.meudatacenter.com/api/v1/pedido/30";

		$curl = curl_init();
		curl_setopt($curl, CURLOPT_URL, $url);

		$headers = array();
		$headers[] = "x-ID:3566"; // Coloque seu ID aqui
		$headers[] = "x-Token:3481260001..."; // Coloque aqui seu Token
		$headers[] = "Content-Type: application/json";

		curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);

		curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
		curl_setopt($curl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
		$response = curl_exec($curl);
		$httpcode = curl_getinfo($curl, CURLINFO_HTTP_CODE);

		curl_close($curl);

		$retornoJSON = json_decode($response);
		
	

Se tudo ocorreu bem, será retornado um codigo 200 no header, e no body o seguinte Payload em Json:

		
{
  "pedido": {
    "id": "1",
    "codigo": "II115715",
    "numero_controle": "22454556764",
    "origem": "PLAT",
    "loja": "PLAT",
    "fase_marketplace": "",
    "fase_atual": "novo",
    "data_pedido": "2019-10-04 11:15:41",
    "data_pagamento": "0000-00-00 00:00:00",
    "data_separacao": "0000-00-00 00:00:00",
    "data_enviado": "0000-00-00 00:00:00",
    "data_concluido": "0000-00-00 00:00:00",
    "data_cancelado": "0000-00-00 00:00:00",
    "frete_tipo": "PAC",
    "frete_valor": "51.60",
    "frete_rastreio": "ggggggggggggggg",
    "frete_prazo": "15",
    "forma_pagamento": "Depósito ou Transferência",
    "parcelas": "0",
    "parcelas_valor": "",
    "bandeira_cartao": "",
    "valor_desconto": "0.00",
    "valor_desconto_cupom": "0.00",
    "juros": "0.00",
    "valor_total": "771.60",
    "valor_total_credito": "771.60",
    "observacao_cliente": "",
    "nf": "",
    "nf_emissao": "0000-00-00",
    "cliente": {
      "nome": "PEDRO EMANUEL SILVA",
      "tipo_conta": "pf",
      "doc": "071.999.186-18",
      "ie": "",
      "email": "BH83@gmail.com",
      "celular": "(32) 99118-2222",
      "telefone": "(32) 3232-222",
      "data_nascimento": "1983-08-23",
      "cep": "36015-001",
      "codigo_ibge": "3543402",
      "endereco": "Rua Santo Antônio",
      "numero": "640",
      "complemento": "203",
      "bairro": "Centro",
      "cidade": "Juiz de Fora",
      "estado": "MG",
      "pais": "BR",
      "referencia": "ESQUINA",
      "tipo": "",
      "recebedor": "PEDRO EMANUEL SILVA"
    },
    "itens": [
      {
        "produto": "joao teste zzzz xxxx",
        "quantidade": "1",
        "modelo": "Amarela",
        "nome_opcao": "m",
        "sku": "21891782",
        "referencia": "11482378",
        "variavel": "",
        "valor": "720.00",
		"valor_final": "720.00",
        "desconto": "0.00",
        "estoque_atual": "11",
        "ean": "7891473021257"
      }
    ]
  }
}
		
	

Repare que na operação GET PEDIDOS são retornados os pedidos no nó "pedidos" e já na operação GET PEDIDO/ID o pedido é retornado no nó "pedido".

PUT PAGO

Operação responsável em passar um pedido na fase "Novo" para "Pago". O endpoint usado na API para realizar a operação é: "pedido/{ID}/pago". Nesta operação também é possível fornecer o xml da nota fiscal do pedido.

Formato do XML

O XML enviado para a API deve está em texto puro. Abaixo os problemas mais comuns que devem ser tratados:

  • Deve realizar a remoção dos \r\n (breaklines)
  • Deve substituir na string os \/ por / (strip por barra direira)
  • O XML não pode conter aspas duplas, as aspas duplas " devem ser substituídas por aspas simples '

 
		
$jso = array(
	'conferencia' => 14577,
	'codigo_pagamento' => 154377,
	'obs' => 15777,
	'xml' => ''
);

$jso = json_encode($jso);


	$url = "https://www.meudatacenter.com/api/v1/pedido/33/pago";

	$curl = curl_init();
	curl_setopt($curl, CURLOPT_URL, $url);

	$headers = array();
	$headers[] = "x-ID:3566"; // Coloque seu ID aqui
	$headers[] = "x-Token:3481260001..."; // Coloque aqui seu Token
	$headers[] = "Content-Type: application/json";

	curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);

	curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'PUT'); // Definindo PUT
			  
	curl_setopt($curl, CURLOPT_POSTFIELDS, $jso); // Envio JSON

	curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
	curl_setopt($curl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
	$response = curl_exec($curl);
	$httpcode = curl_getinfo($curl, CURLINFO_HTTP_CODE);

	curl_close($curl);

	$retornoJSON = json_decode($response);
	
	

PUT SEPARACAO

Operação responsável em passar um pedido na fase "Pago" para "Separação". O endpoint usado na API para realizar a operação é: "pedido/{ID}/separacao". Nesta operação você informa os dados de Nota Fiscal.

		
$jso = array(
	"nf_chave" => "444444444444444",
	"nf_numero" => "1453277",
	"nf_emissao" => "2019-07-03",
	"xml" => ""
);

$jso = json_encode($jso);


	$url = "https://www.meudatacenter.com/api/v1/pedido/33/separacao";

	$curl = curl_init();
	curl_setopt($curl, CURLOPT_URL, $url);

	$headers = array();
	$headers[] = "x-ID:3566"; // Coloque seu ID aqui
	$headers[] = "x-Token:3481260001..."; // Coloque aqui seu Token
	$headers[] = "Content-Type: application/json";
	
	curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
  
	curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'PUT'); // Definindo PUT
			  
	curl_setopt($curl, CURLOPT_POSTFIELDS, $jso); // Envio JSON

	curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
	curl_setopt($curl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
	$response = curl_exec($curl);
	$httpcode = curl_getinfo($curl, CURLINFO_HTTP_CODE);

	curl_close($curl);

	$retornoJSON = json_decode($response);
	
	

PUT ENTREGA

O endpoint usado na api para realizar a operação é: "pedido/{ID}/entrega" Se sua solicitação ocorreu como o previsto o retorno será um 201 codeVeja abaixo um exemplo do código usando o cURL PHP

		
$jso = array(
	"codigo_rastreamento" => "OA895469969BR"
);

$jso = json_encode($jso);


	$url = "https://www.meudatacenter.com/api/v1/pedido/33/entrega";

	$curl = curl_init();
	curl_setopt($curl, CURLOPT_URL, $url);

	$headers = array();
	$headers[] = "x-ID:3566"; // Coloque seu ID aqui
	$headers[] = "x-Token:3481260001..."; // Coloque aqui seu Token
	$headers[] = "Content-Type: application/json";
	
	curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);

	curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'PUT'); // Definindo PUT
			  
	curl_setopt($curl, CURLOPT_POSTFIELDS, $jso); // Envio JSON

	curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
	curl_setopt($curl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
	$response = curl_exec($curl);
	$httpcode = curl_getinfo($curl, CURLINFO_HTTP_CODE);

	curl_close($curl);

	$retornoJSON = json_decode($response);
	
	

PUT CONCLUIDO

Operação responsável em passar um pedido na fase "Entrega" para "Concluído". O endpoint usado na API para realizar a operação é: "pedido/{ID}/concluido".

		
$jso = array(
);

$jso = json_encode($jso);


	$url = "https://www.meudatacenter.com/api/v1/pedido/33/concluido";

	$curl = curl_init();
	curl_setopt($curl, CURLOPT_URL, $url);

	$headers = array();
	$headers[] = "x-ID:3566"; // Coloque seu ID aqui
	$headers[] = "x-Token:3481260001..."; // Coloque aqui seu Token
	$headers[] = "Content-Type: application/json";
	
	curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);

	curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'PUT'); // Definindo PUT
			  
	curl_setopt($curl, CURLOPT_POSTFIELDS, $jso); // Envio JSON

	curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
	curl_setopt($curl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
	$response = curl_exec($curl);
	$httpcode = curl_getinfo($curl, CURLINFO_HTTP_CODE);

	curl_close($curl);

	$retornoJSON = json_decode($response);
	
	

PUT CANCELADO

Operação responsável em passar um pedido para "Cancelado", pode ser acionada em qualquer fase de pedido. O endpoint usado na API para realizar a operação é: "pedido/{ID}/cancelado", é possível informar o motivo do cancelamento para a loja virtual.

		
$jso = array(
	"motivo" => "Sem estoque disponivel para suprir demanda"
);

	$jso = json_encode($jso);

	$url = "https://www.meudatacenter.com/api/v1/pedido/33/cancelado";

	$curl = curl_init();
	curl_setopt($curl, CURLOPT_URL, $url);

	$headers = array();
	$headers[] = "x-ID:3566"; // Coloque seu ID aqui
	$headers[] = "x-Token:3481260001..."; // Coloque aqui seu Token
	$headers[] = "Content-Type: application/json";
  
	curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
	curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'PUT'); // Definindo PUT

	curl_setopt($curl, CURLOPT_POSTFIELDS, $jso); // Envio JSON

	curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
	curl_setopt($curl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
	$response = curl_exec($curl);
	$httpcode = curl_getinfo($curl, CURLINFO_HTTP_CODE);

	curl_close($curl);

	$retornoJSON = json_decode($response);
	
	

PUT NFe

Operação responsável por informar a qualquer momento os dados de Nota Fiscal à plataforma, independente da fase do pedido: "pedido/{ID}/nfe". Além do {ID} no end-point, essa função aceita também o código de controle do pedido. Se for um pedido de origem "ML" (Mercado Livre) a plataforma tentará enviar o xml informado ao Mercado Livre.

Formato do XML

O XML enviado para a API deve está em texto puro. Abaixo os problemas mais comuns que devem ser tratados:

  • Deve realizar a remoção dos \r\n (breaklines)
  • Deve substituir na string os \/ por / (strip por barra direira)
  • O XML não pode conter aspas duplas, as aspas duplas " devem ser substituídas por aspas simples '

		
$jso = array(
	"nf_chave" => "55555555555555555555555555555555555555555555",
	"nf_numero" => "332232",
	"nf_emissao" => "2020-07-14",
	"xml" => "........."
);

	$jso = json_encode($jso);

	$url = "https://www.meudatacenter.com/api/v1/pedido/34422/nfe";

	$curl = curl_init();
	curl_setopt($curl, CURLOPT_URL, $url);

	$headers = array();
	$headers[] = "x-ID:3566"; // Coloque seu ID aqui
	$headers[] = "x-Token:3481260001..."; // Coloque aqui seu Token
	$headers[] = "Content-Type: application/json";
  
	curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
	curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'PUT'); // Definindo PUT

	curl_setopt($curl, CURLOPT_POSTFIELDS, $jso); // Envio JSON

	curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
	curl_setopt($curl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
	$response = curl_exec($curl);
	$httpcode = curl_getinfo($curl, CURLINFO_HTTP_CODE);

	curl_close($curl);

	$retornoJSON = json_decode($response);
	
	

Callbacks (Retorno automático)

CallBack de Estoque

O CallBack de Estoque será disparado havendo qualquer alteração no estoque do item, o sistema emitirá um POST de JSON para a URL configurada na administração da loja virtual, na aba "Callbacks". A URL informada para callback deverá está preparada para receber o callback.

O sistema poderá interromper o envio de callback caso seja observado algum erro de recepção na URL informada, por exemplo, uma URL inválida ou com erro.

Modelo de JSON enviado no callback de Estoque 
{
   "evento":"estoque",
   "ID_ACESSO":"0000",
   "data":"2021-09-14 09:47:43",
   "url_loja":"https://www.apiplusplus.com.br/",
   "movimento":"ADD",
   "tipo":"Produto",
   "origem":"Cadastro Rápido",
   "ean":"5010993628124",
   "id_estoque":"132",
   "referencia_sku":"PL_890M",
   "estoque":"21"
}

Modelo do arquivo para receber POST enviado pelo CALLBACK em PHP
$data = json_decode(file_get_contents('php://input'), true); // Pegando o POST enviado pelo Callback.

//Obtenção das informações do JSON
$evento = $data['evento']; // Evento disparado
$ID_ACESSO = $data['ID_ACESSO']; // ID da loja
$referencia_sku = $data['referencia_sku']; // SKU do item - referencia. 
$estoque = $data['estoque']; // Novo estoque

...		


CallBack de Pedido

O CallBack de Pedido será disparado havendo qualquer alteração no pedido, o sistema emitirá um POST de JSON com todas informações do pedido para a URL configurada na administração da loja virtual, na aba "Callbacks". A URL informada para callback deverá está preparada para receber o callback.

O sistema poderá interromper o envio de callback caso seja observado algum erro de recepção na URL informada, por exemplo, uma URL inválida ou com erro.

Modelo de JSON enviado no callback de Pedido 
{
   "evento":"pedido",
   "ID_ACESSO":"0000",
   "data":"2021-09-14 10:11:32",
   "url_loja":"https://www.apiplusplus.com.br/",
   "pedido":{
      "id":"1",
      "codigo":"IA783614",
      "numero_controle":"166843517982325",
      "origem":"PLAT",
      "loja":"PLAT",
      "fase_marketplace":"",
      "fase_atual":"novo"
		  ....

Observe no JSON acima que o conteúdo do nó "pedido" é o mesmo retornado pelos métodos GET PEDIDO ou GET PEDIDOS. A composição completa dos campos do pedido poderá ser consultada nesses métodos.

Modelo do arquivo para receber POST enviado pelo CALLBACK em PHP
$data = json_decode(file_get_contents('php://input'), true); // Pegando o POST enviado pelo Callback.

//Obtenção das informações do JSON
$evento = $data['evento']; // Evento disparado
$ID_ACESSO = $data['ID_ACESSO']; // ID da loja
$codigo = $data['pedido']['codigo']; // Código do Pedido
$fase_atual = $data['pedido']['fase_atual']; // Fase atual.
...

Observe que no callback é enviado o campo "evento", esse campo diferenciará o que é evento de "estoque" e o que é evento de "pedido", já que a URL de envio é a mesma para ambos os callbacks.

Exemplo
...
if($evento=='estoque')
{
	//tratamento de estoque
} 
else if($evento=='pedido')
{
	//tratamento de pedido
}
...

Códigos de retorno da API

Codigo Descrição
495 Requisição não segura - SSL Certificate Error
200 A requisição foi bem sucedida
201 Recurso criado ou alterado com sucesso
400 Alguma informação enviada está incorreta. {Descrição do erro}
401 Problemas na autenticação. Verifique sua api key
403 Acesso a um recurso não permitido
404 Método não existe ou tipo de chamada não aceita neste método
500 Erro interno do sistema. Comunique nossa equipe técnica pois este erro não deve acontecer
409 Erro de conflito: código, SKU ou ID já existe.
412 Erro de tipagem. Ex: Envio deve ser float e foi enviado string. Retorno exclusivo do PUT PRODUTO.
501 A operação não foi concluída. Erro interno, comunique nossa equipe técnica.
407 A origem do acesso não é API. Não autorizado.
406 Token não existe, desativado ou alterado na loja virtual.

Atualizações

Data Atualização
01/11/2021 GET PRODUTO - Filtro de referencia.
Agora é possível consultar um produto através da referencia, ao informar o filtro referencia= a API irá localizar o produto que possui essa referencia entre suas opções. Antes só era possível através do {CODIGO} do produto.

01/11/2021 GET PRECO - Filtro de referencia
Agora é possível consultar o preço de um produto através da referencia, ao informar o filtro referencia= a API irá localizar o produto que possui essa referencia entre suas opções. Antes só era possível através do {CODIGO} do produto.

01/11/2021 PUT PRECO - Filtro de referencia
Agora é possível referenciar o produto a ter o preço atualizado pela referencia, ao informar o filtro referencia= a API irá localizar o produto que possui essa referencia entre suas opções. Antes só era possível através do {CODIGO} do produto.

15/09/2021 GET PRODUTO e GET PRODUTOS - campo "url_produto"
A API, nos métodos GET PRODUTO e GET PRODUTOS irá retornar a partir desta atualização o campo "url_produto" dentro do nó de "modelos" que corresponde ao link do produto.

14/09/2021 CALLBACKS
Implementação e disponibilização dos Callbacks (Retorno Automático) de Estoque e Pedidos. Havendo qualquer alteração em estoque ou pedido o sistema emitirá uma comunicação com o conteúdo do item alterado para a URL configurada na administração da loja virtual.

09/08/2021 POST IMAGEM
Para atender demandas de ERPS e sistemas que não utilizam de imagens em ambiente web, foi criado o método POST IMAGEM que envia para a loja virtual imagens em formato string em base64.

02/08/2021 GET PEDIDO e GET PEDIDOS - campo "ie" (Inscrição Estadual)
A API, nos métodos GET PEDIDO e GET PEDIDOS irá retornar a partir desta atualização o campo "ie" (Inscrição Estadual) dentro do nó cliente.

27/07/2021 PUT PRODUTO
Foi disponilizado o endpoint de atualização de produto e suas variações. A documentação pode ser acessada e aqui. e o método pode ser testado na API Explorer.

02/06/2021 GET PEDIDOS e GET PEDIDO campo "codigo_ibge"
Quando não for localizado o código do IBGE de acordo com o CEP do pedido, a API retornará no campo "codigo_ibge" o valor "N/I" devendo o empenho da exatidão do código do IBGE ser realizado pela integradora.

05/08/2020 END-POINT: PUT NFe
- O recurso PUT NFe foi criado na API visando automatizar processos de envios de Nf2 (XML) para a plataforma.

- Essa função possui uma exclusividade pois também envia o XML diretamente para os pedidos oriundos do Mercado Livre.


25/07/2020 END-POINT: POST PRODUTO
- o POST PRODUTO recebeu uma alteração no campo "referencia", é necessário enviar em string agora, antes era integer.
- A alteração foi realizada pois a referencia com letras não estava funcionando, aceitava somente números.


23/06/2020 END-POINT: GET PEDIDOS
- O recurso GET PEDIDOS recebeu um novo filtro de dataAlteracao, podendo filtrar desta forma todos os pedidos que tiveram sua última alteração/atualização na data indicada. Padrão YYYY-MM-DD



21/05/2020 END-POINT: GET PEDIDOS e GET PEDIDO
1 - GET PEDIDOS e GET PEDIDO
- Os campos "valor", "valor_final" e "desconto" dentro do nó "itens", que se refere aos valores dos produtos do pedido, recebem agora valores reais da compra ao invés de apenas o preço base do produto. Essa normalização exibirá os mesmos valores que são exibidos no painel de pedidos da plataforma.

Dos campos acima, o campo "valor_final" é uma novidade no recurso GET PEDIDO e GET PEDIDOS a partir desta atualização.

04/05/2020 END-POINT: GET PEDIDOS e GET PEDIDO
1 - GET PEDIDOS
- O recurso GET PEDIDOS recebeu um novo filtro de status, podendo filtrar pela função status os valores: novo, pago, separacao, entrega, concluido ou cancelado

2 - GET PEDIDOS e GET PEDIDO
Os recursos get PEDIDO e get PEDIDOS receberam o campo codigo_ibge em seu retorno. O código IBGE se refere no caso à cidade do cliente que solicitou o pedido.

23/10/2019 END-POINT: GET PRODUTOS E GET PEDIDOS
Os recursos GET PRODUTOS e GET PEDIDOS receberam filtros de consulta.

1 - GET PRODUTOS
- Recebeu o filtro page, cada página retornará 100 resultados.
Se não informado, o sistema considera como ?page=1, o filtro deve ser informado na URL da requisição. Agora, ao final do retorno JSON da requisição, será informado os totais de produtos, total de páginas e página atual.

2 - GET PEDIDOS
- Recebeu os filtros DataInicial e DataFinal, caso não informado retornará os 100 últimos pedidos mais recentes. O padrão de datas destes filtros é YYYY-MM-DD.
Exemplo: ?dataInicial=2019-10-01&dataFinal=2019-10-07

08/10/2019 END-POINT: GET PEDIDO E GET PEDIDOS
Recurso retornará agora novos campos, são eles
- campo "quantidade" dentro de pedido->itens
- campo "origem" dentro de pedido
- campo "loja" dentro de pedido
- campo "fase_marketplace" dentro de pedido
- campo "data_pedido" dentro de pedido
- campo "data_pagamento" dentro de pedido
- campo "data_separacao" dentro de pedido
- campo "data_enviado" dentro de pedido
- campo "data_concluido" dentro de pedido
- campo "data_cancelado" dentro de pedido