I want do display a form based on what product / option is chosen, when a user wants to buy this product he has to fill in that extra form so a contract can be printed from that data. I have 2 ways in mind to do this but i wonder what would be the most efficient.

The first i tought off was just catching the add to cart observer and check for the presence of the element there, if its there redirect the form, if it's not there, don't redirect. Off course that would require me to do another check on the cart page itself, otherwise users could just go straight to the url if I am not mistaken.

A second one would be to add an extra form to the checkout, this would make the checkout longer and could cause users to abandon sooner.

I was wondering if you guys had any better ideas or some pointers on wich one is the best.

I am not asking for code (as i want to do it myself), I just want to know if there is any "correct/standard" approach for this.


Magento U has this facility when signing up for trainings - they add the required form elements during checkout as an extra step. In my experience the funnel narrows after cart addition but the completion percentage jumps when going through checkout. Having require steps later in the checkout process decreases abandonment (again, in my experience).

A screenshot is below:

enter image description here


What about an ajax solution?

Add an event onto the option and send back the required form, and populate an element with the form required. You can add a similar event on DOM ready to send back the current product/default selected option and populate.

You can then deal with the add to cart (via observer on the add to cart controller action) to get the form data.

This, for me, would make for a better UI experience, and have less 'page laoding waiting' for the user.

  • not a bad solution either, will take both in to consideration Jul 19 '13 at 20:51

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.