GET /produtos

Busca todos os produtos cadastrados no sistema.

URL BASE:
https://xxxxxxxxxx/api/v1/produtos/

Tipos de operações aceitas (method) GET

Parâmetros aceitos no método.
ParâmetroTipo de dadosDescriçãoObservações
idintRetorna apenas um produto através do seu ID.
Exemplo: /api/v1/produtos/id/2
Não obrigatório
id_skustring(30)Retorna apenas um produto através do seu SKU ID.
Exemplo: /api/v1/produtos/id_sku/216-88
Não obrigatório
paginaintNo caso do retorno ter mais de uma página, pode-se listar uma determinada página.
Exemplo: /api/v1/produtos?pagina=2
Não obrigatório

Método GET

Exemplo em PHP utilizando cURL.
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://xxxxx/api/v1/produtos/id_sku/216-88");
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_USERPWD, "87a0-4se9-bt1a-6c1d9fe4ce2e");
$result = curl_exec ($ch);
curl_close ($ch);

Método GET

Exemplo em C# utilizando HttpWebRequest.
private string ConectAPI(string postxml)
{
 try
 {
     HttpWebRequest wq = (HttpWebRequest)WebRequest.Create("https://xxxxx/api/v1/produtos/id_sku/216-88");
     wq.ContentType = "application/xml";
     string auth = Convert.ToBase64String(Encoding.UTF8.GetBytes("87a0-4se9-bt1a-6c1d9fe4ce2e"));
     wq.Headers[HttpRequestHeader.Authorization] = "Basic " + auth;
     if (postxml.Length > 0)
     {
         byte[] data = Encoding.UTF8.GetBytes(postxml);
         wq.ContentLength = data.Length;
         Stream POSTstream = wq.GetRequestStream();
         POSTstream.Write(data, 0, data.Length);
     }
     HttpWebResponse wp = (HttpWebResponse)wq.GetResponse();
     StreamReader rd = new StreamReader(wp.GetResponseStream(), Encoding.UTF8);
     return rd.ReadToEnd().ToString();
 }
 catch (Exception ex) { return ex.Message; }
}

Resposta em caso de sucesso.
<Produtos xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <retorno>
    <Produto>
      <id_produto>36</id_produto>
      <id_sku>36</id_sku>
      <ativo>true</ativo>
      <nome>Britney Spears - Fantasy fem.</nome>
      <marca />
      <preco_de>0.00</preco_de>
      <preco>155.00</preco>
      <b2b_ativo>true</b2b_ativo>
      <preco_b2b_nivel1>185.00</preco_b2b_nivel1>
      <preco_b2b_nivel2>0.00</preco_b2b_nivel2>
      <preco_b2b_nivel3>0.00</preco_b2b_nivel3>
      <categoria_principal_id>9</categoria_principal_id>
      <categoria_principal_nome>Feminino</categoria_principal_nome>
      <url>http://loja3.universocommerce.com.br/britney-spears-fantasy-fem-30ml-p.aspx</url>
      <peso>0.5</peso>
      <comprimento>16</comprimento>
      <largura>11</largura>
      <altura>4</altura>
      <controle_estoque>true</controle_estoque>
      <estoque_disponivel>28</estoque_disponivel>
      <estoque_reservado>1</estoque_reservado>
      <possui_variacao>true</possui_variacao>
      <variacoes>
        <Variacao>
          <id_sku>36-34</id_sku>
          <nome>100ml</nome>
          <preco_adicional>85.90</preco_adicional>
          <peso_adicional>1</peso_adicional>
          <estoque>11</estoque>
        </Variacao>
        <Variacao>
          <id_sku>36-35</id_sku>
          <nome>50ml</nome>
          <preco_adicional>45.90</preco_adicional>
          <peso_adicional>0.5</peso_adicional>
          <estoque>0</estoque>
        </Variacao>
        <Variacao>
          <id_sku>36-36</id_sku>
          <nome>30ml</nome>
          <preco_adicional>0.00</preco_adicional>
          <peso_adicional>0</peso_adicional>
          <estoque>17</estoque>
        </Variacao>
      </variacoes>
      <campo_opcional1 />
      <campo_opcional2 />
      <campo_opcional3 />
      <campo_opcional4 />
      <campo_opcional5 />
    </Produto>
  </retorno>
  <status_api>OK</status_api>
  <total_registros>1</total_registros>
  <total_paginas>1</total_paginas>
  <pagina_atual>1</pagina_atual>
