Package Exports
- medusa-plugin-bling
 - medusa-plugin-bling/dist/index.js
 
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (medusa-plugin-bling) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Medusa Plugin Bling v2.0
Plugin oficial para integração entre Medusa v2+ e Bling ERP - Solução completa para e-commerce brasileiro com interface admin e configurações granulares.
🚀 Recursos v2.0
- ✅ Interface Admin Completa - Configure tudo pelo painel administrativo
 - ✅ Configurações Granulares - Controle total sobre o que sincronizar
 - ✅ OAuth 2.0 Automático - Autenticação segura via interface
 - ✅ Sincronização Automática - Pedidos, produtos e estoque
 - ✅ Webhooks em Tempo Real - Atualizações instantâneas
 - ✅ Workflows Avançados - Processamento assíncrono
 - ✅ Jobs Agendados - Sincronização periódica automática
 - ✅ Toggles de Controle - Ative/desative recursos específicos
 - ✅ Logs Detalhados - Monitoramento completo das operações
 
📦 Instalação
npm install medusa-plugin-bling
# ou
yarn add medusa-plugin-bling⚙️ Configuração
1. Adicionar ao Medusa
No seu medusa-config.js:
import { defineConfig } from '@medusajs/framework/utils'
export default defineConfig({
  plugins: [
    {
      resolve: "medusa-plugin-bling",
      options: {
        enableUI: true, // Habilita interface admin
        // Todas as outras configurações são feitas via interface
      }
    }
  ]
})2. Criar Aplicação no Bling
- Acesse: https://developer.bling.com.br
 - Crie uma aplicação com os seguintes escopos:
- ✅ Produtos (Leitura/Escrita)
 - ✅ Pedidos de Venda (Leitura/Escrita)
 - ✅ Estoques (Leitura/Escrita)
 - ✅ Contatos (Leitura/Escrita)
 - ✅ Logística (Leitura/Escrita)
 
 - Configure URL de redirecionamento:
https://seu-dominio.com/admin/bling/oauth/callback 
3. Configurar via Interface Admin
- Acesse o Admin: 
https://seu-dominio.com/app - Navegue para: Configurações → Bling
 - Configure:
- Client ID e Client Secret
 - Ambiente (Produção/Sandbox)
 - Clique em "Autorizar OAuth"
 - Configure as sincronizações desejadas
 
 
🎛️ Configurações Disponíveis
Sincronização de Produtos
- ✅ Habilitar sincronização - Liga/desliga a sincronização
 - ✅ Importar imagens - Controla se traz imagens do Bling
 - ✅ Importar descrições - Controla descrições
 - ✅ Importar preços - Controla preços
 - ✅ Importar categorias - Controla categorias
 - ✅ Sincronização automática - Sync contínua
 
Sincronização de Pedidos
- ✅ Habilitar sincronização - Liga/desliga envio de pedidos
 - ✅ Envio automático - Envia pedidos automaticamente
 - ✅ Gerar NFe - Geração automática de NFe
 - ✅ Atualizar status - Sincroniza status dos pedidos
 
Sincronização de Estoque
- ✅ Habilitar sincronização - Liga/desliga sync de estoque
 - ✅ Bidirecional - Sync nos dois sentidos
 - ✅ Intervalo - Frequência da sincronização (minutos)
 
🔧 Fluxo de Uso
1. Configuração Inicial
// Nenhuma configuração manual necessária
// Tudo é feito via interface admin2. Primeira Sincronização
- Configure credenciais no admin
 - Autorize OAuth
 - Configure toggles de sincronização
 - Clique em "Sincronizar Produtos Agora"
 
3. Operação Automática
- Pedidos são enviados automaticamente ao Bling
 - Estoque é sincronizado periodicamente
 - Webhooks atualizam dados em tempo real
 - Logs mostram todas as operações
 
🔄 Fluxos Automatizados
Quando um Pedido é Feito
- Pedido é capturado pelo subscriber
 - Workflow mapeia dados Medusa → Bling
 - Pedido é enviado ao Bling
 - NFe é gerada (se habilitada)
 - Metadata é atualizada no Medusa
 
Sincronização de Estoque
- Job roda a cada intervalo configurado
 - Busca produtos vinculados ao Bling
 - Compara quantidades
 - Atualiza divergências
 - Registra logs das operações
 
Webhooks do Bling
- Bling envia webhook para 
/bling/webhooks - Payload é validado
 - Evento é processado conforme tipo
 - Dados são atualizados no Medusa
 
🗃️ Estrutura de Dados
Produtos Sincronizados
// Metadata no produto Medusa
{
  bling_id: "12345",
  bling_codigo: "PROD001",
  bling_synced_at: "2024-01-15T10:00:00.000Z"
}Pedidos Sincronizados
// Metadata no pedido Medusa
{
  bling_id: "67890",
  bling_numero: "1001",
  bling_synced_at: "2024-01-15T10:00:00.000Z",
  bling_nfe_generated: true
}🛠️ Estrutura do Plugin
src/
├── admin/              # Interface administrativa
│   ├── routes/         # Páginas do admin
│   ├── components/     # Componentes reutilizáveis
│   ├── hooks/          # React hooks
│   └── utils/          # Utilitários do admin
├── api/                # Endpoints da API
│   ├── admin/          # APIs do admin
│   └── bling/          # Webhooks do Bling
├── modules/            # Módulo principal
│   └── bling/          # Service e tipos
├── workflows/          # Workflows de sincronização
├── subscribers/        # Event handlers
├── jobs/               # Jobs agendados
└── index.ts           # Configuração do plugin🔒 Segurança
- OAuth 2.0 com refresh automático
 - Validação de webhooks com assinatura
 - Configurações no banco (não em variáveis)
 - Logs auditáveis de todas as operações
 - Rate limiting respeitado
 
📊 Monitoramento
Logs de Sincronização
Acesse via banco de dados:
SELECT * FROM bling_sync_log
ORDER BY created_at DESC;Status da Conexão
Verificado automaticamente na interface admin.
Webhooks Recebidos
SELECT * FROM bling_webhook_log
ORDER BY received_at DESC;🐛 Troubleshooting
Plugin não aparece no Admin
- Verifique se 
enableUI: trueestá configurado - Reinicie o servidor Medusa
 - Limpe cache do navegador
 
OAuth não funciona
- Verifique URL de callback no Bling
 - Confirme Client ID e Secret
 - Verifique logs do navegador
 
Sincronização não funciona
- Verifique toggles de configuração
 - Consulte logs de sincronização
 - Teste conexão no admin
 
📈 Performance
- Jobs em background para operações pesadas
 - Rate limiting automático
 - Retry logic em falhas temporárias
 - Processamento assíncrono via workflows
 
🆕 Migração da v1.0
Se você já usa a v1.0:
- Remova configurações do 
medusa-config.js - Atualize para v2.0: 
npm install medusa-plugin-bling@2.0.0 - Configure via interface admin
 - Reauthorize OAuth
 - Configure novos toggles
 
📞 Suporte
- Issues: GitHub Issues
 - Documentação Bling: API Docs
 - Documentação Medusa: Medusa v2 Docs
 
📄 Licença
MIT License - veja LICENSE para detalhes.
🤝 Contribuindo
Contribuições são bem-vindas! Por favor, veja CONTRIBUTING.md para diretrizes.
Plugin v2.0 - Integração completa e configurável para e-commerce brasileiro 🇧🇷