Reorganize the documentation

Will close issue #257 and #273 
I think this can just be shortened :).

>
If the `product` variable is hydrated as an array (instead of an object), you will
need to manually specify the class name:

... then the code block