I am building a new site which has a large selection of different products/services on offer, the information for each is shown in it's own node.

If the user has interest in a number of these services then I would like to give them the ability to 'add' the item to their enquiry along with a message. When they have added all of the items they are interested in they can then submit the enquiry.

Overall, the process shares similarities with an e-commerce workflow

  1. View product
  2. Add product to enquiry form builder with comment (choose options and add to cart)
  3. Browse other products and repeat steps 1&2.
  4. Once happy, review enquiry (checkout)
  5. If all is ok, submit enquiry (process order)

Using Drupal 7, how would you suggest I tackle this?

I only compared the process to e-commerce as it helped me think things through, the site isn't actually going to be selling the products. Strictly a tool to submit a detailed enquiry.

  • I've used Flag module and Views to do this with Webform in the past. It required some custom glue as far as I recall. But Entity forms is newer and much more flexible. Perhaps that is a good place to start looking? May 3, 2014 at 14:05
  • Entity forms uses core fields instead of the custom fields that Webform uses. So you should be able to add an entity reference field on your products and services types. May 3, 2014 at 14:07

1 Answer 1


Switch to Entityform. This uses the core field APIs. Add an entity reference field on your products and services types. Details from the project page:

The Entityform module enables you to create front-end forms (fieldable entities), which contain fields that you define! These forms use the standard Drupal fields. This means that out of the box, you can use any standard Drupal node field! As of the time this article was written, there were over three hundred "field" modules. And since Entityforms are "Drupal entities", you will automatically be able to use future "field" modules!

The forms can be used to create custom surveys, petition, and personalized contact forms, and other customized form. (For those of you who have used Webforms, this module brings Webform's functionality into the "standard" Drupal field / entity world.)

As with everything in Drupal, there are Pros and Cons to using Entityform. All though Entityform is a powerful tool, it is not always the best solution. The article When to Use Entityform discusses the advantages and disadvantages that Entityform may have over other methods of creating user "submittable" forms. Do not use Entityform for forms that will contain 150+ form elements

Entity form works well with other modules like Rules so you can get really custom with your behaviours.

  • This is great for building my forms, thanks! What i'm struggling with is deciding how to store the quotes prior to submission. Once the user adds a service/product to the quote they may browse to other pages, possibly adding new services/products to the quote prior to submission. My first thought is to use cookies for storing the info. However, could I store the incomplete quotes in the database with a SID - this would let me track abandoned quotes. Not vital but it would be handy. If that makes sense, is there any modules that might be of use to me? Thanks!
    – leeboyce
    May 4, 2014 at 19:51
  • As I mentioned in my earlier comments I've used the Flag module in combination with Forms to do exactly what you are trying to do. Jun 19, 2014 at 0:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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