I have used similar patterns in the past to calculate things like shipping, you could use a very similar approach to calculate discounts etc… The project is definitely intuitive, I have started to build a commerce site with it, got payment with 3DSecure sorted (via ProTX), now need to sort shipping out. I will try and get my forked version of Spree updated with anything I do although I am using Haml instead of Erb.