決済方法に応じて、配達方法を制限したい

Topic summary

ユーザーは、決済方法に応じて配達方法を制限したいと考えています。具体的には、「代引き決済」を選択した場合に、配達方法を「宅配便のみ」に限定し、メール便を選択不可にしたいという要望です。

技術的な制約:

  • Shopify Functionsを使用しても、現状では支払方法の情報を取得できないため、直接的な実装は不可能との回答がありました。
  • 標準機能やカスタムアプリでも実現困難とされています。

代替案として提案された方法:

  • カートページで事前に支払方法を選択させる
  • その情報をCart Attributesに格納する
  • Shopify FunctionsでCart Attributesを参照し、配達方法を制御する
  • チェックアウト画面では選択済みの支払方法のみを表示する

複数の関連アプリのリンクと、Cart Attributesの実装方法に関する参考情報も提供されています。この方法により、決済方法に応じた配達方法の制限が可能になるとのことです。

Summarized with AI on November 5. AI used: claude-sonnet-4-5-20250929.

現在、購入情報を入力するページでは、配達方法はメール便と宅配便を選べるような仕様になっております。

そして決済方法で「代引き決済」を選んだ際に、配達方法は「宅配便のみ」を選択できるようにしたい(メール便の選択を不可にしたい)と考えています。

shopifyの管理画面上で必要な設定だったり、必要なアプリだったりがありましたら、ご教示いただけますと幸いです。

よろしくお願いいたします!

@Hiroto0121

おそらく不可能です。

アプリを使ったとしても、専用のカスタムアプリを開発したとしても不可能ではないかと思います。

質問者様のご要望を実現しようと思うと、下記のShopify Functionsを使用するしかないのですが、

https://shopify.dev/docs/apps/build/functions

このShopify Functionsでは、下記のように支払方法を取得することができません。

https://shopify.dev/docs/api/functions/reference/delivery-customization/graphql/common-objects/cart

代わりの案として私が思いつくのは、

例えば、

カートページで、

支払方法を選択させ、

その情報をCart Attributesに格納する方法です。

こうすることで、

Shopify Functionsで、支払方法に応じた配達方法を制御できるようになります。

また、Shopify Functionsでは、支払方法の表示/非表示も制御できますので、

カートで選択された支払方法のみをチェックアウト画面に表示することもできます。

以下は参考です。

Cart Attributesの実装の仕方

https://unreact.jp/blog/about-cart-attrbutes

Cart Attributesを使用して配達方法を制御できそうなアプリ (※確認はしていません)

https://apps.shopify.com/hideship-hide-shipping-methods?locale=ja

Cart Attributesを使用して支払い方法を制御できそうなアプリ (※確認はしていません)

https://apps.shopify.com/hidepay?locale=ja

ご参考まで。

(キュー田辺)