I like the more free form approach

having one file per product I think will work better in the long run,
and easier to maintain