Omie Integration Worker
Um worker Node.js ETL que extrai dados de pedidos de vendas Omie e sincroniza conjuntos de dados normalizados de vendedores e produtos/serviços no Google Sheets.
Visão geral
Este worker foi projetado para pipelines de relatórios leves, onde os dados comerciais Omie precisam ser centralizados em fluxos de trabalho de planilhas.
A integração se concentra em dois alvos analíticos:
Vendedorplanilha (linhas de vendas no nível do vendedor)Produtos e Servicosplanilha (linhas no nível do item de linha)
Arquitetura
graph TB
A[Google Auth Worker] -->|repository_dispatch| B[Omie Integration Worker]
B --> C[Omie API]
B --> D[Google Sheets API]
C --> E[Pedidos]
E --> F[Vendedor Dataset]
E --> G[Produtos e Servicos Dataset]
F --> D
G --> D
Componentes de implementação
index.js
- Recebe token OAuth para Google Sheets
- Define a janela de data (
DATA_INICIO/DATA_FIMou dia atual) - Chama o serviço de listagem Omie
- Divide o payload em conjuntos de dados de vendedor e de item
- Acrescenta linhas às planilhas de destino
omieService.js
- Envolve solicitações Omie API usando axios
- Injeta
APP_KEYeAPP_SECRETdo meio ambiente - Implementa paginação recursiva (
ListarPedidos) - Adiciona higienização anti-fórmula antes da gravação da saída
Recursos principais
- Suporte à paginação recursiva para extração completa do período
- Transformação estruturada para análise de vendedores e produtos
- Gravações seguras apenas com acréscimos nas guias existentes do Google Sheets
- Mitigação de injeção de fórmula com higienização de strings
- Registro mínimo seguro com semântica de status de execução
Configuração
Variáveis de ambiente necessárias
APP_KEY=your_omie_app_key
APP_SECRET=your_omie_app_secret
GOOGLE_TOKEN=oauth_access_token
SPREADSHEET_ID=target_spreadsheet_id
DATA_INICIO=optional_dd/mm/yyyy
DATA_FIM=optional_dd/mm/yyyy
Acionador de fluxo de trabalho
O fluxo de trabalho do repositório é configurado para execuções baseadas em despacho e despacho manual:
on:
repository_dispatch:
types:
- report_token_ready
workflow_dispatch:
Modelo de saída
Vendedor
- data
- nome do vendedor
- total do pedido
- número do pedido
Produtos e Serviços
- data
- descrição do item
- quantidade
- preço unitário
- nome do vendedor
Notas de segurança
- As credenciais API nunca são codificadas
- Segredos injetados no ambiente são necessários em tempo de execução
- A sanitização evita injeção de payload de fórmula de planilha
Licença
Este projeto está licenciado sob a licença MIT. Veja o notas de licença no repositório.
Autor
Patrick Araujo - Engenheiro de Computação
GitHub: https://github.com/PkLavc
Portfólio: https://pklavc.com/projects/
Omie Integration Worker - Pipeline prático ETL para ERP inteligência de vendas e operações baseadas em planilhas.