.additional-checkout-buttons セレクターは、Upcart のモジュールクラスではなく、迅速チェックアウトのコンテナに対する Shopify 自身のクラスであるため、どちらのカートバージョンでも同じです。
概要
新モジュールに必要なセットアップ
<body> タグ(例:<body class="...">)の直下に配置されていることを確認してください。閉じタグ </body> の後など、誤った場所に配置すると、エクスプレスチェックアウトボタンが正しく機能しない場合があります。
解決方法
- Shopify 管理画面に移動します。
- オンラインストア > テーマ > コードを編集に移動します。
- layout/theme.liquid を開き、
<body>の行を見つけて、その直下の新しい行に以下のスニペットを追加します。カートが開く可能性のあるすべてのページにボタンが存在する必要があるため、cart-drawer.liquidや他の場所ではなく、必ずここに配置してください。
- 変更を保存し、ストアフロントを更新します。
- カートドロワーを再度開き、エクスプレスチェックアウトボタン(Shop Pay、PayPal、Apple Pay、Google Pay など)が表示され、クリックできることを確認します。
この問題が起こる理由
- Upcart は独自のボタンをレンダリングしません。ページ上にある Shopify の迅速チェックアウトボタンをカートドロワー内に**複製(クローン)**します。そのため、まずボタンがページ上に存在している必要があり、それを保証するのが上記のテーマスニペットです。
- Apple Pay は、Apple Pay が設定されている Apple デバイスでのみ表示されます。
- コンテンツと機能は Shopify によって処理されるため、Upcart はどのエクスプレスボタンが表示されるかを制御しません。
Upcart 内のボタンは視覚的なコンテナとして機能し、その表示と動作は Shopify が制御します。Upcart はボタンの外観や機能を変更できません。
よくある問題と解決策
- 上記の解決方法にあるテーマスニペットを、
layout/theme.liquidの<body>行の直下に追加します。
一部のテーマは、デフォルトで CSS を使ってエクスプレスボタンを非表示にしています。例:
- テーマの CSS を確認します。
- Upcart のドロワー内でボタンを非表示または無効にしている CSS ルールがないことを、テーマ開発者に確認してもらいます。
4. レガシー設定が干渉している
- 旧 Express Payments モジュールを開きます(まだ表示されている場合)。
- 以前のオプションのチェックをすべて外して保存します。
- 新しいモジュールで再度テストします。
それでも問題が解決しない場合
Upcart で Shadow DOM を無効にする
Shadow DOM は、安定性を向上させるために Upcart をストアの他のコードから分離します。ただし、まれにこの分離が原因で、Shopify のエクスプレスボタンが正しく更新されないことがあります。 Shadow DOM を無効にする方法:
- Upcart > Cart Editor > Settings > Cart settings に移動し、Advanced Settings を展開します。
- Render Cart in Shadow DOM のチェックを外します。
- 保存して再度テストします。
Shadow DOM をオフにした後は、他のアプリやテーマ要素と Upcart との連携に影響する可能性があるため、必ずカートをテストしてください。 💡 注意: Shadow DOM を無効にするとこの問題は解決する可能性がありますが、テーマとの CSS 競合が発生することがあります。トレードオフの詳細については、Shadow DOM 設定のドキュメントをご覧ください。
さらにサポートが必要ですか?
- テーマ開発者に連絡して、競合するコードや設定を削除してもらってください。
- 高度なテーマ編集や連携の支援については、Shopify Expert に依頼することもできます。
参考資料
- Shopify ヘルプ – 迅速なチェックアウト
- Shopify 開発者ドキュメント – エクスプレス決済ボタン