I expect any of the 3 main ecommerce add-ons will suffice, but personally I'd recommend Expresso Store. It has a multi-product add to basket ability, so you can list out many products, the user can then work down a list you display from entries, add quantities to and then submit (add to basket). Each product would be priced on a single entity/blob, then let Store do the quantity calculations. This will also allow you to utilise a basket, which then opens more options for your design, UX, and project future scope.
You don't have to utilise the payment gateway, just simply use a dummy gateway and setup the email (in Expresso Store) to the client to inform them that their request has been received and an email (again in Store) that gets sent to you with what they have ordered (requested), along with their contact details for you to contact them and fulfill.
If project budget is an issue and you can't stretch to an ecom module, you should be able to still do it via Freeform but not using a field for each product (which sounds like your issue), but consolidate all the products and quantities into a single field via JavaScript and store in Freeform as a multi-select field.