I took a stab at doing this 2 or 3 years ago for a client who had (at that time) a limited range of product groups and variations (designs, prices, sizes, colors, etc).
It became a "beast" - certainly not *sensible* in hindsight. Yes: it works, but like others already said - it's a pain to maintain. Depending on your volume, you'll also have to build hooks into CC validation and processing apis (we opted for offline processing instead).
Your data model will determine how *sensible* the app will become :)