IMHO, I would store the images in a database, of course that is just me.
In so far as relating images to products and such, I would create a table in your database that stores the path to the image and the id that that image relates back to. (I think this will save you a lot more headaches then setting up an elaborate naming convention)
so when a user would navigate to X product, you could pass in the id through a stored procedure something like
SELECT imagePath from <table> where productID = @id
then in code you could add images dynamically to the page:
foreach(DataRow dr in dt.Rows)
Image img = new Image();
img.ImageUrl = Convert.ToString(dr["path"]);
//add img control to a container control
Or something similar to that.
Read this if you want to know how to get a correct reply for your question:
^^Took that from planoie's profile^^
^^Modified text taken from gbianchi profile^^
Technical Editor for: Professional Search Engine Optimization with ASP.NET