enricher 등록하기
카트가 로드되거나 변경될 때마다 Aftersell은 카트의 모든 상품 또는 옵션에 대해 fragment를 가져와요. 이 요청은 논블로킹이에요: 카트는 즉시 렌더링되고 데이터가 도착하면
cart_updated를 다시 발생시켜요. 느리거나 실패하는 fragment가 카트를 지연시키거나 망가뜨리는 일은 절대 없어요.
데이터 읽기
line.metadata.delivery는 undefined예요. 항상 읽기를 가드하세요.
카트에서 렌더링하기
props.line으로 받아요:
옵션 수준 데이터
onType: 'ProductVariant'로 설정하세요:
메타필드 그 이상
Product나 ProductVariant에서 노출하는 모든 것이 작동해요:
제대로 처리해야 할 것들
- 모든 읽기를 가드하세요.
metadata의 기본값은{}이고, 요청이 resolve될 때까지 여러분의 네임스페이스는undefined예요. 카트는 항상 데이터 도착 전에 렌더링돼요. - 각
id는 고유한 네임스페이스예요. 다른 앱이 등록한 것을 포함해 여러 enricher가 충돌 없이 공존해요. - 메타필드는 Storefront에서 보여야 해요. Storefront API에 노출되지 않은 메타필드는
null을 반환해요. 아무것도 돌아오지 않으면 Shopify admin에서 정의를 확인하세요. - fragment는 작게 유지하세요. 카트의 모든 상품에 대해, 카트가 변경될 때마다 실행돼요. 필요한 필드만 요청하고 전부 요청하지 마세요.
- 설정 시점에 등록하세요. 훅이므로 Initialization 스크립트 맨 위에 두어야 해요.
- 중괄호는 균형을 이뤄야 해요. fragment에 바깥 중괄호는 없어야 하지만, 중첩된 선택에는 각각 짝이 맞는 중괄호가 필요해요. 균형이 맞지 않는 fragment는 거부돼요.
다음 단계
registerCartEnricher: 전체 훅 레퍼런스.- 커스텀 코드 블록: 데이터 렌더링.
- Cart 객체: 라인에서
metadata가 위치하는 곳.