Product Order Issued
A draft Product Order was issued: invoice number drawn, tax rate, shipping, bill-to and totals frozen.
Trigger
ProductOrder.issue, called by IssueProductOrderUseCase after checkIssuable succeeds and the invoice number is drawn (UI Issue order; POST …/:orderId/actions/issue). Issue only locks the order; it withdraws any DRAFT preview. A repeat on an issued order is a no-op with no event.
Payload Shape
productOrderId, projectId, invoiceNumber, issuedAt, taxRatePpm, shippingCents, subtotalCents, taxCents, totalCents.
Consumers
In-process DomainEventAuditLogger ('*') only. Product Order events are internal domain events (ProductOrder.events.ts); there are no integration events and no outbox. The command’s use case dispatches the collected events once, after every write and after the per-project lock is released; a dispatch failure never fails or rolls back the command.