Shadow DOM이 하는 일
- 테마의 전역 CSS가 Upcart의 디자인을 덮어쓸 수 없어요.
- Upcart의 스타일도 테마에 영향을 주지 않아요.
- 다양한 기기와 테마에서 카트가 일관되게 유지돼요.
이런 일이 발생하는 이유
기술적 고려 사항
- Upcart 내부의 요소를 대상으로 할 때는
upcartDocumentOrShadowRoot를 사용하세요. - Upcart 외부의 요소(예: Shopify 테마의 헤더나 푸터)를 대상으로 할 때는
document를 사용하세요.
문제 해결 및 제한 사항
하지만 여전히 문제가 발생할 수 있는 몇 가지 시나리오가 있어요:
- 가격 앱: 다른 앱이 카트 내부에서 가격이나 체크아웃 동작을 직접 수정해야 하는 경우, Shadow DOM은 외부 스크립트로부터 Upcart의 내부 구조를 숨기기 때문에 이를 어렵게 만들 수 있어요.
- 테마 수준 JavaScript:
document.querySelector()를 사용하는 커스텀 스크립트는 Shadow DOM이 활성화된 동안 카트 요소를 찾지 못할 수 있어요.