Cenários
Cenários nomeados: provisionam as respostas passivas, disparam o webhook order-notice com um
traceId e aferem o fan-out (chamadas esperadas × recebidas) correlacionado por esse trace.
Rodar é feito pela Api (POST /_sim/scenarios/{id}/run); o resultado é lido do arquivo.
Legenda:
OUT ▲ Simulation → HAASS (ação)
IN ▼ HAASS → Simulation (recebida)
·
OBRIGATÓRIA decide pass/fail
CATÁLOGO verificação (soft-delete)
NÃO ESPERADA fora do previsto
Grupo
Conector (por categoria — multi, AND)
Filtro (AND): Vtex & CrmBonus & Updi
Canal de venda
ERP
Bonus
Integrador
Meio de pagamento
Outros
Vtex = canal-fonte de todo cenário. Integrador = conecta o
HAASS ao meio final (CrmBonus → iFood; SystemHope → Shopify). Clientes sem integrador
integram direto com o provider. Ver
specs/Integration/023.
ALL-ON (2401) — VTEX-ProntoSeparar sem execução
all-on-prontoseparar
· orderId: 00-{{run}}-01
· esperadas: 5
org: StatusFlow cluster1-completude
› StatusFlow BU cluster1-bu (2300)
› StatusFlow Store all-on (2401)
ERPs: 2
· canais da loja: SITE, IFOOD
CrmBonus → iFood (integrador)
Updi
VarejoOnline
Vtex
Detalhes — descrição, previsto × recebido, timeline
Store ALL-ON 2401. ready-for-handling → ProntoSeparar. MEDIDO: updi-getvendas 1× (a CRIAÇÃO do pedido, não o PaymentApproved) e crmbonus-stock-update 1× (a reserva). O destino da rota de estoque é `Ifood`; quem executa é o CrmBonusIntegrator, e por isso o endpoint observado é do CrmBonus. varejo-create-order 0×: separação não ocorre em ProntoSeparar. vtex-stock-update 0×: loopback exclui a origem.
Previsto × recebido
sem execução — só o previsto
OUT ▲ OUTBOUND — ações (Simulation → HAASS)
| Chamada | Previsto | Veio | |
|---|---|---|---|
| · |
AÇÃO
POST
notice ready-for-handling
/api/v1.0/vtex/order-notice |
1 | — |
IN ▼ IN — Obrigatórias (decidem pass/fail)
| Chamada | Previsto | Veio | |
|---|---|---|---|
| · |
OBRIGATÓRIA
Ifood — estoque, executado pelo CrmBonusIntegrator
endpoint=crmbonus-stock-update |
1+ | — |
| · |
OBRIGATÓRIA
VarejoOnline — sem separação em ProntoSeparar
endpoint=varejo-create-order |
0..0 | — |
| · |
OBRIGATÓRIA
Updi — criação do pedido desce ao ERP
endpoint=updi-getvendas |
1+ | — |
| · |
OBRIGATÓRIA
Vtex estoque — suprimido (loopback origem-VTEX)
endpoint=vtex-stock-update |
0..0 | — |
| · |
OBRIGATÓRIA
CrmBonus order-status — 0× (origem-VTEX)
endpoint=crmbonus-order-status |
0..0 | — |
ALL-ON (2401) — VTEX-EmFaturamento sem execução
all-on-emfaturamento
· orderId: 00-{{run}}-01
· esperadas: 5
org: StatusFlow cluster1-completude
› StatusFlow BU cluster1-bu (2300)
› StatusFlow Store all-on (2401)
ERPs: 2
· canais da loja: SITE, IFOOD
CrmBonus → iFood (integrador)
Updi
VarejoOnline
Vtex
Detalhes — descrição, previsto × recebido, timeline
Store ALL-ON 2401. handling → EmFaturamento: passa por ProntoSeparar (reserva estoque no CrmBonus, 1×) e dispara InvoicingStarted (Updi). updi-getvendas 2× = criação + faturamento. varejo-change-status 0×: SeparationFinished vive ADIANTE de EmFaturamento e o webhook não o alcança. crmbonus-order-status 0× (origem-VTEX sem ECCrmBonusSequence).
Previsto × recebido
sem execução — só o previsto
OUT ▲ OUTBOUND — ações (Simulation → HAASS)
| Chamada | Previsto | Veio | |
|---|---|---|---|
| · |
AÇÃO
POST
notice handling
/api/v1.0/vtex/order-notice |
1 | — |
IN ▼ IN — Obrigatórias (decidem pass/fail)
| Chamada | Previsto | Veio | |
|---|---|---|---|
| · |
OBRIGATÓRIA
Updi — criação + início de faturamento
endpoint=updi-getvendas |
1+ | — |
| · |
OBRIGATÓRIA
Ifood — reserva da CRIAÇÃO, executada pelo CrmBonusIntegrator
endpoint=crmbonus-stock-update |
1+ | — |
| · |
OBRIGATÓRIA
VarejoOnline — 0×: SeparationFinished não é alcançável por webhook
endpoint=varejo-change-status |
0..0 | — |
| · |
OBRIGATÓRIA
Vtex estoque — 0× (loopback exclui a origem)
endpoint=vtex-stock-update |
0..0 | — |
| · |
OBRIGATÓRIA
CrmBonus order-status — 0× (origem-VTEX)
endpoint=crmbonus-order-status |
0..0 | — |
ALL-ON (2401) — VTEX-ProntoDespachar (status invoiced) sem execução
all-on-prontodespachar
· orderId: 00-{{run}}-01
· esperadas: 3
org: StatusFlow cluster1-completude
› StatusFlow BU cluster1-bu (2300)
› StatusFlow Store all-on (2401)
ERPs: 2
· canais da loja: SITE, IFOOD
CrmBonus → iFood (integrador)
Updi
Vtex
Detalhes — descrição, previsto × recebido, timeline
Store ALL-ON 2401 com status `invoiced` — o quinto e último status de entrada que a tela oferece, e o único que nenhum cenário cobria. MEDIDO: produz updi-getvendas E crmbonus-stock-update (a reserva da criação), e NÃO vtex-invoice — IntegrateInvoice é comando do operador.
Previsto × recebido
sem execução — só o previsto
OUT ▲ OUTBOUND — ações (Simulation → HAASS)
| Chamada | Previsto | Veio | |
|---|---|---|---|
| · |
AÇÃO
POST
notice invoiced
/api/v1.0/vtex/order-notice |
1 | — |
IN ▼ IN — Obrigatórias (decidem pass/fail)
| Chamada | Previsto | Veio | |
|---|---|---|---|
| · |
OBRIGATÓRIA
Updi — descida ao ERP
endpoint=updi-getvendas |
1+ | — |
| · |
OBRIGATÓRIA
CrmBonus — reserva da criação do pedido
endpoint=crmbonus-stock-update |
1+ | — |
| · |
OBRIGATÓRIA
Vtex nota — 0×: IntegrateInvoice é comando do operador
endpoint=vtex-invoice |
0..0 | — |
ALL-ON (2401) — VTEX-PagamentoPendente sem execução
all-on-pagamentopendente
· orderId: 00-{{run}}-01
· esperadas: 4
org: StatusFlow cluster1-completude
› StatusFlow BU cluster1-bu (2300)
› StatusFlow Store all-on (2401)
ERPs: 2
· canais da loja: SITE, IFOOD
CrmBonus → iFood (integrador)
Updi
VarejoOnline
Vtex
Detalhes — descrição, previsto × recebido, timeline
Store ALL-ON 2401. payment-pending → PagamentoPendente: IntegrateOrderCreated (Updi, updi-getvendas) + ReserveStock (CrmBonus; Vtex dropada por loopback). SEM separação (varejo-create-order 0×). Prova o gating por status do Map.
Previsto × recebido
sem execução — só o previsto
OUT ▲ OUTBOUND — ações (Simulation → HAASS)
| Chamada | Previsto | Veio | |
|---|---|---|---|
| · |
AÇÃO
POST
notice payment-pending
/api/v1.0/vtex/order-notice |
1 | — |
IN ▼ IN — Obrigatórias (decidem pass/fail)
| Chamada | Previsto | Veio | |
|---|---|---|---|
| · |
OBRIGATÓRIA
CrmBonus — reserva de estoque (ReserveStock)
endpoint=crmbonus-stock-update |
1+ | — |
| · |
OBRIGATÓRIA
Updi — descida do pedido ao ERP (IntegrateOrderCreated)
endpoint=updi-getvendas |
1+ | — |
| · |
OBRIGATÓRIA
VarejoOnline — NÃO deve separar (sem SeparationStarted)
endpoint=varejo-create-order |
0..0 | — |
| · |
OBRIGATÓRIA
Vtex estoque — suprimido (loopback origem-VTEX)
endpoint=vtex-stock-update |
0..0 | — |
ALL-ON (2401) — VTEX-Cancelado sem execução
all-on-cancelado
· orderId: 00-{{run}}-01
· esperadas: 4
org: StatusFlow cluster1-completude
› StatusFlow BU cluster1-bu (2300)
› StatusFlow Store all-on (2401)
ERPs: 2
· canais da loja: SITE, IFOOD
CrmBonus → iFood (integrador)
Updi
Vtex
Detalhes — descrição, previsto × recebido, timeline
Store ALL-ON 2401. canceled → Cancelado: IntegrateOrderCancelled (Updi, updi-getvendas) + DropReserveStock. O DROP não exclui a origem (loopback assimétrico) → o estoque vai a CrmBonus E Vtex (vtex-stock-update REAPARECE, diferente do forward). crmbonus-order-status = 0× (origem-VTEX sem ECCrmBonusSequence).
Previsto × recebido
sem execução — só o previsto
OUT ▲ OUTBOUND — ações (Simulation → HAASS)
| Chamada | Previsto | Veio | |
|---|---|---|---|
| · |
AÇÃO
POST
notice canceled
/api/v1.0/vtex/order-notice |
1 | — |
IN ▼ IN — Obrigatórias (decidem pass/fail)
| Chamada | Previsto | Veio | |
|---|---|---|---|
| · |
OBRIGATÓRIA
Updi — order (IntegrateOrderCancelled)
endpoint=updi-getvendas |
1+ | — |
| · |
OBRIGATÓRIA
CrmBonus — drop de estoque (DropReserveStock)
endpoint=crmbonus-stock-update |
1+ | — |
| · |
OBRIGATÓRIA
Vtex — drop de estoque (SEM loopback no drop)
endpoint=vtex-stock-update |
1+ | — |
| · |
OBRIGATÓRIA
CrmBonus order-status — 0× (origem-VTEX)
endpoint=crmbonus-order-status |
0..0 | — |
JSON