You are correct about changing the add to cart to get the total price from the new select list. If you have multiple add to cart server behaviors on the page for the various items you will only need to adjust the one for the greeting cards. If you have it dynamic with a single add to cart it may be easiest to just have another detail page for the greeting cards.
Going the calculated route should yield a similar result. You can have the predetermined quantities available from a select list and a column in the cart to bind this list to. Then with a calculation you would set the total price to be based on this extra column so long as it has a value. Personally I think I like the idea of using the calculations as it requires less customizing of the code but you will need to craft the calculation for the total price to use this new column.