I got it running.
With the database, I'm wondering if it would work better to have the "Price Increment" inside the Options table? Do you see anything wrong with this?
As it is now, the ProductOptions table has the ProductID, OptionID, OptionGroupID and PriceInc. What if I had a Linking table with only a "ProductID" and a "OptionsID."
To me, it just seems to be redundant to have all of the IDs repeated in the ProductOptions table when they already have their own normalized reference tables (Options/OptionsGroup). Is it done this way to make it "simple" or is there a good reason for this?
Although, without being able to completely visualize how this manifests itself, would my options be limited if I did it the way I'm thinking?