Why -- Product Display Type needed after Product Type created?

I am trying to understand the connections between the

Product = I create this first

Product Type = I create this second

Product Display, which is content type. = I create this third.


I create a new product

I create product... Apples, and include photo, etc.

Then I create Product Type with manage fields and then Display fields for the product type FRUIT.

Then I create Product Display (content type) DISPLAY FRUITS. I would just like to find a careful explanation of how these 3 are related and what is important about each in building a store.

After I create the Product Type, then I create Product Display, which appears to me just a mirror of Product Type?

The kickstart is working fine, but I would like to read or view a very clear explanation of why the above procedure.

I'd appreciate a link or something that explains very carefully.


Posted: Jul 5, 2012


joecanti on July 6, 2012


My understanding is that they have decided to make the separation between products and nodes, so as to allow for some specific functionality. At first I thought it was annoying, but I am beginning to see the value of it, although it takes some time to understand.

---Product Types---
These are like content types, so, for example:

If you had a clothes shop you would make one product type for the shoes, and add a field for the sizes 32,33,34,35 etc. Then you could make another product type for tops with the colours red, orange, yellow etc in a new field. 2 different product types because each of them requires different fields - the first for shoe sizes and the second for top colours.

If you don't need to add new fields, then you only need one product type - it is my understanding that you don't use product type for categorization, only for adding different fields.

For categorization, you use the standard Drupal Taxonomy, and add a taxonomy field to your product type. EG for the example above for the shoes, I could add a category 'shoe type' and add terms like hiking boots. high heels, beach shoes etc etc.

Products are entities assosiated with the commerce module. They have an SKU, a title and a price as standard, but you can add more fields such as images, taxonomy categories etc etc.

---Product Displays----
These are the 'nodes' used to display the products. You create them after you have created your products, and the main advantage of them is that you can add more than one product to a product display. EG with your fruit example you might create 2 products - red apples for £3.00 and green apples for £4.00. You can add both of these to one product display, so that when viewing the product display, an extra select box is seen in the add to cart form, where you can choose either green or red apples. When you do, the price and the picture change automatically.

In this way, you can use them like attributes would have been used in Ubercart.

It seems a bit long winded, but like I said I am beginning to appreciate why they made this desicion. There is also a rule you can switch on which creates the product displays automatically, and there is a useful 'product display manager' module for a better visual representation.

Hope this helps!


domineaux on July 6, 2012

Very good an thorough explanation.

Your explanation on product displays is interesting information, which I missed altogether. I was thinking the product display was just a node creator. By that I mean I was thinking every product was required to have it's own product display (node).

If I understand you correctly.. I can have a product display for an apple and use all kinds of apples as long as they have individual product -- Brayburn,Choice,Fuji.

Then I can select the same product display for all of them as long as all the fields are the same?

A selector will be visible when I use different product with same product display?

Thank you

joecanti on July 29, 2012

If I follow you, yes. Product displays are used to display products on the site - either single or grouped products. The best way I've found to keep track is to use the inline entity form module - it allows you to add products from the product display page - makes managing everything alot easier.