• 0
AGL

Incluir produto no ML

Question

Boa tarde, alguém tem um exemplo de cadastro de produto no ML em C# para compartilhar?

Onde incluir o arquivo JSON (em anexo) no código abaixo?

var p = new Parameter ();
p.Name = "access_token";
p.Value = m.AccessToken;

var ps = new List<Parameter> ();
ps.Add (p);
IRestResponse r = m.Post ("/items", ps, new {foo="bar"});

json_ml.json

Edited by AGL

Share this post


Link to post
Share on other sites

12 answers to this question

Recommended Posts

  • 0

olá!
eu acho que voce tem  que mudar o "second parameter" para o "third parameter".

e no "second paramenter" voce vai colocar o json do produto.

assim:

IRestResponse r = m.Post ("/items", {aqui colocar o json}, ps);

 

O que eu nao me lembro é o formato do dados do son que voce vai enviar.

tenta colocar como objeto, tenta como array e tenta como texto plano

 

depois fala para a gente como foi tudo por favor

Share this post


Link to post
Share on other sites
  • 0

Estou fazendo da forma recomendada, porem esta vindo mensagem de que falta alguns campos no arquivo JSON, mas, ja conferi e os campos estão no arquivo.

 

erro_ml.png

json_ml1.json

Edited by AGL

Share this post


Link to post
Share on other sites
  • 0

você está tentando enviar um arquivo json ou os dados?

não trabalho com C# mas o erro indica o que está acontecendo: nenhum dos campos obrigatórios estão sendo recebidos pela API, ou seja, é sinal que seu script não está enviando de forma correta o json (dados) para a API

Share this post


Link to post
Share on other sites
  • 0

Boa tarde, estou utilizando o arquivo em anexo mas esta dando erro.
Veja na imagem como o JSON fica com varias contra barras.

Pego o conteudo do arquivo JSON com o codigo abaixo:

 JavaScriptSerializer serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
            using (StreamReader r1 = new StreamReader(@"C:\Backup\json_ml1.json"))
            {
                string json = r1.ReadToEnd();
                dynamic array1 = serializer.Serialize(json);

                var ps = new List<Parameter>();
                ps.Add(p);

                IRestResponse r = m.Post("/items", ps, new { array1 });
            }

json_ml1.json

json.png

Edited by AGL

Share this post


Link to post
Share on other sites
  • 0
43 minutes ago, AGL said:

Boa tarde, estou utilizando o arquivo em anexo mas esta dando erro.
Veja na imagem como o JSON fica com varias contra barras.

Pego o conteudo do arquivo JSON com o codigo abaixo:

 JavaScriptSerializer serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
            using (StreamReader r1 = new StreamReader(@"C:\Backup\json_ml1.json"))
            {
                string json = r1.ReadToEnd();
                dynamic array1 = serializer.Serialize(json);

                var ps = new List<Parameter>();
                ps.Add(p);

                IRestResponse r = m.Post("/items", ps, new { array1 });
            }

json_ml1.json

json.png

como disse não trabalho com C#, mas já te adianto que não podem existir essas quebras de linha

Share this post


Link to post
Share on other sites
  • 0

não se usa o "json="

o body é enviado como string em formato json

{title:Item teste nao Ofertar;catogory_id:MLA3530; ...}
Lembrando que mesmo que seja um teste você deve respeitar as "nacionalidades"  não use uma categoria MLA (Argentina) , use o MLB (Brasil)

 

e como o @mldev disse não há formatação na string json

13 hours ago, mldev said:

já te adianto que não podem existir essas quebras de linha

 

Share this post


Link to post
Share on other sites
  • 0
13 hours ago, mldev said:

como disse não trabalho com C#, mas já te adianto que não podem existir essas quebras de linha

Olha até pode sim porque eu ja cheguei a mandar assim no começo , mas eu comecei a remover para diminuir o tamanha da requisição .

 

