Atualiza um produto
Atualiza um produto a partir do seu codigo
.
curl |
curl -X POST "https://bling.com.br/Api/v2/produto/{codigo}/json/" |
PHP |
$url = 'https://bling.com.br/Api/v2/produto/{codigo}/'; $xml = '...'; $posts = array ( "apikey" => "{apikey}", "xml" => rawurlencode($xml) ); $retorno = executeUpdateProduct($url, $posts); echo $retorno; function executeUpdateProduct($url, $data){ $curl_handle = curl_init(); curl_setopt($curl_handle, CURLOPT_URL, $url); curl_setopt($curl_handle, CURLOPT_POST, count($data)); curl_setopt($curl_handle, CURLOPT_POSTFIELDS, $data); curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, TRUE); $response = curl_exec($curl_handle); curl_close($curl_handle); return $response; } |
C# |
public static void ExecuteUpdateProduct() { HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://bling.com.br/Api/v2/produto/{codigo}"); ASCIIEncoding encoding = new ASCIIEncoding(); string postData = "apikey={apiKey}&xml={xml_do_produto}"; byte[] data = encoding.GetBytes(postData); request.Method = "POST"; request.ContentType = "application/x-www-form-urlencoded"; request.ContentLength = data.Length; using (Stream stream = request.GetRequestStream()) stream.Write(data,0,data.Length); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); string responseString = new StreamReader(response.GetResponseStream()).ReadToEnd(); Console.Out.WriteLine("Response Body: \r\n {0}", responseString); } |
Parâmetro | Descrição | Tipo |
apikey |
apikey gerada no sistema | string |
xml |
Xml contendo o produto | string |
Para o parâmetro xml
, é necessário seguir o padrão.
Tabela de campos do XML
Grupo | Campo | Informação | Tipo | Padrão | Opcional | Nota |
---|---|---|---|---|---|---|
raiz | produto | Obrigatório | ||||
produto | codigo | Código do produto | STRING(60) | Obrigatório | ||
produto | descricao | Descrição do produto | STRING(120) | Obrigatório | ||
produto | tipo | Tipo ('S' para serviço e 'P' para produto) | STRING(1) | P | Opcional |
|
produto | situacao | Situação do produto (Ativo ou Inativo) | STRING | Ativo | Opcional |
|
produto | descricaoCurta | Descrição curta do produto | STRING | Opcional | ||
produto | descricaoComplementar | Descrição complementar do produto | STRING | Opcional | ||
produto | un | Tipo de unidade do produto | STRING(6) | pc, un, cx | Opcional | |
produto | vlr_unit | Valor unitário do produto | DECIMAL(17,10) | Opcional | ||
produto | preco_custo | Preço de custo do produto | DECIMAL(17,10) | Opcional | ||
produto | peso_bruto | Peso bruto do produto | DECIMAL(11,3) | Opcional | 1 | |
produto | peso_liq | Peso líquido do produto | DECIMAL(11,3) | Opcional | 1 | |
produto | class_fiscal | NCM do produto | STRING(10) | 9999.99.99 | Opcional | |
produto | marca | Marca do produto | STRING(40) | Opcional | ||
produto | cest | CEST do produto | STRING(7) | 99.999.99 | Opcional | |
produto | origem | Origem do produto | STRING(1) | 9 | Opcional | |
produto | idGrupoProduto | Identificador do grupo do produto | DECIMAL(11) | 0 | Opcional | 2 |
produto | condicao | Condição do produto (Não especificado, Novo, Recondicionado ou Usado) | STRING | Não especificado | Opcional | 1 |
produto | freteGratis | Frete grátis (S para Sim ou N para Não) | STRING(1) | N | Opcional | 1 |
produto | linkExterno | Link do produto na loja virtual, marketplace, catálago etc. | STRING(100) | Opcional | ||
produto | observacoes | Observações do produto | STRING | Opcional | ||
produto | producao | Tipo de produção do produto (T para Terceiros ou P para Própria) | STRING(1) | P | Opcional | 1 |
produto | unidadeMedida | Unidade de medida do produto (Metros, Centímetros ou Milímetro) | STRING | Centímetros | Opcional | 1 |
produto | dataValidade | Data de validade do produto | DATE | dd/mm/YYYY | Opcional | 1 |
produto | descricaoFornecedor | Descrição do fornecedor | STRING | Opcional | ||
produto | idFabricante | Id do fornecedor (pode ser obtido no GET de contatos) | DECIMAL(11) | Opcional | ||
produto | codigoFabricante | Código do produto no fornecedor | STRING | Opcional | ||
produto | estoque | Estoque atual do produto | DECIMAL(11,4) | 99999999999.9999 | Opcional | 1 |
produto | deposito | Depósito ao qual será lançado estoque | Opcional | 1 | ||
deposito | id | Código identificador do depósito | DECIMAL(11) | Opcional | 1 | |
deposito | estoque | Estoque atual do produto no depósito | DECIMAL(11,4) | Opcional | 1 | |
produto | gtin | GTIN / EAN | STRING(14) | Opcional | 1 | |
produto | gtinEmbalagem | GTIN / EAN tributário da menor unidade comercializada | STRING(14) | Opcional | 1 | |
produto | largura | Largura do produto com embalagem | STRING(15) | Opcional | 1 | |
produto | altura | Altura do produto com embalagem | STRING(15) | Opcional | 1 | |
produto | profundidade | Profundidade do produto com embalagem | STRING(15) | Opcional | 1 | |
produto | estoqueMinimo | Estoque mínimo do produto | DECIMAL(11,2) | 99999999999.99 | Opcional | 1 |
produto | estoqueMaximo | Estoque máximo do produto | DECIMAL(11,2) | 99999999999.99 | Opcional | 1 |
produto | itensPorCaixa | Quantidade de itens por caixa | DECIMAL(11,2) | Opcional | 1 | |
produto | volumes | Quantidade de volumes do produto | DECIMAL(2) | 0 | Opcional | 1 |
produto | urlVideo | Url do vídeo do produto, utilizado na exportação do produto para lojas virtuais | STRING(100) | Opcional | ||
produto | localizacao | Localização do produto | STRING(50) | Opcional | 1 | |
produto | crossdocking | Quantidade de dias para o processo de distribuição em que a mercadoria recebida é redirecionada ao consumidor final sem uma armazenagem prévia. | DECIMAL(4) | Opcional |
1 |
|
produto | garantia | Garantia do produto, deve ser informada em meses. | INTEGER(3) | Opcional |
1 |
|
produto | spedTipoItem | Código do tipo do item no SPED | INTEGER(2) | Opcional |
4 |
|
produto | imagens | Lista de imagens do produto | Opcional | |||
imagens | url | URL da imagem | STRING | Opcional | ||
produto | idCategoria | ID da categoria do produto | DECIMAL(11) | Opcional | 1,3 | |
produto | estrutura | Composição do produto | Opcional | |||
estrutura | tipoEstoque | Tipo do estoque | STRING(1) | F - Físico V - Virtual |
Opcional | |
estrutura | lancarEstoque | Lançar estoque em | STRING(1) | P - Produto C - Componente PC - Produto e Componente |
Opcional | |
estrutura | componente | Componente da composição | Obrigatório | |||
componente | nome | Nome do produto | STRING(120) | N | Obrigatório | |
componente | codigo | Código do produto | STRING(60) | Obrigatório | ||
componente | quantidade | Quantidade do produto na composição | DECIMAL(11,4) | Obrigatório |
Notas:
- Campos exclusivos do produto, para realizar cadastro de serviços estes campos devem ser omitidos do
xml
. - Se o grupo de produtos não for encontrado, a inclusão/alteração do produto ocorre normalmente. Porém o produto ficará sem grupo e será retornando "idGrupoProduto":"0" na resposta da API.
- Para obter o idCategoria é possível acessar a API de categoria, utilizando o manual da API de categorias
- Código do tipo do item no SPED:
Código |
Descrição |
00 |
Mercadoria para Revenda |
01 |
Matéria-Prima |
02 |
Embalagem |
03 |
Produto em Processo |
04 |
Produto Acabado |
05 |
Subproduto |
06 |
Produto Intermediário |
07 |
Material de Uso e Consumo |
08 |
Ativo Imobilizado |
09 |
Serviços |
10 |
Outros insumos |
99 |
Outras |
Mensagens de erros específicos
Código | Mensagem |
40 | Nao foi possivel salvar as informações do produto |
41 | O produto nao pode ser cadastrado sem descricao |
42 | Nao foi possivel atualizar o produto - Produto nao encontrado no sistema |
49 | Fornecedor invalido |
50 | Nao e possivel inserir variacoes em uma variacao |
51 | Codigo do produto ja esta em uso e nao pode ser utilizado |
54 | Campo idCategoria nao corresponde a nenhuma categoria cadastrada |
Exemplo de XML
<?xml version="1.0" encoding="UTF-8"?>
<produto>
<codigo>223435780</codigo>
<descricao>Caneta 001</descricao>
<situacao>Ativo</situacao>
<descricaoComplementar>Descrição complementar da caneta</descricaoComplementar>
<un>Pc</un>
<vlr_unit>1.68</vlr_unit>
<preco_custo>1.23</preco_custo>
<peso_bruto>0.2</peso_bruto>
<peso_liq>0.18</peso_liq>
<class_fiscal>1000.01.01</class_fiscal>
<marca>Marca da Caneta</marca>
<origem>0</origem>
<estoque>10</estoque>
<gtin>223435780</gtin>
<gtinEmbalagem>54546</gtinEmbalagem>
<largura>11</largura>
<altura>21</altura>
<profundidade>31</profundidade>
<estoqueMinimo>1.00</estoqueMinimo>
<estoqueMaximo>100.00</estoqueMaximo>
<class_fiscal>1111.11.11</class_fiscal>
<cest>28.040.00</cest>
<idGrupoProduto>12345</idGrupoProduto>
<condicao>Usado</condicao>
<freteGratis>S</freteGratis>
<linkExterno>https://minhaloja.com.br/meu-produto</linkExterno>
<observacoes>Observações do meu produto</observacoes>
<producao>T</producao>
<dataValidade>20/11/2019</dataValidade>
<descricaoFornecedor>Descrição do fornecedor</descricaoFornecedor>
<idFabricante>0</idFabricante>
<codigoFabricante>123</codigoFabricante>
<unidadeMedida>Milímetro</unidadeMedida>
<crossdocking>2</crossdocking>
<garantia>4</garantia>
<itensPorCaixa>2</itensPorCaixa>
<volumes>2</volumes>
<urlVideo>https://www.youtube.com/watch?v=zKKL-SgC5lY</urlVideo>
<deposito>
<id>123456</id>
<estoque>200</estoque>
</deposito>
<imagens>
<url>https://www.bling.com.br/bling.jpg</url>
</imagens>
<idCategoria>1234</idCategoria>
</produto>
Retorno
Em caso de sucesso, retornará o produto alterado, no mesmo modelo do exemplo a seguir. Caso contrário, retornará um erro.
A resposta será no formato especificado na URL (XML ou JSON).
Exemplo de retorno
{ "retorno": { "produtos": [ { "produto": { "codigo": "CAD00011", "tipo": "P", "situacao": "Ativo", "descricao": "CADEIRA XYZ F5", "unidade": "", "preco": "100.0000000000", "precoCusto": "85.0000000000", "pesoLiq": "1.000", "pesoBruto": "1.000", "estoqueMinimo": "0.00", "estoqueMaximo": null, "gtin": "", "gtinEmbalagem": "", "descricaoComplementar": "CADEIRA", "larguraProduto": "10", "alturaProduto": "89", "profundidadeProduto": "67", "estoqueMinimo": "1", "estoqueMaximo": "100", "class_fiscal": "1111.11.11", "cest": "28.040.00", "idGrupoProduto":"12345", "condicao":"Não Especificado", "freteGratis":"N", "linkExterno":"https://minhaloja.com.br/cadeira-xyz-f5", "observacoes":"Observações da CADEIRA XYZ F5", "producao":"P", "unidadeMedida":"Centímetros", "itensPorCaixa": 2, "volumes": 2, "urlVideo": "https://www.youtube.com/watch?v=zKKL-SgC5lY", "localizacao":"Prateleira B", "crossdocking": 2, "garantia": 4, "condicao": "Novo", "freteGratis": "S", "producao": "P", "dataValidade": "20-11-2019", "spedTipoItem": "00", "descricaoFornecedor": "Descrição do fornecedor", "codigoFabricante": "123" "idCategoria": "1234" } } ] } }