web-dev-qa-db-ja.com

配送サービスをルールトークン(データセレクター)で利用できるようにする方法は?

私はD7とDrupalコマース、定額配送サービスを利用しています。私の国では、製品と配送料の両方のVATがVATの合計金額に含まれている必要があります。ただし、利用可能な唯一のラインアイテムin Rules は商品ラインアイテムです。VAT投稿に送料のVATを含めるには、トークンが必要です。

commerce_line_item

...注文で選択した配送サービスも含めます。私はこれを理解しようと何日も費やしましたが、運がありませんでした。私は この答え を読みましたが、それらの提案も機能しません。注文の概要ビューに商品ラインアイテムのみを表示するフィルターを削除すると、不要な商品と一緒に送料がテーブルに表示されます。また、トークンはまだ製品ラインのみを反映しています。

これは私がそれを見るのに必要な方法です:

Product line item 1
Product line item 2
Product line item 3
   Net amount excl. VAT
   Shipping service
   VAT (including vat on products and on the shipping service)
   Total amount

何か助けは?

3
TBJ

「ラインアイテム」を処理するときに製品に関するデータが利用できない場合は、次のことができますmake利用可能です。これを行うには、 my answer to " How to access commerce_product field of line-items of Rules to flag the Commerce Product flag ?? で説明されているのと同様の手法を使用します。次のようなルールコンポーネントが含まれています。

{ "rules_perform_an_action_on_a_selected_line_item" : {
    "LABEL" : "Perform an action on a selected line item",
    "PLUGIN" : "rule",
    "OWNER" : "rules",
    "REQUIRES" : [ "rules" ],
    "USES VARIABLES" : { "selected_line_item" : { "label" : "Selected Line Item", "type" : "commerce_line_item" } },
    "IF" : [
      { "entity_has_field" : { "entity" : [ "selected-line-item" ], "field" : "commerce_product" } }
    ],
    "DO" : [
      { "entity_fetch" : {
          "USING" : {
            "type" : "commerce_product",
            "id" : [ "selected-line-item:commerce-product:product-id" ]
          },
          "PROVIDE" : { "entity_fetched" : { "product_fetched" : "Fetched Product" } }
        }
      },
      { "drupal_message" : { "message" : "Some details about this product: Product ID = [product-fetched:product-id], Product SKU = [product-fetched:sku], Product Title = [product-fetched:title], Product Creator = [product-fetched:creator]" } }
    ]
  }
}

ここにあなたがする必要があることの青写真があります:

  1. 上記のルールコンポーネントと同様のルールコンポーネントを作成します。そのルールコンポーネントをインポートするだけで十分です(以下で説明するように、開始してさらに改善するには)。
  2. Drupalルールコンポーネントの最後のルールアクション(「Some details about this product」で始まる)を介して表示されるメッセージを、必要なトークンを使用して書き直します。
  3. すべてのラインアイテムをループするルールのルールループ内でそのルールコンポーネントを実行します。
  4. 必要な追加のルールアクションを作成して、ステップ1のルールコンポーネントを改善します。これらのルールアクションは、「IDでエンティティを取得」を実行するルールアクション(ルールコンポーネント内)の後に配置してください。
3
Pierre.Vriens