Rules for Commerceの請求先住所>名のデータセレクターを使用するにはどうすればよいですか?
自動生成されるメールで注文所有者の名を使用したい。
例えば:
こんにちはScott、
ご注文ありがとうございます...
解決策は、「フルネーム」フィールドの組み合わせではなく、姓と名の分割フィールドを使用する請求顧客プロファイルの住所フィールドに依存している可能性があります。私のCommerceサイトで、住所フィールドに氏名フィールドが姓名フィールドに分割されたり、その逆に分割されたりするのを防ぐバグがあるようです(すぐに修正する予定です)。
顧客が姓名を別々に入力していると仮定すると、必要なことは、注文からプロファイルを介して住所フィールドの名までドリルダウンすることだけです。ルールデータセレクターを使用してこれを行うには、最初に2つの「エンティティにフィールドがあります」条件を追加する必要があります。1つはcommerce-orderエンティティにcommerce_customer_billingフィールドがあり、もう1つはcommerce-order:commerce-customer-請求エンティティにはcommerce_customer_addressフィールドがあります。それらが適切な場合は、データセレクターを使用して、次のトークンにドリルダウンできます。
commerce-order:commerce-customer-billing:commerce-customer-address:first-name
問題は、実際にこの値を電子メールの本文に埋め込む場合です。現在のところ、私が知る限り、同じパターンを使用して名にドリルダウンするトークンのチェーン(ルールUI用語では置換パターン)はありません。 addressfield.moduleのコードを見ると、トークンに関連するコードはありません。これは、トークンモジュールの機能リクエストとして開く必要がある場合があります。
解決策を見つけました。私のルールはすでに電子メールを送信していましたが、顧客の姓名のトークンが表示されませんでした。
アクション「IDでエンティティを取得」を追加します。
エンティティタイプ>値:Commerce Customer Profile
識別子>データセレクター:commerce-order:commerce-customer-billing:profile-id
提供される変数
変数ラベル:顧客請求プロファイル
変数名:customer_billing_profile
アクション「メールを送信」を追加します
(ルール内でメールを送信するためにMime Mailモジュールをインストールした場合は、私が行ったように[HTMLメールを送信]を選択できます)
これらのトークンを名と姓に使用します。
[customer-billing-profile:commerce-customer-address:first_name]
[customer-billing-profile:commerce-customer-address:last_name]
これは、アドレス帳またはプロファイルではなく、注文自体から姓名を取得していることに注意してください。したがって、ユーザーがアドレス帳で名前を変更した場合、その順序で更新されません。私はそれを試してみました。
ここにあるルールセットに触発されました:
https://Gist.github.com/ogredude/395656