var client = new RestClient("https://api.mercadolibre.com/items?access_token=<token>");
var request = new RestRequest(Method.POST);
request.AddHeader("Cache-Control", "no-cache");
request.AddHeader("Content-Type", "application/json");
request.AddParameter("undefined", "{ \"title\": \"Calota Aro 13 Jg. com 4 Palio Fire 2003\", \"category_id\": \"MLB22736\", \"price\": \"44.56\", \"currency_id\": \"BRL\", \"available_quantity\": \"1\", \"buying_mode\": \"buy_it_now\", \"listing_type_id\": \"gold_pro\", \"condition\": \"new\", \"description\": \"isso ae\", \"attributes\": [ { \"BRAND\": \"GRID\" }, { \"MODEL\": \"051CBPTAU\" }, { \"EAN\": \"7898277980773\" }, { \"SELLER_SKU\": \"0030032\" }, { \"PACKAGE_HEIGHT\": \"0\" }, { \"PACKAGE_LENGTH\": \"0\" }, { \"PACKAGE_WIDTH\": \"0\" }, { \"PACKAGE_WEIGHT\": \"340\" } ], \"shipping\": { \"mode\": \"me2\", \"local_pick_up\": false, \"free_shipping\": false, \"free_methods\": [] }, \"warranty\": \"90 dias a partir da compra\", \"pictures\": [ { \"source\": \"https://meusite.websiteseguro.com/ml/produtos/00300321.jpg\" } ]}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);

 

14 hours ago, AGL said:

Boa tarde, estou utilizando o arquivo em anexo mas esta dando erro.
Veja na imagem como o JSON fica com varias contra barras.

Pego o conteudo do arquivo JSON com o codigo abaixo:

 JavaScriptSerializer serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
            using (StreamReader r1 = new StreamReader(@"C:\Backup\json_ml1.json"))
            {
                string json = r1.ReadToEnd();
                dynamic array1 = serializer.Serialize(json);

                var ps = new List<Parameter>();
                ps.Add(p);

                IRestResponse r = m.Post("/items", ps, new { array1 });
            }

json_ml1.json

json.png

 

Você não parece ter familiaridade com apis então precisa testar no postman primeiro para entender como funciona. 

Seu json é o exemplo e tem dados da argentina nele . Assim não vai funcionar .

Se não sabe por onde começar pega um anúncio real e analisa os dados
https://api.mercadolibre.com/items/MLB909713390?access_token={{token}}&amp;include_attributes=all

E leia a documentação , tem bastante informação relevante

https://developers.mercadolibre.com/pt-br/api-docs-pt-br/publicacao-de-produtos

Share this post


Link to post
Share on other sites
  • 0

Boa tarde, consegui incluir os produtos no Mercado Livre.
Quero agradecer a todos pela ajuda e paciência.

Somente uma duvida, procurei e não localizei, qual o tamanho máximo do arquivo JSON para envio?
Até quantos produtos posso incluir no arquivo?

Edited by AGL

Share this post


Link to post
Share on other sites
  • 0
38 minutes ago, AGL said:

Boa tarde, consegui incluir os produtos no Mercado Livre.
Quero agradecer a todos pela ajuda e paciência.

Somente uma duvida, procurei e não localizei, qual o tamanho máximo do arquivo JSON para envio?
Até quantos produtos posso incluir no arquivo?

o JSON em si não tem limite, o que há limitação é a quantidade de chars da descrição e titulo

é somente um produto por chamada

Share this post


Link to post
Share on other sites
  • 0

Tenho alguns clientes que possui cerca de 70 mil itens na loja.
Como proceder nesse caso?!
Vai mandando produto por produto e pegando o retorno?

Share this post


Link to post
Share on other sites
  • 0
16 minutes ago, AGL said:

Tenho alguns clientes que possui cerca de 70 mil itens na loja.
Como proceder nesse caso?!
Vai mandando produto por produto e pegando o retorno?

sim. Infelizmente, sim

Existe o MULTIGET, poderia existir o MULTIPUT e o MULTIPOST

Edited by rodrigojob

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...