Codes at checkout kill redemption.
Customers earn 'points' in one system, redeem with a discount code in another. Half forget. Half mistype. The reward they earned doesn't apply, and your most engaged customer just had their worst checkout experience.