There are a couple ways to go about this. One is to have a fixed number of possible submissions that one person can make (say no more than 10), and create the appropriate number of fields to accommodate that. With each submission, you’d have three fields: a quantity field, a “type” field (i.e. “cakes”, “cookies”, “cheese”, etc.—either a single-select if it’s a predefined list, or an open text field if not), and a class field (linking to your
[Class] table). The downside is that it’ll take a good bit of time to make all of those fields, plus if someone wants to make 11 submissions, they’re out of luck, so you might end up making way more fields than you really need just to accommodate those really ambitious people.
Another option is to keep the form small, with only the three key fields listed above (plus the person’s name and any other contact info you want to collect), and they’ll have to fill out the form once for each submission. Much easier for you, but more cumbersome for entrants because they have to enter their name (and other info) into the form every time, rather than once for all submissions.
You might also be able to use a third-party form tool like Jotform to build this entry form and tie it into Airtable. One of Jotform’s features is a variable-length collection of fields in a row (I don’t know the official name for this, but someone showed it to me the other day in a screenshare). Need a new row? Click the + button on the end to add it. This way entrants can submit as many or as few entries as they desire, with each entry row having its own quantity, type, and class selections, and you’re not taking time to make all of those fields manually. I think there are some possible caveats with this particular feature in terms of tying it into Airtable, but it might be worth a look.