<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âmetro | Tipo de dados | Descrição | Observações |
id_sku | string(30) | ID_SKU (produto ou sua variação) a ser alterado com os novos valores. | Obrigatório |
qtd | int | Define o novo valor para atualizar a quantidade em estoque do produto, ou sua variação. | Não obrigatório |
preco | decimal | Define 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>