Shadow DOM の役割
- テーマのグローバル CSS が Upcart のデザインを上書きできなくなります。
- Upcart のスタイルもテーマに干渉しません。
- カートはさまざまなデバイスやテーマで一貫した状態を保ちます。
なぜこれが起こるのか
技術的な考慮事項
- Upcart の内側の要素を対象とする場合は
upcartDocumentOrShadowRootを使用します。 - Upcart の外側の要素(たとえば、Shopify テーマのヘッダーやフッター)を対象とする場合は
documentを使用します。
トラブルシューティングと制限事項
ただし、引き続き問題が発生する可能性のあるシナリオもあります:
- 価格設定アプリ: 別のアプリがカート内の価格やチェックアウトの動作を直接変更する必要がある場合、Shadow DOM は Upcart の内部構造を外部スクリプトから隠すため、それが困難になることがあります。
- テーマレベルの JavaScript:
document.querySelector()を使用するカスタムスクリプトは、Shadow DOM が有効な間、カート要素を見つけられない場合があります。