Create or edit a promotion and its parts
What It Does
Campaign preparation validates benefit shape and selling-area criteria, commits configuration with history and enforces lifecycle and first-use protection.
The Flow
When Something Fails
Reject invalid offer mixtures, eligibility placement or prohibited kind changes. No campaign edit is saved. Reject unknown keys, invalid types or missing product and category references with part-specific feedback. No invalid part configuration commits. Roll back prohibited edits with field-specific guidance. The earlier campaign and part set remain intact. Reject unsupported moves or missing activation prerequisites. The failed action retains the prior campaign state.
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.