Sunday, 8 April 2012

Drupal Commerce Product Display Module


Commerce Product Display Manager


Hi, my name is Pedro Cambra from Commerce Guys with another Commerce Module Tuesday, & I am here to talk to you about Commerce Product Display Manager, or short name Commerce PDM, which is really a great way to simplify the way that you manage product displays & products.
So you will probably find this module useful if you are managing an online store with Commerce because Commerce has a relationship with products & product displays that is 1:1, so you don't have or have not so many ???tomany ???ations in this scenareo. So if you are using a 1:1 relationship between product displays and products you will probably find this module really really useful. So lets demo[nstrate] it. (So) I have had Commerce Kickstart simple installed, just with the product display manager enabled. And - This module provides two different things.

1.Automatically creates a display.
The first one is that if I add a product in the screen of creating & editing products ...
[admin>commerce>products>add>product - screen headed "Create Product" with "View Products" highlighted]... you will see this widget here on the bottom. [below statuse active/disabled, Change History: widget is headed "Referenced By". It has two links: New display node | Existing Display Node] ... that allows me to create a new display node, or use an existing display node in the same screen that I'm [using for] creating the product.

So let's create a new product.
Give it the SKU 04, [call it] Product 4; that's $40. Suppose - I don't care about the content of the node: I just want a node to display this:  I could select any Poduct Display content type [that] I have [from the "type" dropdown menu]. So.

Just adding the detail: it will create - it has just create a new node, for referencing this product. So I just need to save the product. So I have the Product 4 [on the list]. And if I go to Content [from the top menu in admin] I have Product 4 displayed. It has the title and the product reference field filled-in. So if you have many fields you would probably need to edit this afterwards.

Also notice that this is "published" and not "published and promoted" so if you have Commerce Kickstart, as I do, you will need to go to "Content" to find this new node.

[from "View Products" on the second line of menu options in admin]
So you can also edit your products - say that is Product 4 - I will need, or I want a new node, so I can charge for the product. You can probably see the node ID but you can search for the details [that] you can reference, here. And delete, with a fancy javascript interface so, that's great.

2a.Store> Products> Display Manager tab ..
So the second thing, once you have installed this Display Manager Module, is  this stuff here in the product list. So if you go to Store>Products you'll see your product list and here, in the top, your Display Manager tab. 

And in this Display Manager, you will see a drag-and-drop interface. So you can change your products on display, and assign products, just with drag-and-drop. (And) You can delete both the Products, and the Product displays, add new products, etcetera. So it is a great add-on if you have a need to manage the Products this way, with a drag-and-drop and a javascript interface.

(So) when you save something, it is in a batch process and it is a really cool feature.

2b Using a rule instead of a module
(So) if you don't want to install this module, because you don't want this interface exposed or whatever, there is an issue in the Drupal Commerce queue, which is called "Rules to mirror product displays when products created/updated/deleted". It is self-explanatory. And here you will find a bunch of rules. Probably you will be looking here at the bottom. And I have just proposed one here. So when a Product is created, a display is created with the same information as the product. 

(So) you go back - sorry: - If you go back to your interface, and you access the Rules interface which is in 
Configuration>Rules, you can import one [rule]. So I just paste this code here, and import. (And) you will find your rule which is defined Create Event Display at the bottom here. (So) What is does is that after saving a new Commerce Product, it creates a new Entity. Let's see the details: it's a Node of the type Product Display, with the same title as the Product which we have just been creating, and with the same author. (And also) It relates the product to the product display with this ? add-an-item-to-a-list


With some filters here

the Commerce Display is filled with the Commerce Product. So - erm - you do not need to know a lot about Rules: just understand how the flow goes.

So this thing will do that. If I add a new product, which is SKY -05 (keeping in order)

product 5
[something about price]
I'm not adding a new reference or whatsoever. I save the product: product saved. And if I go to content, I have the Product 5 - ? - product 5 with the SKU related. So you will find in this - in this, er, issue : a bunch or fuyles will probably help you in this task. ? Also for date and delete.

And, also, if you want an interface with the product and the product display on the same page, and you are a little savvy at coding, you could take a look at this excellent post by Amitai on how to use the module Subform to use the interface of Product Display and the Product in the same screen http://www.gizra.com/content/commerce-product-subform
(So) I hope you enjoyed this Commerce Modules Tuesday with a little few extras on the end, and see you in the next one!