web-dev-qa-db-ja.com

コンテンツノードのフィールドを持つコマース広告申込情報ビュー

画像、ブランド、および事前に編集ビューのカート/注文ビューに表示したいその他のコンテンツノード(製品バリエーションではない)にいくつかのフィールドがあります>関係、製品参照を追加でき、それにより、製品バリエーションからフィールドを追加しますが、コンテンツノードにあるフィールドを追加する方法が見つかりません

つまり、コンテンツタイプにある画像などのフィールドをカート/注文ビューに追加したいと思います。

良い回避策が見つかりました:

関係を追加すると、ビューで製品からフィールドを取得できます。

2
Tica

これは簡単ではありません。ラインアイテムにはノードへの直接参照がないためです。ノードURLをテキストフィールドに格納しますが、ビューの参照は行いません。各商品を参照する商品ディスプレイが1つしかないストアがある場合は、逆商品参照を使用して回避できます。つまり、ラインアイテムから始めて、商品を参照し、商品から逆参照を追加します。 「製品を参照するノード」その後、製品表示ノードからフィールドを追加できるはずです。

特定の製品を参照する複数の製品表示がある場合、このソリューションは機能しない可能性があります(もちろん、各ノードに、ビューに取り込む予定の同じフィールドが含まれていない限り)。

2
Ryan Szrama

Commerce Kickstart 2を使用して、分類用語「product_sku」を作成し、その用語に画像フィールドを追加することで、これをある程度達成することができました。

次に、対応する画像を使用してすべてのベースSKUを作成しました。

「product_sku」という用語をバリアント型フィールドに用語参照として追加し、画像を抽出フィールドとして表示に追加しました。

新しいバリアントを作成するときは、画像をアップロードする代わりに、ドロップダウンリストからSKUを選択するだけです。

バリエーションがなくても何千もの製品がある場合、これは簡単に混乱する可能性があります。私は200ほどしか持っていませんが、それぞれに28 +/-バリアント(色)があり、それらのいくつかには追加のオプションがあります。

色見本にも同じ方法を使用したので、バリエーションの作成に関しては、製品の1つに対して120(?AUTO-VARIANT CREATOR?)、何もアップロードする必要がありません。これはコンテンツタイプでも機能します。カタログのメーカーやモデルの参照用語に使用したり、添付のロゴやモデルの画像を表示したりしています。

0
Chuck

ビューでこれを実現するには、「Commerce Line item:Referenced products」という名前の関係を追加する必要があります。これにより、製品ノードからフィールドがフェッチされます。

0
Umesh Patil

私はこの方法でこれを行いましたカートビューを編集します(または、ビューでそれを行うことができますが、私の要件はカートビューにありました)製品参照への関係を追加します(製品IDを取得します)、ビューにphpフィールドを追加し、カスタムモジュールを追加したphpフィールドで呼び出します(パフォーマンスを向上させるためにキャッシュします:D)

function mymodule_get_nid_of_pid($pid){
  if ($cache = cache_get('nid-product-' . $pid)) {
    $data = $cache->data;
  }
  else {
  $query = new EntityFieldQuery();
  $result = $query->entityCondition('entity_type', 'node')
  ->entityCondition('bundle', 'products')
  ->fieldCondition('field_product_select', 'product_id', $pid)
  ->propertyCondition('status', 1)
  ->range(0,1)
  ->execute();
  if(array_keys($result['node'])){
  $data = current(array_keys($result['node']));
  cache_set('nid-product-' . $pid, $data, 'cache', REQUEST_TIME + (3600 * 24 ));
  }
  return $data;
}
0
Yusef