コミュニティで度々目にするため調べたことをメモとして。
実現したいこと
- Shopifyストアで購入したユーザーに対し、「注文の確認」などの通知メール送信時に決済方法に応じた文言を出力するために、gatewayの値を確認したい
決済方法に応じた文言の出力を実現するためには以下のようなコードが考えられます。
■方法1
{% for transaction in transactions %}
{% if transaction.gateway == "shopify_payments" %}
<p>Shopify Paymentsで決済された場合に出力</p>
{% endif %}
{% endfor %}
■方法2
{% if unique_gateways[0] == "shopify_payments" %}
<p>Shopify Paymentsで決済された場合に出力</p>
{% endif %}
■方法3
{% if unique_gateways contains "shopify_payments" %}
<p>Shopify Paymentsで決済された場合に出力</p>
{% endif %}
このコードを動かすにはgatewayの正確な値を知っている必要がありますが、Shopifyのドキュメントを調べた範囲では値の一覧は見当たりませんでした。
世界各国の全サービスを網羅することを考えると一覧化は相当に困難だとは思いますが、理由はどうあれ値が分からないのではどうにもなりません。
確認方法
To find the name of the gateway (“shopify_payments” in my example above), go to the order details page of the type of orders you want to identify, then in the url bar at the end of the order ID (it will be a string of numbers), add “/transactions.json” and then press enter. That will load the transaction data for the order, just search for “gateway” from there to identify the value that Shopify is using for it.
上記のように管理画面で「注文管理」から個別の注文画面に移動し、その画面のURL末尾に/transactions.jsonを追加したURLにアクセスすることで、JSONを表示させてgatewayの値を確認可能です。
該当の注文が存在しないと使えない方法ですが、ストア公開前にテスト購入を行っている可能性が高いことを考えると有効な方法だと思います。
参考
- 通知の参照変数 · Shopify ヘルプセンター
-
unique_gateways
注文に関して固有の決済サービスのリストを返す。たとえば、Visa、Mastercard、キャッシュで支払いを行う場合、返されるリストはshopify_payments, cashとなる。unique_gatewaysは通知メールでのみ使用できる変数の模様です。
複数の値が出力されるようですが調査しても詳細が書かれたドキュメントが見つからず、Shopify Paymetnsのテストモードで決済してもshopify_paymentsだけしか値が取れませんでした。
- ShopifyメールキャンペーンにカスタムLiquidを追加する · Shopify ヘルプセンター
-
unique_gateways
チェックアウト時に利用可能な固有の決済サービスのリスト。Shopifyメールにおいては上記のような説明となり、通知の説明とは異なるように見えます。
試せていないので実際のところはわかりませんが注意が必要かもしれません。
- ShopifyへKOMOJUのコンビニ決済導入時に決済手数料表記でできること | threedotfive
-
{% if unique_gateways contains "komoju_コンビニ決済" %} 商品はご指定のコンビニでご入金完了後、3営業日以内に発送いたします。 {% endif %}
公開時期が古いため現在でも適用できるか不明ですが、komojuを使うと値はkomoju_コンビニ決済になるようです。
結び
事前に知ることができるのが一番ではあるので、通知の画面に登録済みの決済方法に基づくgatewayの一覧を記載してくれると助かるのですが。
1人がこの記事を評価
役に立ったよという方は上の「記事を評価する」ボタンをクリックしてもらえると嬉しいです。
連投防止のためにCookie使用。SNSへの投稿など他サービスとの連動は一切ありません。