The Products module coming with our SDK is an advanced module. You can find documentation on how it was developed in the same folder as the source code. We are also going to include this in the Developer Guide with the Service Pack.
Does basing a module on Generic Content get in your way? We would recommend building even advanced modules based on Generic Content, unless you have a very specific reason not to do so.