5

コマース製品タイプを独自のカスタム タイプ ノード (表示ノードとして機能) にバインドしようとしています。目標は、できるだけ少ない場所に新しいデータを入力することです。したがって、私はルールに基づいて一方のタイプを作成し、もう一方のタイプを作成することを検討しています。両方の方向が機能しているようです。ただし、この 2 つのうち、ユーザーがカスタム タイプ ノードを作成すると、製品表示として機能するコマース製品が自動的に作成されることを好みます。

誰かがこの選択を経験しており、これを推奨できるかどうか疑問に思っていました. また、commerce_product_display_manager モジュールは必要ですか?

4

2 に答える 2

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" ]
        }
      }
    ]
  }
}

私が抱えていた唯一の問題は、2 番目のアクション ("data_set") に関するものでした。それを機能させるには、"entity-created:field-product" ではなく、"entity-created:field-product:0" を選択することが重要でした。製品のリストではなく、特定の製品を割り当てたい。

この例では、標準の製品表示ノード タイプ (product_display) を使用していますが、使用しているものに変更できます。また、これは 1 つの製品タイプに対してのみ機能することにも注意してください。製品タイプごとに個別のルールを作成する必要があります。また、商品削除時に商品表示ノードを削除するルールを作成することもできます。このルールは、1 つの製品と 1 つの製品のディスプレイを接続している場合にのみ役立ちます。製品表示 (色、価格の異なる画像) ごとにさらに製品を追加する必要がある場合は、Commerce Bulk Product Creationモジュールを使用する必要があります。

于 2012-04-12T12:11:18.187 に答える
2

Commerce Product Display Manager は必要ありません。これで動作するようになりましたが、そのモジュールを使用したことはありません。

製品を保存した後、ノードを自動的に作成するルートに行きました。

以下は、これに対する私のルールのエクスポートです。

{ "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を使用して上記を作成するプロセスについて詳しく説明してほしい場合はお知らせください。

于 2011-08-01T09:17:38.053 に答える