Resolve which checkout policy a sale follows
What It Does
Checkout chooses one policy for its selling context, prevents conflicting item choices and retains the processing settings on the placed order.
The Flow
When Something Fails
Reject an item whose policy conflicts with the checkout’s selected policy. The conflicting item is not retained. Reject an unknown explicit policy; return an empty resolution when no policy exists. Resolution changes no records. Refuse new checkout processing under an inactive policy. No checkout is created under that policy. Fail placement and roll back its transaction. Order and policy snapshot commit together or neither remains.
Open Design Questions
The implemented recovery and concurrency behaviour above defines the current boundary. Any change to transaction scope or product authority requires a recorded decision.