Se você precisa copiar vários anúncios de uma conta do MercadoLivre para outra estes dois Userscripts vão ajudar.
Um dos scripts faz o Backup dos anúncios e o outro faz o Upload dos anúncios na nova conta.
O processo de uso não é tão fácil, fiz estes scripts para minha necessidade então não criei uma interface visual, é preciso um conhecimento razoável sobre Ferramentas do Administrador do Chrome, API do ML e o básico de JS.
O aplicativo é em formato de Userscript e foi desenvolvido para ser usado no Chrome com o complemento Tampermonkey, Primeiro instale o complemento Tampermonkey no Google Chrome: //chrome.google.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo
Abaixo o script para fazer o backup dos anúncios:
// ==UserScript== // @name ML - Baixar Anuncios // @author Daniel Plácido ([email protected]) // @website //www.ideias.pw // @description Script para efetuar backup dos anuncios // @version 1.3 // @downloadURL // // @updateURL // // @require //www.ideias.pw/userscripts/jquery3.3.1.min.js // @connect // @match //myaccount.mercadolivre.com.br/summary/?EXPORTAR=TUDO // @grant GM_getValue // @grant GM_setValue // @grant GM_listValues // @grant GM_log // @run-at document-end // ==/UserScript== $(document).ready(function(){ //CONVERTER PARA SALVAR EM XML var my_id = "xxxxxx"; //COLOQUER AQUI SUA ID var access_token = "xxxxxxxxxxxxxxxxxxxx"; //COLOQUE AQUI SEU ACCESS TOKEN (NÃO SE ESQUEÇA QUE ELE VENCE A CADA 6 HORAS) //função que baixa os anuncios, é chamada automaticamente pelo $.getJSON function baixar(n1, n2) { console.log('Ok! ' + n1 + ' até ' + n2); //Requisita a lista com ID dos anuncios, de 10 em 10 $.getJSON('//api.mercadolibre.com/users/'+my_id+'/items/search?access_token='+access_token+'&offset='+n1+'&limit=10&status=active', function(retorno){ //Cria um loop para ler cada anuncio for (c=0;c<100;c++){ let temp = retorno.results[c]; //se existir a variavel com a ID (pois ela pode ter vindo vazio caso tinha menos de 100 anuncios neste loop) if(temp){ //Baixa os detalhes do produto $.getJSON('//api.mercadolibre.com/items/'+temp+'?access_token='+access_token, function(retorno){ //console.log("Baixando " + temp); let titulo = retorno.title; let tipo_anuncio = retorno.listing_type_id; let preco = retorno.base_price; let categoria = retorno.category_id; let estoque = retorno.available_quantity; let condicao = retorno.condition; let permalink = retorno.permalink; let qtd_fotos = retorno.pictures.length; let imagem; //Cria um "for-else" find: { let pics = new Object(); //Cria um loop para salvar a URL das imagens for (i=0;i<qtd_fotos;i++){ pics[i] = retorno.pictures[i].url; } // else do loop for //Baixa a Descrição do produto $.getJSON('//api.mercadolibre.com/items/'+ temp +'/description', function(retorno){ let desc = retorno.plain_text; let body_obj = { link: permalink, title: titulo, category_id: categoria, stock: estoque, price: preco, listing_type_id: tipo_anuncio, condition: condicao, description: desc, pictures: pics }; let body = JSON.stringify(body_obj); GM_setValue(temp, body); }); } }); } } }); } //Cria um loop para salvar todos os anuncios //Requisita o número total de anuncios Ativos $.getJSON('//api.mercadolibre.com/users/'+my_id+'/items/search?access_token='+access_token+'&status=active', function(retorno){ var total = retorno.paging.total; var lotesConsultas = Math.trunc((total-1)/10); for(i=0;i<=lotesConsultas;i++) { if (i<lotesConsultas) { console.log('Baixando de: ' + i*10 + ' até ' + (((i+1)*10)-1)); baixar(i*10, (((i+1)*10)-1)); } else { console.log('Baixando de ' + i*10 + ' até ' + (total-1)); baixar(i*10, (total-1)); } } }); });
Você vai precisar criar um Aplicativo de integração com o MercadoLivre para poder usar a API: //developers.mercadolivre.com.br/apps/
Você vai precisar do Access Token: //developers.mercadolibre.com/pt-br/produto-autenticacao-autorizacao/#token
Você vai precisar da sua ID do MercadoLivre
Cole seu Access Token e sua ID nas linhas correspondentes (var access_token e var my_id)
Para salvar todos os anúncios acesse a URL: //myaccount.mercadolivre.com.br/summary/?EXPORTAR=TUDO
Não vai surgir nenhum aviso que os anúncios foram salvos, abra as “Ferramentas do Desenvolvedor” do Chrome e fique observando na aba Network que irão aparecer várias linhas uma para cada anuncio salvo, elas tem de ter o status 200 (sucess)
Quando terminar de exportar todos anúncios estão salvos no banco de dados do navegador, para acessar abra o TamperMonkey e o script “ML – Baixar Anúncios”, vá na guia “Armazenamento”
Agora para importar estes anúncios na outra conta sugiro criar um novo perfil no Google Chrome para acessar a outra conta do MercadoLivre, instale o TamperMonkey neste perfil e segue abaixo o script para importar os anúncios para esta nova conta:
// ==UserScript== // @name ML - Subir Anuncios // @author Daniel Plácido ([email protected]) // @website // // @description Script para efetuar backup dos anuncios // @version 1.1 // @downloadURL // // @updateURL // // @require //www.ideias.pw/userscripts/jquery3.3.1.min.js // @connect // @match //myaccount.mercadolivre.com.br/summary/?IMPORTAR=TUDO // @grant GM_getValue // @grant GM_setValue // @grant GM_listValues // @grant GM_log // @run-at document-end // ==/UserScript== $(document).ready(function(){ var access_token = "xxxxxxxxxxxxxxxxxxxx"; //COLOQUE AQUI SEU ACCESS TOKEN (NÃO SE ESQUEÇA QUE ELE VENCE A CADA 6 HORAS) var produtos = GM_listValues(); //Verifica a quantidade de anuncios //Cria um loop para ver todos os anuncios for (var i=0; i < produtos.length; i++) { //Este anuncio let produto = JSON.parse(GM_getValue(produtos[i])); //Pega 12 fotos (como não tenho anuncio com mais de 12 fotos preferi fazer assim que deu menos trabalho) if(produto.pictures[0]){t1 = {source: produto.pictures[0] }}else{t1 = {source: "//www.ml.com"} }; if(produto.pictures[1]){t2 = {source: produto.pictures[1] }}else{t2 = {source: "//www.ml.com"} }; if(produto.pictures[2]){t3 = {source: produto.pictures[2] }}else{t3 = {source: "//www.ml.com"} }; if(produto.pictures[3]){t4 = {source: produto.pictures[3] }}else{t4 = {source: "//www.ml.com"} }; if(produto.pictures[4]){t5 = {source: produto.pictures[4] }}else{t5 = {source: "//www.ml.com"} }; if(produto.pictures[5]){t6 = {source: produto.pictures[5] }}else{t6 = {source: "//www.ml.com"} }; if(produto.pictures[6]){t7 = {source: produto.pictures[6] }}else{t7 = {source: "//www.ml.com"} }; if(produto.pictures[7]){t8 = {source: produto.pictures[7] }}else{t8 = {source: "//www.ml.com"} }; if(produto.pictures[8]){t9 = {source: produto.pictures[8] }}else{t9 = {source: "//www.ml.com"} }; if(produto.pictures[9]){t9 = {source: produto.pictures[9] }}else{t10 = {source: "//www.ml.com"} }; if(produto.pictures[10]){t9 = {source: produto.pictures[10] }}else{t11 = {source: "//www.ml.com"} }; if(produto.pictures[11]){t9 = {source: produto.pictures[11] }}else{t12 = {source: "//www.ml.com"} }; var fotos = [t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11]; //Variável com todos os dados do anuncio para serem enviados var dados_post = {"title": produto.title, "category_id": produto.category_id, "price": produto.price, "currency_id": "BRL", "available_quantity": produto.stock, "buying_mode": "buy_it_now", "listing_type_id": produto.listing_type_id, "condition": produto.condition, "description":{"plain_text": produto.description}, "pictures": fotos }; //faz o Post dos dados $.ajax({ url: "//api.mercadolibre.com/items?access_token="+access_token, type: 'POST', dataType : "json", contentType: "application/json; charset=utf-8", data: JSON.stringify(dados_post), success: function(result){ alert("Publicado com sucesso!"); $('h1').before('<div id="cadastro_ml"><a href="'+result.permalink+'" target="_blank">Ver anuncio</a> <br/><a href="//vender.mercadolivre.com.br/item/update?itemId='+result.id+'" target="_blank">Editar anuncio</a> <br/><a href="//vender.mercadolivre.com.br/spa/item/'+result.id+'/update/category?itemId='+result.id+'&metricsEnabled=1" target="_blank">Editar categoria</a> <br/><a href="//myaccount.mercadolivre.com.br/listings/closeModal?itemId='+result.id+'" id="remover" id_item="'+result.id+'" target="_blank">Remover anuncio</a></div>'); console.log(result); }, error: function(result){ alert("Erro, verifique o console."); console.log(result.responseJSON.error); } }); } });
Neste script vai precisar do Access Token, mesma coisa cole na linha correspondente (não se esqueça ce autorizar sua App criada da outra conta acessando a URL para obter o Access Token).
Abra a aba Armazenamento e cole todo o conteúdo gerado no outro script, estes são os seus anuncios em formato JSON.
Para importar todos os anúncios acesse a URL: //myaccount.mercadolivre.com.br/summary/?IMPORTAR=TUDO
Abra o Console do navegador e observe as mensagens pois vai começar a surgir avisando que o anuncio foi salvo, para cada anuncio uma notificação então podem ser centenas ou milhares de dependendo da quantidade de anúncios.
Se tudo deu certo todos os anúncios foram replicados.
Ps1.: Isto não vai copiar as frescuras das Fichas Técnicas.
Ps2.: Não se esqueça de Desativar os scripts após o uso.