Eventos de domínio

O Core avisa depois do commit. O handler não aborta a operação que já gravou.

Assine com SdkEvent / ctx.events.on. Nomes com ponto são o contrato da SDK. Aliases SCREAMING_SNAKE são o tipo interno do event store.

Vendas

SDKAlias internoQuando
sales.order.createdSALES_ORDER_CREATEDcreate do pedido
sales.order.updatedSALES_ORDER_UPDATEDedição
sales.order.cancelledSALES_ORDER_CANCELLEDcancelamento
sales.order.approvedSALES_ORDER_APPROVEDaprovação
sales.order.fulfilledSALES_ORDER_FULFILLEDdepois do fulfill
sales.quote.convertedSALES_ES_QUOTE_CONVERTEDorçamento → pedido
sales.order.convertedToQuoteSALES_ES_ORDER_TO_QUOTEpedido → orçamento
sales.pdv.completedPDV_SALE_COMPLETEDfechamento PDV

Fiscal

SDKAlias interno
fiscal.calculation.completedFISCAL_CALCULATION_COMPLETED
fiscal.lancamento.createdFISCAL_LANCAMENTO_CREATED
fiscal.lancamento.status_changedFISCAL_LANCAMENTO_STATUS_CHANGED
fiscal.apuracao.closedFISCAL_APURACAO_CLOSED
fiscal.apuracao.reopenedFISCAL_APURACAO_REOPENED
fiscal.nfe.authorizedFISCAL_NFE_AUTHORIZED
fiscal.nfe.rejectedFISCAL_NFE_REJECTED
fiscal.nfe.cancelledFISCAL_NFE_CANCELLED
fiscal.nfe.inutilizedFISCAL_NFE_INUTILIZED
fiscal.nfse.authorizedNFSE_AUTHORIZED
fiscal.nfse.rejectedNFSE_REJECTED
fiscal.nfse.cancelledNFSE_CANCELLED

Outros eventos do Core (não estão no SdkEvent)

Compras emite PURCHASE_ORDER_CREATED / PURCHASE_ORDER_APPROVED. Financeiro enfileira FINANCIAL_EVENTS.PAYMENT_REGISTERED na TX da baixa. Industrial emite PRODUCT_BOM_CHANGED ao ativar/inativar BOM. Não declare esses nomes no m3r.json events[] — o validate só aceita o catálogo SDK.

Para reagir a compra/estoque/financeiro na extensão hoje: API + job, ou esperar o código entrar em SdkEvent.

Exemplo

import { SdkEvent } from "@m3r/sdk";

ctx.subscriptions.add(
  ctx.events.on(SdkEvent.SalesOrderFulfilled, async (evt) => {
    ctx.logger.info("pedido faturado", { code: evt.payload?.code });
  })
);

Detalhe de payload e ctx.events: ctx.events.