Skip to main content
Cart items 블록은 장바구니의 라인 아이템 목록으로, 구매자가 추가한 각 상품을 이미지, 제목, 옵션(variant), 가격, 수량 스테퍼, 제거 컨트롤과 함께 렌더링해요. 필수 블록이며, 장바구니의 하위 블록(Product 행, Subscription upgrade, Custom code)을 담는 컨테이너로서 라인별 하위 블록이 연결되는 구조를 제공해요.
상품 이미지, 제목, 옵션, 가격, 수량 스테퍼, 제거 컨트롤과 함께 라인 아이템을 보여주는 Cart items 블록

Product 행

Cart items 안에는 Product 하위 블록이 있어요: 실제 라인 아이템 행이에요. 잠겨 있고 자동으로 추가되므로, 모든 Cart items 블록에는 제거할 수 없는 Product 행이 항상 정확히 하나 있으며, 다른 하위 블록의 위치를 그 주변으로 조정해요. 이 설정은 각 라인의 가격 표시 방식을 제어해요: 행 자체는 상품 이미지(가능한 경우 상품 페이지로 연결), 제목, 옵션, 가격 및 취소선 처리된 compare-at 가격, 수량 스테퍼, 제거 버튼을 렌더링해요. 번들 라인은 구성 요소의 펼침 목록을 표시해요.

텍스트 스타일

Product 행의 Design 설정에는 Text 섹션이 있어요. 각 라인 아이템의 개별 텍스트 요소의 타이포그래피를 제어하는 데 사용하세요. 선택기에서 텍스트 요소를 선택해 설정을 조정하세요: 스타일을 지정할 수 있는 텍스트 요소는 카테고리별로 그룹화되어 있어요: Product
  • Product title — 각 라인의 상품 이름이에요. 커스텀 폰트 패밀리도 지원해요.
  • Variant — 옵션 라벨이에요(예: Size: Medium).
  • Subscription plan — 구독 라인에 표시되는 읽기 전용 플랜 라벨이에요.
Pricing
  • Price — 라인의 현재 가격이에요.
  • Compare-at price — 취소선 처리된 원래 가격이에요.
  • Savings — 절약 라벨이에요(예: Save $5.00). Size와 line height만 지정할 수 있어요 — 굵기와 색상은 위의 Rich Text Editor에서 설정해요.
Bundle
  • Bundle toggle — 번들의 구성 요소 목록을 확장하는 펼침 헤더예요.
  • Bundle item title — 번들 내부 각 구성 요소의 제목이에요.
  • Bundle item variant — 각 번들 구성 요소의 옵션 라벨이에요.
필드를 비워두면 요소의 기본값이 유지돼요.
장바구니 미리보기에서 텍스트 요소를 직접 클릭하면 해당 요소가 강조 표시되고 패널에서 컨트롤이 자동으로 열려요.

할인 태그 디자인

Product 행의 Design 설정에는 Discount tags 섹션이 있어요. 각 라인 아이템에 표시되는 할인 태그 알약(pill)의 스타일을 지정하는 데 사용하세요: 이 설정은 Cart items 블록의 라인 아이템 할인 태그에만 적용돼요. Summary 블록의 할인 코드 태그는 별도로 스타일이 지정돼요.

하위 블록과 배치 방식

Cart items는 하위 블록을 담는 유일한 블록이에요. 하위 블록은 라인마다 한 번씩, 모든 상품 행 안에 렌더링되며, 고정된 Product 행을 기준으로 배치돼요:
  • Product 행 앞에 배치된 하위 블록은 각 라인에서 상품 콘텐츠 위에 표시돼요.
  • Product 행 뒤에 배치된 하위 블록은 각 라인에서 상품 콘텐츠 아래에 표시돼요.
따라서 Product 행 뒤에 배치된 Subscription upgrade는 전체 목록 하단에 한 번이 아니라, 대상이 되는 각 라인 아래에 표시돼요.

동작 방식

  • 장바구니에 아이템이 없으면 드로어가 빈 상태로 전환되고 이 블록은 표시되지 않아요.
  • 장바구니 변경은 한 번에 하나씩 실행돼요. 수량 업데이트나 제거가 진행되는 동안에는 장바구니 일관성을 유지하기 위해 행의 컨트롤이 비활성화되고, 변경이 완료되면 다시 활성화돼요.
  • 라인의 수량을 1 미만으로 낮추면 해당 라인이 제거돼요. 스토어가 거부하는 수량(예: 재고 초과)은 마지막 유효 값으로 다시 동기화돼요.
  • 번들은 하나의 단위로 변경돼요. 번들의 앵커 라인에서 수량을 조정하면 전체 번들이 한 번의 작업으로 배율 조정돼요 — 자식 아이템이 앵커당 3개로 포함되어 있다면, 앵커를 1에서 2로 올리면 그 자식은 6이 돼요. 앵커를 제거하면 번들의 모든 구성원이 한꺼번에 제거돼요.
  • 일부 번들은 수량을 변경할 수 없어요. 번들의 자식 중 하나라도 소수 비율(예: 앵커당 1.5개)로 포함되어 있으면 해당 번들의 수량 스테퍼가 잠겨요: +/− 버튼과 수량 필드가 모두 비활성화되고, 입력한 수량도 허용되지 않아요. 번들 제거는 여전히 가능해요.
  • 구독 라인은 플랜을 표시해요. 라인에 판매 플랜이 있고 Subscription upgrade 하위 블록이 꺼져 있거나 추가되지 않은 경우, Product 행이 옵션 아래에 읽기 전용 플랜 라벨을 표시해요 — 예: Delivers every month (save 30%). 해당 하위 블록이 활성화되면 자체 선택기에서 플랜을 표시하므로, 중복되지 않도록 읽기 전용 라벨이 숨겨져요.

배치 및 제한

  • 영역: 본문.
  • 최대 개수: 장바구니 상태당 1개.
  • 상태: 채워진 장바구니에서만.
  • 잠겨 있으며 기본으로 추가돼요. Cart items는 제거하거나 숨길 수 없고, 위치만 변경할 수 있어요.

커스텀 템플릿

Code 탭에서 커스텀 템플릿을 지원하며, 이 블록의 기본 마크업을 여러분의 JSX로 대체해요. 다음은 템플릿이 받는 props예요. Cart items 컨테이너에는 커스텀 템플릿이 없어요. 그 안의 Product 행에는 있으며, 장바구니에서 가장 풍부한 영역이에요: 템플릿이 라인마다 한 번씩 렌더링돼요.

라인 콘텐츠

pricecompareAtPrice는 포맷된 문자열이고, line의 모든 값은 센트 단위예요. price로 산술 연산을 하지 마세요. line.finalLinePrice 등에서 계산한 다음 결과를 formatMoney에 통과시키세요.

수량과 제거

번들 렌더링

번들의 앵커 라인에서 bundle.children이 번들 내용을 담고 있어요. 자식은 절대 자체 행으로 나타나지 않으므로, 렌더링하지 않으면 구매자가 번들에 무엇이 들어 있는지 볼 수 없어요:
Shopify 네이티브 번들 구성 요소의 경우 자식의 keynull이므로, 위와 같이 인덱스를 대신 사용하세요.

디자인

설정 패널의 Design 섹션에서 이 블록의 스타일을 지정하세요. 이는 전역 디자인 위에 적용되는 블록별 재정의이며, 비어 있으면 전역 디자인으로 대체돼요. 디자인 설정이 무엇인가요? 자세한 내용은 여기에서 알아보세요: 디자인 설정.