Ir para conteúdo
  • Cadastre-se

dev botao

publicação de produtos no mercado livre


  • Este tópico foi criado há 1422 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • 2 meses depois ...
2 horas atrás, Junior Berto disse:

Fernando, boa tarde.

Preciso fazer esta integração via ERP do meu cliente. Você tem algum exemplo para me ajudar ?
Obrigado

 

segue o codigo que uso para fazer a publicação

se nao entender o codigo me avise

 

                         case dm_Estoque.Conf_Mercado_LivreANUNCIO.AsInteger of
                           1 : var_Tipo_Anuncio := 'gold_pro';
                           2 : var_Tipo_Anuncio := 'gold_premium';
                           3 : var_Tipo_Anuncio := 'gold_special';
                           4 : var_Tipo_Anuncio := 'gold';
                           5 : var_Tipo_Anuncio := 'silver';
                           6 : var_Tipo_Anuncio := 'bronze';
                           7 : var_Tipo_Anuncio := 'free';
                         end;

                         case dm_Estoque.Conf_Mercado_LivreFRETE.AsInteger of
                           1 : var_tipo_frete   := ',"non_mercado_pago_payment_methods": [],"shipping": {"mode": "me2","methods":[],"tags":[]}';
                           2 : var_tipo_frete   := 'gold_premium';
                           3 : var_tipo_frete   := 'gold_special';
                           4 : var_tipo_frete   := 'gold';
                         end;

                         F_Funcoes.Checa_Estoque(StrToInt(Cod_loja.Text),PesquisaCodigo.value);

                         for x := 1 to 3 do
                           begin
                              case  x of
                                 1 : If PesquisaFOTO.AsString   <> '' then var_foto   := '  "pictures":[ {"source":"' + dm_Estoque.Conf_Mercado_LivreFTP.AsString + ExtractFileName ( PesquisaFOTO.AsString  ) + '"}';
                                 2 : If PesquisaFOTO2.AsString  <> '' then var_Foto1  := ', {"source":"' + dm_Estoque.Conf_Mercado_LivreFTP.AsString + ExtractFileName ( PesquisaFOTO2.AsString ) + '"}';
                                 3 : if PesquisaFOTO3.AsString  <> '' then var_Foto2  := ', {"source":"' + dm_Estoque.Conf_Mercado_LivreFTP.AsString + ExtractFileName ( PesquisaFOTO3.AsString ) + '"}';
                              end;
                           end;

                         if PesquisaCOD_BARRA.AsString  <> '' then
                           var_ean := ',{"id":"EAN","value_name":"' + PesquisaCOD_BARRA.AsString + '"}';

                         if PesquisaCODIGO_CATALAGO.AsString <> '' then
                           var_Catalago := ',{"id": "PART_NUMBER","value_name":" ' + PesquisaCODIGO_CATALAGO.AsString + '"}';

                         if PesquisaQTDE_EMBALAGEM.AsInteger <> 0 then
                            var_Unidade_Pacote := ',{"id": "UNITS_PER_PACKAGE","value_name":" ' + PesquisaQTDE_EMBALAGEM.AsString + '"}'
                         else
                            var_Unidade_Pacote := ',{"id": "UNITS_PER_PACKAGE","value_name":" ' + '1' + '"}';

                         if Load_imagem(dm_Estoque.Conf_Mercado_LivreFTP.AsString + ExtractFileName ( PesquisaFOTO.AsString ) ) = 0 then
                              var_foto := '';

                         if Load_imagem(dm_Estoque.Conf_Mercado_LivreFTP.AsString + ExtractFileName ( PesquisaFOTO2.AsString ) ) = 0 then
                              var_foto1 := '';

                         if Load_imagem(dm_Estoque.Conf_Mercado_LivreFTP.AsString + ExtractFileName ( PesquisaFOTO3.AsString ) ) = 0 then
                              var_foto2 := '';

                         if dm_estoque.Conf_Mercado_LivreMENSAGEM.AsString <> '' then
                              var_Obs_Anuncio := '\n\n\n\' + MENSAGEM.Text;

                         // tipo de publicação 1 - publica todos os produtos, principal e produtos do e-commerse
                         // tipo de publicação 2 - publica somente os produtos do e-commerse

                         if dm_Estoque.Conf_Mercado_LivreTIPO_PUBLICACAO.AsInteger = 1 then
                           begin

                                 Json  := '{"title":"' + UTF8ToWideString ( PesquisaDESCRICAO.Value ) + '",'+
                                          '"category_id":"MLB63581"' + ',' +   // Codigo da Categoria
                                          '"price":' + TrocaVirgPPto ( FloatToStr( var_Preco_Venda ) ) + ',' + // Preço de Venda
                                          '"official_store_id":null, ' +
                                          '"currency_id":"BRL",' +   // vendas no Brasil
                                          '"available_quantity":' + TrocaVirgPPto ( FloatToStr( F_Funcoes.CALCULA_ESTOQUE.FieldByName('SALDO').AsFloat ) ) + ','+ // estoque
                                          '"buying_mode":"buy_it_now", '+
                                          '"listing_type_id":"' + var_Tipo_Anuncio + '"' + ',' + // tipo de anuncio
                                          '"condition":"new",' + // produto novo
                                          '"accepts_mercadopago": "true",'+ // aceita percado pago ?
                                          '"description":{"plain_text":"' + AnsiReplaceStr(  ARGUMENTO_VENDA.Text,'"','') + var_Obs_Anuncio + '\n"},' + // argumento de venda
                                          var_foto + var_foto1 + var_Foto2 +']' + ',' + // fotos
                                          '"attributes":[{"id":"model","value_name":"' + PesquisaNOME_GRUPO.AsString + '"},' +  // modelo
                                                        '{"id":"brand","value_name":"' + PesquisaNOME_MARCA.AsString + '"}'  +  // marca
                                          var_Catalago + // Numero da Peça no ML
                                          var_Unidade_Pacote + // quantidade na embalagem
                                          var_ean + ']' +  // codigo de barras
                                          var_tipo_frete // tipo de frete
                                          +'}';

                                Json          := ReplaceAll(json,''#$D#$A#$D#$A'','\n\n');
                                Json          := ReplaceAll(json,'#$D#$A','\n\n');

                                JsonToSend    := TStringStream.Create( UTF8Encode(Json) );

                                Resposta_ML   := '';

                                // CONEXÃO COM O ML PARA ATUALIZAÇÃO DE ESTOQUE
                                while Resposta_ML = '' do
                                  begin
                                        try
                                                  try

                                                      Resposta_ML := 'https://api.mercadolibre.com/items?access_token='+ var_Access_token;

                                                      Resposta_ML := IdHTTP1.Post(Resposta_ML, JsonToSend);

                                                      // checa se ja foi feito conexão,
                                                      joPrincipal      := TlkJSON.ParseText(TEncoding.ASCII.GetString(TEncoding.ASCII.GetBytes(Resposta_ML))) as TlkJSONobject;

                                                      if Pos('MLB',VarToStr(joPrincipal.Field['id'].Value)) <> 0  then
                                                         begin
                                                               F_Funcoes.Qry := TpFIBQuery.Create(nil);

                                                               with F_Funcoes.Qry do
                                                                  begin
                                                                    Close;
                                                                    SQL.Clear;
                                                                    Database    := dm_Geral.DB;
                                                                    Transaction := dm_Geral.Tr_Db;
                                                                    SQL.Add('Update Produto set produto.CODIGO_ML = :CODIGO_ML');
                                                                    SQL.Add('where produto.codigo = :CODIGO');
                                                                    ParamByName('CODIGO').AsInteger   := PesquisaCODIGO.AsInteger;
                                                                    ParamByName('CODIGO_ML').AsString := VarToStr(joPrincipal.Field['id'].Value);
                                                                    ExecQuery;

                                                                    dm_Geral.Tr_Db.CommitRetaining;
                                                                  end;

                                                               FreeAndNil(F_Funcoes.Qry); // tira o objeto da memória

                                                               With Pesquisa do
                                                                 begin
                                                                   Edit;
                                                                   PesquisaSELECIONADO.AsString := '1';
                                                                   Post;
                                                                 end;

                                                               Break;
                                                         end;

                                                  except
                                                         on E: EIdHTTPProtocolException do
                                                            begin
                                                              ShowMessage(E.ErrorMessage);
                                                            end;

                                                        on E: Exception do
                                                          begin
                                                            Resposta_ML := E.Message;

                                                            if Resposta_ML = 'HTTP/1.1 200 OK' then
                                                              begin
                                                               break;
                                                              end
                                                            else
                                                               Resposta_ML := '';

                                                          end;
                                                  end

                                        finally

                                        end;

                                  end;
                           end;

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 1422 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.