2011-06-26 108 views
5

我試圖將Commerce產品類型綁定到我自己的自定義類型節點(用作顯示節點)。目標是在儘可能少的地方輸入新數據。因此,我在探索基於規則的創造一種類型時創造另一種類型。似乎兩個方向都在起作用。儘管如此,我更喜歡在用戶創建Custom Type節點時自動創建Commerce Product,然後將其用作產品展示。基於規則的節點創建:商業產品+產品顯示節點集

我想知道是否有人通過這個選擇,並可以推薦這個。另外,commerce_product_display_manager模塊是否必需?

回答

2

商業產品顯示管理器是沒有必要的,我已經得到這個工作,我從來沒有使用過該模塊。

我去保存產品後自動創建一個節點的路線。

下面是我的規則這個出口:

{ "rules_create_product_display" : { 
    "LABEL" : "Create Product Display", 
    "PLUGIN" : "reaction rule", 
    "REQUIRES" : [ "rules", "entity" ], 
    "ON" : [ "commerce_product_insert" ], 
    "IF" : [ 
     { "data_is" : { "data" : [ "commerce-product:type" ], "value" : "**PRODUCT_TYPE**" } } 
    ], 
    "DO" : [ 
     { "entity_create" : { 
      "USING" : { 
      "type" : "node", 
      "param_type" : "**NODE_TYPE**", 
      "param_title" : "[commerce-product:title]", 
      "param_author" : [ "commerce-product:creator" ] 
      }, 
      "PROVIDE" : { "entity_created" : { "entity_created" : "Created entity" } } 
     } 
     }, 
     { "data_set" : { 
      "data" : [ "entity-created:**PRODUCT_REFERENCE**" ], 
      "value" : [ "commerce-product" ] 
     } 
     } 
    ] 
    } 
} 

你需要替換自己值:

  • PRODUCT_TYPE(已創建產品類型)
  • NODE_TYPE(正在創建節點類型)
  • PRODUCT_REFERENCE(字段將引用生成的製品)

對不起,我不能把更多的時間來更好的答案,現在,讓我知道,如果你想我闡述創建上述的過程使用GUI

2

上面的例子是有用的,但這裏有一個更具體的一個:

{ "rules_create_product_display_on_product_creation" : { 
    "LABEL" : "Create Product Display on Product creation", 
    "PLUGIN" : "reaction rule", 
    "REQUIRES" : [ "rules", "entity" ], 
    "ON" : [ "commerce_product_insert" ], 
    "IF" : [ 
     { "entity_is_of_type" : { "entity" : [ "commerce-product" ], "type" : "commerce_product" } } 
    ], 
    "DO" : [ 
     { "entity_create" : { 
      "USING" : { 
      "type" : "node", 
      "param_type" : "product_display", 
      "param_title" : "[commerce-product:title]", 
      "param_author" : [ "commerce-product:creator" ] 
      }, 
      "PROVIDE" : { "entity_created" : { "entity_created" : "Created entity" } } 
     } 
     }, 
     { "data_set" : { 
      "data" : [ "entity-created:field-product:0" ], 
      "value" : [ "commerce-product" ] 
     } 
     } 
    ] 
    } 
} 

我唯一的問題是與第二個動作(「data_set」) - 選擇是很重要的「實體-created:field-product:0「,而不是」實體創建的:現場產品「來製作它因爲我們想分配特定的產品而不是產品清單。

本示例使用標準產品顯示節點類型(product_display),但可以使用正在使用的類型對其進行更改。還要記住,這隻適用於一種產品類型 - 對於每種產品類型都應該創建一個單獨的規則。您也可以創建刪除產品時刪除產品展示節點的規則。 只有當您連接一個產品一個產品展示時,此規則纔有用。如果您需要爲每個產品展示添加更多產品(顏色,價格不同的圖片),那麼您必須使用Commerce Bulk Product Creation模塊。