Skip to main content
Cart items 区块是购物车中的商品行列表,渲染顾客添加的每个产品,包括其图片、标题、变体、价格、数量步进器和移除控件。它是必需的区块,也是承载购物车子区块(Product 行、Subscription upgradeCustom code)的容器,为按行显示的子区块提供了挂载结构。
Cart items 区块,显示带产品图片、标题、变体、价格、数量步进器和移除控件的商品行

Product 行

Cart items 内部有一个 Product 子区块:即实际的商品行。它是锁定的并自动添加,因此每个 Cart items 区块始终恰好有一个无法移除的 Product 行;你可以围绕它重新排列其他子区块。它的设置控制每行价格的显示方式: 该行本身渲染产品图片(可用时链接到产品页面)、标题、变体、价格及任何划线的 compare-at 价格、数量步进器和移除按钮。捆绑商品行会显示其组成部分的展开列表。

文字样式

Product 行的设计设置中包含 Text(文字)部分。使用它来控制每个商品行中各个文字元素的排版。从选择器中选择一个文字元素以调整其设置: 可设置样式的文字元素按类别分组: Product(产品)
  • Product title(产品标题)— 每行的产品名称。也支持自定义字体族。
  • Variant(变体)— 变体标签(例如 Size: Medium)。
  • Subscription plan(订阅计划)— 显示在订阅商品行上的只读计划标签。
Pricing(价格)
  • Price(价格)— 该行的当前价格。
  • Compare-at price(划线价)— 划线的原价。
  • Savings(节省)— 节省标签(例如 Save $5.00)。仅支持字号和行高——粗体和颜色在上方的富文本编辑器中设置。
Bundle(捆绑)
  • Bundle toggle(捆绑切换)— 展开捆绑组成商品列表的展开标题。
  • Bundle item title(捆绑商品标题)— 捆绑内每个组成商品的标题。
  • Bundle item variant(捆绑商品变体)— 每个捆绑组成商品的变体标签。
任何字段留空都会保持该元素的默认值。
直接点击购物车预览中的某个文字元素会高亮它,并自动在面板中打开其控件。

折扣标签设计

Product 行的设计设置中包含 Discount tags(折扣标签)部分。使用它为每个商品行上显示的折扣标签胶囊设置样式: 这些设置仅适用于 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(设计)部分为此区块设置样式。这些是按区块的覆盖设置,叠加在你的全局设计之上,留空时回退到全局设计。 什么是设计设置?在此了解更多:设计设置