Glossário do projeto¶
Status: Aprovado · Responsável: Gustavo Madruga · Atualizado em: 2026-07-06
Vocabulário próprio desta integração. Termos gerais da plataforma estão no glossário da plataforma X-Adm.
- X-Adm
- ERP fornecido pela X-Adm ao cliente Thoms, onde ocorrem o cadastro e a precificação dos produtos. É a origem dos dados desta integração.
- Parceiro (WebStorm)
- WebStorm (https://www.webstorm.com.br) — empresa que desenvolve e opera o
e-commerce da Thoms e expõe a API REST (
POST /sync/erp) que recebe os dados dos produtos. É o destino dos dados; dá nome ao app deste repo (webstorm-ecom.thoms.xadm.biz) e ao prefixo das tabelas (webstorm_ecom_*). - Integrador (hub)
- Nuvem em
int.thoms.xadm.bizque recebe os dados de produto/estoque que o X-Adm posta (modelo ERP), grava o log de requests de entrada e consolida a réplica. É do projeto integrador (repoxadm/integrador-server, doc em https://docs.xadm.biz/aplicacoes/integrador-server/): app Java/Micronaut multi-tenant (um deploy Coolify por cliente;int.thoms.xadm.bizé o da Thoms). Aqui é referenciado. - Réplica (do X-Adm)
- Banco, mantido pelo integrador, com o estado consolidado de produto/estoque que o X-Adm envia. É réplica parcial (só o que a integração usa), não uma cópia do ERP inteiro.
- Tradutor
- App Micronaut dedicado enxuto em
webstorm-ecom.thoms.xadm.bizque lê a réplica direto nodb_thoms, mapeia para o contrato do parceiro, faz oPOSTe grava awebstorm_ecom_request. Acionado por webhook + sweep (ver termos). É o mini-projeto deste repo e a casa de futuras consultas de preço/produto (decisão 0003). - Requests de entrada
- Store, no integrador, com o log de cada request que o X-Adm posta (auditoria da ponta de entrada).
webstorm_ecom_request- Tabela do tradutor que grava cada
POSTde saída ao parceiro e a resposta recebida, mais o controle de idempotência (versão/estado já enviado) — auditoria da ponta de saída. Prefixowebstorm_ecom_*= tabela do tradutor no banco compartilhado (verdb_thoms). db_thoms- O único banco Postgres compartilhado pelo integrador e pelo tradutor. Fronteira:
cada app tem Flyway próprio (history dedicada) para as migrations não colidirem;
as tabelas do tradutor são prefixadas
webstorm_ecom_*; a réplica é do integrador (o tradutor a lê, nunca a migra). - Webhook (A) / sweep (D)
- Como o integrador aciona o tradutor. Webhook (A): o integrador faz um
POSTnuma URL do tradutor ("produto X mudou") ao consolidar — baixa latência, Bearer +@Retryable. Sweep (D): um@Scheduledno tradutor varre a réplica por versão > última enviada — rede de segurança (padrão Outbox/Polling Publisher: o próprio banco é a fila). Os dois chamam o mesmo código; a idempotência evita duplicidade. Substituem o PowerSync do desenho anterior (decisão 0003). - Carga inicial
- Exportação de todos os produtos do X-Adm em
ProdutosSite.csv, enviada por e-mail ao parceiro para importação em massa. Semeia a base do e-commerce uma vez; independe do fluxo contínuo. - Preço à vista
- Preço do produto para pagamento à vista (com desconto). Mapeia para
preco_descontono contrato do parceiro (decisão 0001). - Preço a prazo
- Preço do produto para pagamento a prazo (preço cheio). Mapeia para
preco_cheiono contrato do parceiro (decisão 0001). - EAN
- Código de barras global do produto (GTIN/EAN-13). Chave natural usada pelo parceiro para localizar o produto na base dele (decisão 0002).
- Código X-Adm
- Identificador interno do produto no X-Adm (
CODIGOno CSV;codigo_erpno contrato do parceiro). - ProdutosSite.csv
- Arquivo CSV que o X-Adm gera com os produtos (11 colunas:
CODIGO;NOME;ATRIBUTO;VALOR;ESTOQUE;STATUS;PESO;PROMOCAO;INI PROMOCAO;FIM PROMOCAO;EAN13). Origem da carga inicial e referência das colunas do de-para (ver modelo de dados). - STATUS (X-Adm)
- Coluna do
ProdutosSite.csv:1= produto ativo com saldo em estoque;0= inativo, zerado ou que ficará negativo por pedido pendente.