Keep the lesson for the next incident
Document eligibility
Write the promotion inputs, date semantics, product scope, minimums, and stacking rule in the same terms used by checkout. Include an example that should apply and one that should not. Note any rule source or synchronization delay that remains unknown.
Keep message fixtures
Store redacted fixtures for invalid, expired, and ineligible states, plus the recalculated total after removal. Assert the copy and amount together so future changes cannot make a clear message point to a stale price.
Define review triggers
Reopen review when an eligible code is rejected, a discount appears twice, or the saved order differs from the summary. Record the sampling boundary and owner. Avoid treating a quiet campaign window as proof that all offers remain correct.
What to carry forward
Close learning work with an explicit eligibility contract, message-and-total fixtures, and recurrence triggers. The record should tell the next engineer how to distinguish a legitimate rejection from a validation defect without exposing live promotion secrets.
Keep the decision with the work.
Use a Work Item in Aglet to record the problem, the evidence you have, and the next decision. Add an owner and priority, then keep updates in the discussion so the next person can follow the reasoning.
Create an account See the product workflow