Conectando
1. Autorizar OAuth 2.0
- Acesse Integrações > Mercado Livre
- Clique em Conectar Mercado Livre
- Você será redirecionado para o ML (
https://auth.mercadolivre.com.br/authorization) — faça login e autorize - O ML retorna para o BulkRoute no endpoint
/integrations/mercadolivre/callbackcom o código - O BulkRoute troca o código por
access_tokenerefresh_tokene armazena na integração
O
refresh_token é usado automaticamente quando o access_token expira. Você não precisa reconectar manualmente enquanto o refresh token for válido.2. Mapear carriers
O Mercado Livre identifica a opção de envio porshipping.option_id. Mapeie em Integrações > Mercado Livre > Mapeamentos:
Se não houver mapeamento, o BulkRoute faz fallback por nome: se
shipping_option.name contiver “CORREIOS”, “JADLOG” ou “BRASPRESS”, usa o carrier correspondente; caso contrário, usa MERCADOLIVRE.
3. Disparar sincronização
A sincronização é manual — não há cron automático. Para importar vendas:- Em Integrações > Mercado Livre, clique em Sincronizar Agora
- Escolha o tipo de sync:
- orders — importa vendas pagas do ML
- tracking — envia tracking codes de volta ao ML
- full — executa ambos
- O job entra na fila BullMQ e processa em background (concurrency 2)
- Acompanhe o progresso em Sync History
O que é importado
Cubagem
O Mercado Livre não envia dimensões por item. O BulkRoute resolve cubagem de duas formas:- Mapeamento manual de categoria — em Integrações > Mercado Livre > Mapeamentos, crie um mapeamento do tipo
categorycomexternal_id=category_iddo ML ebulkroute_value= objeto JSON comweight,height,width,length - Variação do item — se não houver mapeamento, o BulkRoute usa
variation.weight/height/width/lengthdo item ML (quando disponível)
A documentação anterior mencionava uma “tabela de cubagem padrão por categoria” automática. Isso não existe no código — a cubagem depende de mapeamento manual ou dos dados de variação do item.
Sincronização de tracking
O BulkRoute envia o tracking code para o ML viaPOST https://api.mercadolibre.com/shipments/{shipmentId}/tracking com corpo:
tracking busca shipments com tracking_code e metadata.mlShipmentId (limite 200 por execução).
Mercado Envios vs frete próprio
O BulkRoute detecta se o pedido é Mercado Envios (frete gerenciado pelo ML) verificandoshipping.id. Quando detectado, armazena metadata.mlIsMercadoEnvios: true.
Endpoints da API BulkRoute
Rate limit e retry
- A API do ML tem rate limit. Em
429, o BulkRoute respeitaRetry-After(default 2s) e tenta novamente (até 3 vezes) - Fila BullMQ: 3 tentativas, backoff exponencial de 10s
- Concorrência do worker: 2