</Produtos>

Resposta em caso de erro.
<Produtos xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <retorno />
  <status_api>Nenhum registro foi encontrado.</status_api>
  <total_registros>0</total_registros>
  <total_paginas>0</total_paginas>
  <pagina_atual>1</pagina_atual>
</Produtos>

POST /produtos

Este método tem como função atualizar os dados do produto.
Você pode fazer atualização de preço e de quantidade em estoque.

URL BASE:
https://xxxxx/api/v1/produtos/update/

O conteúdo deve ser enviado no formato XML, conforme exemplo a seguir.
<produtos>
  <produto>
    <id_sku>11</id_sku>
    <preco>139.90</preco>
    <qtd>34</qtd>
  </produto>
  <produto>
    <id_sku>35-86</id_sku>
    <preco>225.00</preco>
    <qtd>99</qtd>
  </produto>
</produtos>

Os parâmetros aceitos estão listados na tabela a seguir.
ParâmetroTipo de dadosDescriçãoObservações
id_skustring(30)ID_SKU (produto ou sua variação) a ser alterado com os novos valores.Obrigatório
qtdintDefine o novo valor para atualizar a quantidade em estoque do produto, ou sua variação.Não obrigatório
precodecimalDefine o novo valor para atualizar o preço do produto, ou sua variação.Não obrigatório

Exemplo em C# utilizando HttpWebRequest.
private string ConectAPI(string postxml)
{
 try
 {
   HttpWebRequest wq = (HttpWebRequest)WebRequest.Create("https://xxxxx/api/v1/produtos/update/");
   postxml = "<produtos><produto><id_sku>11</id_sku><preco>139.90</preco><qtd>34</qtd></produto></produtos>";
   string auth = Convert.ToBase64String(Encoding.UTF8.GetBytes("87a0-4se9-bt1a-6c1d9fe4ce2e"));
   wq.ContentType = "application/xml";
   wq.Method = "POST";
   wq.Headers[HttpRequestHeader.Authorization] = "Basic " + auth;
   if (postxml.Length > 0)
   {
     byte[] data = Encoding.UTF8.GetBytes(postxml);
     wq.ContentLength = data.Length;
     Stream POSTstream = wq.GetRequestStream();
     POSTstream.Write(data, 0, data.Length);
   }
   HttpWebResponse wp = (HttpWebResponse)wq.GetResponse();
   StreamReader rd = new StreamReader(wp.GetResponseStream(), Encoding.UTF8);
   return rd.ReadToEnd().ToString();
 }
 catch (Exception ex) { return ex.Message; }
}

Método POST

Exemplo em PHP utilizando cURL.
<?php
$data = "<produtos><produto><id_sku>11</id_sku><preco>139.90</preco><qtd>34</qtd></produto></produtos>";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://xxxxx/api/v1/produtos/update/");
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/xml','Content-Length: ' . strlen($data)));
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_USERPWD, " sualojavirtual:cdda1df53a0086505d12f47e14ae0235");
$result = curl_exec($ch);
curl_close($ch);

Resposta em caso de sucesso.
<ProdutosUpdate xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <retorno>
    <ProdutoUpdate>
      <id_sku>10</id_sku>
      <status>ok</status>
    </ProdutoUpdate>
    <ProdutoUpdate>
      <id_sku>11</id_sku>
      <status>ok</status>
    </ProdutoUpdate>
  </retorno>
  <status_api>OK</status_api>
  <total_registros>2</total_registros>
</ProdutosUpdate>

Resposta em caso de erro.
<ProdutosUpdate xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <retorno>
    <ProdutoUpdate>
      <id_sku>10</id_sku>
      <status>ok</status>
    </ProdutoUpdate>
    <ProdutoUpdate>
      <id_sku>14-9289</id_sku>
      <status>erro</status>
      <erro>
        <codigo>21</codigo>
        <msg>O campo 'id_sku' nao foi encontrado.</msg>
      </erro>
    </ProdutoUpdate>
    <ProdutoUpdate>
      <id_sku>11</id_sku>
      <status>ok</status>
    </ProdutoUpdate>
  </retorno>
  <status_api>OK</status_api>
  <total_registros>3</total_registros>
</ProdutosUpdate>