Liquidで書いたPaymentButtonを押すと「Checkout unavailable」エラー

Topic summary

Shopifyのカスタムページテンプレートで商品一覧を作成中、各商品に配置したPayment Buttonが「Checkout unavailable」エラーで機能しない問題が報告されました。

問題の詳細:

  • Liquidコードでcollections.all.productsをループし、form 'product'payment_buttonを使用
  • Custom contentセクション内のHTMLブロックに実装
  • 商品タイトルは表示されるが、ボタンがdisabled状態またはエラーになる
  • 標準の商品詳細ページでは正常に動作

トラブルシューティング:

  • form変数への商品情報の受け渡し確認
  • 開発ストアでの検証中、チェックアウト画面への遷移が不安定で400エラーが発生
  • コレクションテンプレートの使用が推奨される

解決:
最終的に<input type="hidden" name="id" />がform内に存在していないことが原因と判明。このinputタグをformに追加することで正常に動作するようになりました。問題が複雑な場合はShopifyサポートへの問い合わせも推奨されています。

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

@daiki44

初めまして。新垣です。

全体のコードを見てみないと具体的な解決策をお伝えできないのですが、確認すべき点としては下記になります。

・formタグのproduct変数には、該当商品の情報が渡されているか

・管理画面 > 商品管理 > 該当商品 > プレビューから購入しようとすると同様のエラーが発生します

また、商品一覧画面を作るのであれば、ページテンプレートではなくコレクションテンプレートを利用した方が統一性が持てて良いかと思います。

以上、参考になりましたら幸いです。

解決できないようであれば、お気兼ねなく個別でメッセージを下さい。