EN
Shopify 知识库 · 概念

商品捆绑与组合:Bundles、变体组合与库存

说明 Shopify Bundles 的固定捆绑、多件装与混搭的实现方式,捆绑库存怎样按组成项计算,订单与退货中捆绑的呈现,与折扣、变体组合、交叉销售的区别,以及官方写明的不兼容项与页面间表述差异。

官方把捆绑定义为两个或更多相关商品的组合,通常带折扣出售。它解决「一次卖一组商品并让库存、订单与结账认得这是一组」;它不等于折扣,不等于把选项做成变体,也不等于「常一起买」的推荐。官方页写明要在店铺里创建捆绑,必须已安装一个 bundles 应用。Product bundles。

本库哪些内容依赖它

本文是该平台机制的权威来源,其他文章只写各自页面语境下的用法。

三种实现,先分清

做法本质官方页所述 / 备注
Shopify Bundles:固定捆绑一个「父商品」,包含指定的组成商品资格页称固定捆绑与多件装用免费的 Shopify Bundles 应用
Shopify Bundles:多件装同一商品的多件组合创建方式是复制商品(Duplicate product),见 Shopify Bundles 页
混搭(mix-and-match)顾客自己选组成资格页称需第三方应用或 Shopify Plus 的 API;「dynamic bundles」的定义官方页未读到
变体组合用选项与变体表达「套装 A / 套装 B」不是捆绑功能,库存记在变体自身,不随组成商品联动;见商品与变体
折扣型「捆绑」商品各自独立,靠折扣(如 Buy X get Y)让组合更便宜不产生捆绑父商品,订单里是普通行项目;见折扣

后两行是本库对比用的归类,不是官方的类型名称。选哪种取决于三个问题:组成项是否要各自扣库存、订单里是否要显示成一组、价格是否由一个固定组合价决定。

在哪里配置

  • Shopify Bundles 页写明:先创建组成商品,再进入 Apps > Bundles 点 Create bundle;也可从商品的 Bundled products 区编辑。
  • 新建后捆绑处于 Draft 状态,需激活后才发布。
  • 编辑时可调整数量与变体,并合并同名选项(如尺码),让顾客只选一次。

与主题、Liquid 和 API 的连接

  • 捆绑在店面是一个商品,走普通商品页与加购流程;本次读到的官方页没有给出 Liquid 对象或 Storefront API 层面的捆绑专用字段,未核验。
  • 定制捆绑价:Bundles 页提到可手动编辑捆绑价,或用 Cart transform 做定制捆绑;Scripts 页把 Cart Transform functions 列为修改价格的替代方案。Cart Transform 的接口细节本次未读。
  • 资格页写明使用捆绑需要已升级的结账,与 checkout.liquid 定制不兼容;店铺须使用 Online Store 渠道或自定义店面。结账扩展见结账自定义。

库存怎样计算

资格页的算法:对捆绑中的每个组成商品,用其可用库存除以捆绑所需的数量,取其中最小的结果作为捆绑可售数。库存未跟踪、或设置为 Continue selling when out of stock 的组成商品,不参与这次计算。

Shopify Bundles 页另写:捆绑不按地点跟踪库存,只按总库存。这与库存与地点里「有货不等于能配送」的思路并存:需要按地点排查时,要回到各组成商品的库存记录,而不是看捆绑数。

订单、退货与折扣中的呈现

  • 订单:资格页写明订单中的捆绑显示为嵌套的行项目组;订单邮件页写明自 2024-12-06 起,订单确认、发票、付款通知与 POS 收据使用分组视图,而退货相关通知把组成项分开显示。已自定义通知模板的店铺需自行更新代码。
  • SKU 与重量:资格页写明捆绑有独立于组成商品的 SKU,改 SKU 需重新创建捆绑;Shopify Bundles 页写明订单里列出的是组成项的 SKU,重量也由组成项计算。两处并列,关系以后台订单实际显示为准。
  • 退货:资格页写明不能直接把捆绑标记为最终销售,退货资格取决于各组成商品是否为最终销售;捆绑不能用于换货,即使换成同一捆绑。
  • 退款:本次未读到捆绑专属的退款说明,通用规则见退货、退款与补回库存,具体到每个组成项能否单独退,未核验。
  • 折扣:Shopify Bundles 页写明折扣先作用于父捆绑商品,再按加权价格分摊到组成项(摘要读取)。Scripts 页写明由 line item scripts 创建的折扣不会应用到捆绑,替代办法是为捆绑建折扣码、手动改捆绑价或用 Cart Transform functions。折扣类型与组合规则见折扣。
  • 草稿订单:草稿订单页写明价格锁不支持商品捆绑;资格页写明草稿订单可能默认使用不支持捆绑的旧版结账。

与 cross-sell 的区别

交叉销售与追加购买是「推荐并让顾客决定是否加购」,各商品保持独立行项目与独立库存;捆绑是「一个固定组合」,有独立 SKU、自己的价格与组成关系。同一页可以先推荐、再提供捆绑,但推荐的商品不会因此变成捆绑。

限制、数值与易错点

核验于 2026-09-29,来源为上面列出的帮助中心页面;摘要读取处已标出。

  1. 不兼容项(资格页):购买选项(订阅、预购、try-before-you-buy)、Shopify Subscriptions 应用、自定义商品、其他捆绑(不能嵌套)、换货;官方原文写明「Bundles don't support import, export, or bulk editing capabilities」。
  2. 数值(Shopify Bundles 页,摘要读取):固定捆绑最多 30 个组成项,dynamic bundles 最多 150 个,每个组成项最多 2000 件,每个捆绑最多 3 个选项与 100 个变体;使用前重读该页。
  3. 价格不自动联动:组成商品改价后,捆绑价不会自动更新,需手动改。
  4. 组成项变化会使捆绑退回 Draft:变体标题被改或选项被删,可能使捆绑因不再有效而进入 Draft。
  5. 销售渠道(两页并列,不选边):Product bundles 总览写明可在 Online Store、Shop、Shopify POS 渠道销售,固定捆绑还可在 Google & YouTube 渠道;Shopify Bundles 页写明捆绑须用 Online Store 或 Headless 店面,其他渠道不受支持。
  6. 套餐:Shopify Bundles 页称应用在所有套餐上可用且免费;第三方混搭应用的定价与能力本文不评价,也不推荐具体应用。
  7. 配送:资格页写明运费按组成商品各自的配送配置计算(摘要读取)。

验证一次

  1. 建两个跟踪库存的组成商品,创建固定捆绑并激活,记录各组成项库存;
  2. 把其中一个组成项库存改为不足以凑一份,确认捆绑变为不可售;再把它设为 Continue selling when out of stock,观察捆绑可售数是否不再受它限制;
  3. 下一单,检查后台订单、订单邮件、发票中的行项目与 SKU 显示;
  4. 对该订单做部分退货或退款,核对退款金额、库存补回与退货通知中的组成项显示;
  5. 分别用折扣码、Buy X get Y 折扣与手动改价三种方式给出组合价,对比结账明细与订单折扣分摊;
  6. 试着把捆绑加入订阅或预购商品的销售计划,确认不兼容的实际提示。

待继续完善

  • 混搭与 dynamic bundles 的官方定义、Plus API 与 Cart Transform 的接口细节;
  • 捆绑的退款、组成项单独退货与库存补回的官方专门说明;
  • Liquid 与 Storefront API 对捆绑及组成项的读取方式;
  • 两页对销售渠道的表述差异,需要在真实店铺核对。