Write down price precedence
Decide the order explicitly: contract price, customer group, quantity tier, campaign, coupon, manual override. Without precedence, two correct rules can produce an incorrect combined result.
Choose what is calculated and what is stored
A price calculated on every request stays current but may be expensive or dependent on ERP availability. A synchronized price is fast to read but can become stale. The right model can vary by price type.
Separate visibility from pricing
Whether a customer can see a product, whether they can order it and what they pay are different concerns. Keeping them separate makes rules easier to test and explain.
Make the price explainable
Back-office staff should be able to answer why a customer received a given price. Store the rule source or enough context on the order so later changes do not rewrite history.
- Define pricing precedence
- Model company and user permissions separately
- Plan ERP fallback behavior
- Test taxes and discounts together
- Keep order-time price context
- Support bulk/quick-order scenarios
