I am doing the same thing, making an order form with 100 products or so where maybe 5 will be ordered. I solved it by making select fields with product names but don't like it.
And a confirmation email that lists all products with 0 ordered is out of the question. Is there a way to solve this with labels maybe? Is there a way to add fields labels in emails?