jwelch
Correct me if I am wrong, Ted, but the Export Column transform is used when you have a binary field in your data flow that you want to persist to a file. That doesn't seem to be the case for Leo's data.
Leo, you can partition the file by rows, but what Jay is suggesting would be simpler and perform better. If you use a For Each Loop, you would get a list of all product IDs, then execute a data flow inside the loop for each product ID. Using expressions, you can alter both the OLE DB Source query and the destination file connection string for each iteration of the loop. You wouldn't ever read a destination file - you would only be writing rows to them. And you would only process each row once.
Here's a few examples of using ForEach loops:
http://sqljunkies.com/WebLog/knight_reign/archive/2005/03/25/9588.aspx
http://agilebi.com/cs/blogs/jwelch/archive/2007/03/21/using-for-each-to-iterate-a-resultset.aspx
http://www.sqlis.com/55.aspx
http://blogs.conchango.com/jamiethomson/archive/2005/05/30/1489.aspx
http://rafael-salas.blogspot.com/2007/02/ssis-loop-through-files-in-date-range.html
http://blogs.conchango.com/jamiethomson/archive/2005/06/15/SSIS_3A00_-Getting-a-value-out-of-a-file-to-use-it-in-our-package.aspx
and a search that might have some more:
http://search.live.com/results.aspx q=foreach+&form=QBRE&q1=macro%3Ajamiet.ssis