• 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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now