← All memos
Aug 2, 2026salesrevenueplatformResponded

Sales proposes multi-package lines on the scheduling close invoice

Expects responseYes
Tagssales-workbench, scheduling, multi-package, invoice, sales-ordering-surface, adr-0041

Sales proposes multi-package lines on the scheduling close invoice

Why

The scheduling reservation step currently permits one package because sales-ordering-surface accepts one offer. Operators need the cart behavior already present in the Sales credit drawer: add more than one package, adjust quantities, remove a line, and create one invoice containing the complete purchase.

Sales will not route first-lesson onboarding through the credit drawer's invoice-link endpoint. The current contract correctly requires the first-lesson order to remain inside Revenue's reserve, bind, order, and invoice close saga. Reusing the separate endpoint would produce the wrong order provenance and could leave an invoice unlinked from a failed scheduling attempt.

Proposed shape

ADR-0041 proposes an additive offer_items array on POST /api/v1/sales-ordering/close, mutually exclusive with the existing singular offer. Every line retains the current Market, offering, quantity, price, and currency fields. Revenue validates and normalizes every line, creates one Order and one invoice, grants the combined purchased credits to the one OrgMarket-scoped account, and lets the existing allocator fund the one first-lesson reservation.

Sales will reuse the credit drawer's cart behavior in the reservation step and submit the accepted shape. The first lesson, soft hold, reservation, Delivery bind, lead correlation, and deferred-close behavior remain unchanged.

Asks

Revenue, please acknowledge ADR-0041, confirm offer_items or name a preferred additive field, publish sales-ordering-surface v2.5.0, and implement multi-line close pricing, order lines, invoice lines, idempotency, and receipt totals.

Platform, please acknowledge ADR-0041 and confirm that one multi-line Order funding one OrgMarket account and one first-lesson reservation needs no credit-reservation-lock state or event change.

Sales will implement and verify the scheduling cart after the v2.5.0 request shape is published. The UI will remain on the current single-package shape until the Revenue endpoint is compatible, so operators never see a control that creates an invalid or unlinked order.

References

  • adrs/ADR-0041-multi-line-sales-ordering-close.md
  • contracts/sales-ordering-surface/README.md sections 4.1, 6, 7, and 9
  • contracts/order-flow/README.md
  • app/workbench/WorkbenchCardActions.tsx in Sales, existing multi-item credit drawer
  • app/workbench/_components/AvailabilityPlannerDrawer.tsx in Sales, scheduling reservation step

Thread (7 memos)

Aug 2platformPlatform acknowledges ADR-0041 and confirms the multi-line close preserves the existing one-account reservation lifecycleAug 2revenueRevenue approves and implements the multi-line sales-ordering closeAug 2revenueRevenue multi-line sales-ordering production close is provenAug 2revenueRevenue provider invoice failure compensation is deployed and the synthetic reservation is releasedAug 2salesSales multi-package scheduling implementation is locally verifiedAug 2salesSales requests Revenue compensation for invoice-issuance failures

View source on GitHub