製品タイプごとに異なる支払い方法


11

製品タイプごとに異なる支払い方法を利用できる方法はありますか?

これは私のシナリオであり、私がこれまでに理解したことです。

バストラベルパスを販売するために、Drupal Commerceサイトに2つの製品タイプがあります。1つのタイプは、バスチケットの日付と時刻(カスタムラインアイテム)を選択するバスパスを予約するだけです。もう1つのタイプは実際の支払い用で、バスのパスを選択し、追加のツアー(カスタムラインアイテムも含む)を追加して、Paypalで支払うことができます。

予約の支払いタイプには、サンプルの支払いモジュールのカスタマイズバージョンを使用しており、実際の支払いにはDrupal Commerce Paypalモジュールを使用しています。

必要なのは、1つの製品タイプでカスタム予約支払い方法を利用可能にし、他の製品タイプでペイパル支払い方法を利用可能にすることです。

製品タイプの条件を追加しようとしましたが、これを行うことができませんでした。特定の製品の条件を追加できますが、製品タイプの条件は追加できません。これは理想的です:https : //skitch.com/ipwa/eywxa/add-a-new-condition-chasquibus

私が今行っているのは、各支払い製品タイプのPaypalルールを複製し、その製品SKUを条件として選択することです。これは理想的ではありません。ユーザーが複数の支払い商品を持っている場合、注文の追加の支払い商品ごとに利用可能なPaypal支払い方法が重複して取得されるためです。それぞれに支払い方法のルールがあるので、これは理にかなっていると思います。

私のソリューションでは、支払い方法ルールに商品タイプの条件を設定することも、「注文に特定の商品が含まれている」条件で4つの支払い商品SKUを設定することもできます。

回答:


10

製品typecommerce_productエンティティのプロパティであるため、組み込みの「データ比較」条件を使用してテストできます。

タイプ「データ比較」の新しい条件を追加し、データセレクターを次のようにします。

スクリーンショット1

続行すると、次のような画面が表示されます。

スクリーンショット2

ご覧のとおり、製品タイプのドロップダウンリストから選択できます。私はそれをテストしました、そしてそれは御馳走を動かします。

それが何らかの理由で機能しない場合は、カスタムモジュールに独自のルール条件を実装するのは非常に簡単です。

function MYMODULE_rules_condition_info() {
  return array(
    'commerce_product_is_type' => array(
      'label' => t('Product is a certain type'), 
      'parameter' => array(
        'product' => array(
          'label' => t('Product'),
          'type' => 'commerce_product',
        ),
        'type' => array(
          'label' => t('Product Type (Machine Name)'),
          'type' => 'text'
        )
      ), 
      'group' => t('Commerce Product'),
      'callbacks' => array(
        'execute' => 'MYMODULE_commerce_product_is_type',
      )
    ),
  );
}


function MYMODULE_commerce_product_is_type($product, $type) {
  return $product->type == $type;
}

わあ、ありがとう、これは今のところ進むべき道のようです。答えは質問に正確に答えるわけではありませんが(商品タイプのルール条件を提供するためにCommerceに問題を提出する必要があるかもしれません)、それは私の問題を解決します。より多くの人が答えられるように、賞金を開いたままにしておきますが、これまでのところ、賞金を獲得できるようです。スクリーンショットをお寄せいただきありがとうございます。
ipwa

@ipwaそれはそれほどトリッキーではなかったことがわかりました、私は答えを更新しました
クライブ

以前の回答を削除せず、代わりにこれを別の回答として追加していただければ幸いです。commerce-product:typeをデータ比較条件のデータセレクターとして使用しようとすると、「パラメーターデータのデータセレクターcommerce-product:typeが無効です」というエラーが発生します。
ipwa 2012年

@ipwaどっち?コード付きのものか、最初のものか?あなたがそれを意味する場合に備えて、コードを回答に戻しました
Clive

ORでSKUS製品を使用することについてのあなたの答えを意味しました。それは、ORとその使用方法をよく理解するのに役立ちました。現在それを使用して、独自の条件を実装するカスタムモジュールを試してみます。おかげであなたの答えでルールについて多くを学びました。
ipwa 2012年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.