A notifier at or near the beginning of add_cart method could possibly be used. When my code was written, I may have been wary of using notifiers/observers based on my skills, but now I'm much more comfortable with them. One possible gotcha is that the product id is changed to pick up a different price for three different combinations of attributes, but not all combinations (so I can't use built in price deltas for a single specific attribute). When my code was written, I didn't want to get involved with that issue inside the shopping cart class.

I didn't want to bring up the form after the item was added to the cart because I thought it might be confusing to the customer. I wanted "add to cart" to bring up the form when the attribute combination required it, get the data, and then bring up the shopping cart page with the item in it. Seems more logical to me.

Further, I didn't want to bring up an alternate product info page with the form in it. I don't see a reason why that approach wouldn't work though, it just seems more logical to me to bring up the form when the add product to cart button is clicked.

Thank you for your alternate ideas!

Dave