Skip to main content
Блок Cart items — это список позиций в корзине, отображающий каждый добавленный покупателем товар с его изображением, названием, вариантом, ценой, степпером количества и кнопкой удаления. Это обязательный блок, и это контейнер, содержащий вложенные блоки корзины (строку Product, Subscription upgrade и Custom code), предоставляя структуру, к которой прикрепляются построчные вложенные блоки.
Блок Cart items, показывающий позиции с изображением товара, названием, вариантом, ценой, степпером количества и кнопкой удаления

Строка Product

Внутри Cart items находится вложенный блок Product: собственно строка позиции. Он заблокирован и добавляется автоматически, поэтому каждый блок Cart items всегда содержит ровно одну строку Product, которую нельзя удалить; другие вложенные блоки вы располагаете вокруг неё. Её настройки управляют отображением цены каждой строки: Сама строка отображает изображение товара (со ссылкой на страницу товара, когда доступна), название, вариант, цену и зачёркнутую цену compare-at при наличии, степпер количества и кнопку удаления. Строки бандлов показывают раскрывающийся список своих компонентов.

Оформление текста

Строка Product включает раздел Text в своих настройках Design. Используйте его для управления типографикой отдельных текстовых элементов каждой позиции. Выберите текстовый элемент из селектора, чтобы настроить его параметры: Текстовые элементы, которые можно оформить, сгруппированы по категориям: Product
  • Product title — название товара в каждой строке. Также поддерживает собственный шрифт.
  • Variant — надпись варианта (например, Size: Medium).
  • Subscription plan — надпись плана только для чтения, отображаемая в строках подписки.
Pricing
  • Price — текущая цена строки.
  • Compare-at price — зачёркнутая исходная цена.
  • Savings — надпись экономии (например, Save $5.00). Только размер и межстрочный интервал — жирность и цвет задаются в редакторе Rich Text выше.
Bundle
  • Bundle toggle — раскрывающийся заголовок, разворачивающий список компонентов бандла.
  • Bundle item title — название каждого компонента внутри бандла.
  • Bundle item variant — надпись варианта для каждого компонента бандла.
Если оставить поле пустым, элемент сохраняет значение по умолчанию.
Клик по текстовому элементу прямо в предпросмотре корзины подсвечивает его и автоматически открывает его настройки в панели.

Дизайн тегов скидок

Строка Product включает раздел Discount tags в своих настройках Design. Используйте его для оформления плашек тегов скидок, появляющихся на каждой позиции: Эти настройки применяются только к тегам скидок позиций в блоке Cart items. Теги кодов скидок в блоке Summary оформляются отдельно.

Вложенные блоки и их позиционирование

Cart items — единственный блок, содержащий вложенные блоки. Вложенные блоки отображаются один раз на строку, внутри каждой строки товара, позиционируясь относительно закреплённой строки Product:
  • Вложенные блоки, расположенные перед строкой Product, появляются над содержимым товара в каждой строке.
  • Вложенные блоки, расположенные после строки Product, появляются под содержимым товара в каждой строке.
Поэтому блок Subscription upgrade, помещённый после строки Product, отображается под каждой подходящей строкой, а не один раз внизу всего списка.

Поведение

  • Когда в корзине нет товаров, выдвижная корзина переключается в пустое состояние, и этот блок не показывается.
  • Одновременно выполняется одно изменение корзины. Пока выполняется обновление количества или удаление, элементы управления строки отключены для сохранения консистентности корзины, а затем снова включаются после завершения изменения.
  • Снижение количества строки ниже 1 удаляет её. Количество, отклонённое магазином (например, сверх доступных запасов), синхронизируется обратно с последним допустимым значением.
  • Бандлы изменяются как единое целое. Изменение количества у якорной строки бандла масштабирует весь бандл за одну операцию — если дочерний товар включён по 3 на якорь, увеличение якоря с 1 до 2 доводит этот дочерний товар до 6. Удаление якоря удаляет все элементы бандла сразу.
  • Количество у некоторых бандлов изменить нельзя. Если какой-либо дочерний товар бандла включён с дробным коэффициентом (скажем, 1,5 на якорь), степпер количества этого бандла заблокирован: кнопки +/− и поле количества отключены, а введённые значения не принимаются. Бандл всё ещё можно удалить.
  • Строки подписки показывают свой план. Когда у строки есть план продаж, а вложенный блок Subscription upgrade выключен или не добавлен, строка Product показывает надпись плана только для чтения под вариантом — например, Delivers every month (save 30%). Когда этот вложенный блок включён, он представляет план в собственном выборе, поэтому надпись только для чтения скрывается, а не дублируется.

Размещение и ограничения

  • Область: тело.
  • Максимум: 1 на состояние корзины.
  • Состояние: только заполненная корзина.
  • Заблокирован и добавлен по умолчанию. Cart items нельзя удалить или скрыть, только переместить.

Пользовательский шаблон

Поддерживает пользовательский шаблон на вкладке Code, который заменяет встроенную разметку этого блока вашим JSX. Вот пропсы, которые он получает. У контейнера Cart items пользовательского шаблона нет. У строки Product внутри него — есть, и это самая насыщенная поверхность в корзине: ваш шаблон отображается один раз на строку.

Содержимое строки

price и compareAtPrice — отформатированные строки; всё в line — в центах. Не выполняйте арифметику над price. Вычисляйте из line.finalLinePrice и подобных полей, затем пропускайте результат через formatMoney.

Количество и удаление

Отображение бандла

У якорной строки бандла bundle.children содержит его состав. Дочерние товары никогда не появляются как отдельные строки, поэтому если вы их не отобразите, покупатель не увидит, что входит в бандл:
key дочернего товара равен null для компонента нативного бандла Shopify, поэтому используйте индекс как запасной вариант, как выше.

Дизайн

Оформляйте этот блок в разделе Design его панели настроек. Это переопределения на уровне блока, которые накладываются поверх глобального дизайна и наследуют его, если поля пусты. Что такое настройки дизайна? Подробнее здесь: Настройки дизайна.