web-dev-qa-db-ja.com

コマース/ルール-価格にカスタムフィールド値を掛けます

私のDrupal Commerceストアには、Commissionというフィールドがあります。

委員会はパーセンテージとして入力されます(つまり、固定されたグローバル値ではありません)。

手数料が含まれるように、最終価格を更新する必要があります。次に、コミッションにVATを追加する必要があります(ただし、当初の価格ではありません)。ユーザーは、カートに商品を追加する前に、(コミッションとコミッションVAT付きの)全額を確認できる必要があります。

特に "単価に金額を掛ける"というアクションがあるので、この状況にはルールが最適だと思いました。ただし、ルールの条件領域でスコープに含めても、このアクションはカスタムフィールドの値を受け入れないようです。

私はルールと商用モジュールで Randy Feyの優れたチュートリアル を見て、自分のユースケースにそれらを適応させようとしました。しかし、私はそれを機能させることができません。

誰かが私にいくつかの指針を与えることができますか?ありがとう!

5
big_smile

私はこれに対する解決策を見つけたので、苦労している他の人を助けるために投稿しようと思いました:

1)アクションの下でフィールドを呼び出す前に、条件の下でそれを「スコープに」入れる必要があります。 「エンティティにフィールドがあります」を選択します。データセレクターで「commerce-product(saved commerce product)」を選択します。

2)何らかの理由で、「複数の単位量」オプションを使用できない場合があります。使用するデータセレクターに関係なく、エラーが発生します。代わりに「値を計算」を選択します

3)[入力値1]で[commerce-product:commerce-price:amount]を選択します。

4)使用する計算を選択します。私の使用例では、乗算(*)を使用しました。

5)「入力値2」の下の「データ選択ボタンに切り替える」をクリックします。これで、カスタムフィールドを選択できます。 「commerce-product:(saved commerce product)」の下に配置されます

6)[提供された変数]で、計算結果に名前を付けます。後で使用するため、適切な名前を選択してください。

7)「データ値の設定」という新しいアクションを作成します。

8)データを選択するには、「commerce-product:commerce-price:amount」を選択します

9)最後に、値の下にある「データ選択ボタンに切り替える」をクリックします。これで、手順6で作成した変数を選択できます。

これは、カスタムフィールドの値に基づいて価格を変更するために必要なすべてです。

注:1)イベントには、「コマース製品を保存する前」を使用しました。2)「基本価格」というカスタムフィールドを作成することをお勧めします。このフィールドでは、ユーザーは計算前に価格を入力できます。ルールは商品が保存されるたびに適用されるため、コマース価格フィールドは商品が保存されるたびに変化し続けます。基本価格フィールドを使用すると、この問題を回避できます。

6
big_smile

これは古い質問ですが、ベンチと同じ問題に遭遇しました。私は最終的に次の条件を使用してそれを解決しました:

Entity has field -> Entity: [commerce-line-item] -> Field: commerce_product
Entity has field -> Entity: [commerce-line-item:commerce-product] -> Field: field_your_custom_field

したがって、2つのステップで実行する必要があります。誰かが2時間前に私に言ったことを望んだ.. ;-)

2
Frank

1)の場合: 'データセレクタの下で「commerce-product(saved commerce product)」を選択します。'

データセレクターでは、「commerce-line-item ...」のみを追加できますか?また、「フィールド」-「チェックするフィールドの名前」というブロックもあります。 ??

0
bench