Skip to main content
同一个对象结构贯穿整个 SDK。它是 getCart() 的返回值,是 cart_loadedcart_updated 传给你的处理函数的内容,也是自定义代码区块接收到的内容。
所有金额都以货币的最小单位表示(USD 为分),绝不是格式化后的字符串。5779 表示 $57.79。使用 formatMoney 来显示它。

购物车

itemCount 并不总是 items 的总和。items 镜像真实的 Shopify 购物车,包括抽屉隐藏的附加行,例如运输保护。itemCount 是与购物车徽章一致的面向购物者的数字。要知道”购物者选了多少件商品”,用 itemCount;要遍历购物车正在渲染的行,用 items有两样东西完全不在 items 中:用 setHidden 隐藏的行,以及套装子项(它们被并入其主行)。两者仍计入购物车总额,总额直接来自 Shopify。

购物车行

items 中的每个条目,以及 item_addeditem_removed 上的 item
properties 可能携带购物者提供的输入,例如产品表单的自定义文本字段。请将其渲染为文本,绝不要渲染为原始 HTML。

标识一行

对行进行操作时使用 key,识别产品时使用 variantIdproductId
当属性不同时,同一个变体可以出现在多行上。两个刻字文本不同的刻字马克杯是共享一个 variantId 的两行。这就是操作接受 key 的原因。

行上的价格

三种价格,容易混淆:

套装

当多行被组合成套装时,主行携带一个 bundle 对象。子项被并入其中,不再单独出现在 items 中。参阅组合来自其他应用的套装行了解如何设置组合。 每个子项携带 key(原生组件为 null)、titlevariantTitlequantityperAnchorQtyimageUrlfinalLinePriceoriginalLinePricecompareAtPrice

订阅计划

行的生效计划是 sellingPlan,一次性购买时为 null。要获得整个购物车的答案,读取 hasSubscriptionItems 而不要自己扫描各行,因为它还会计入 items 呈现但 itemCount 跳过的附加行:
行上可用的计划——选择器中的那些——不在购物车对象上。请用 registerSubscriptionOptionsTransformregisterDefaultSubscriptionOptionSelector 来塑造它们。

后续阅读

  • 操作:读取和更改购物车。
  • 事件:这个对象的来源。
  • Hooks:用增强器向行添加你自己的数据。
  • 使用案例:读取这些字段的完整解决方案。