EN
Shopify 知识库 · 概念

销售计划:订阅、预购与试用的购买选项机制

说明 Shopify 销售计划与销售计划组是什么,主题必须提供的选择器与 selling_plan 输入,购物车与订单里的呈现,Shopify Subscriptions 与预购、试用应用的边界,以及支付网关与渠道限制。

销售计划(selling plan)是 Shopify 用来描述“同一个变体除了一次性购买,还能怎样买”的资源:订阅、预购、先试后买都表达成销售计划,由应用创建、挂到商品或变体上,主题负责让顾客选择,购物车、结账与订单负责显示结果。本文解决“这套机制由哪些对象组成、主题必须接哪些入口、哪些限制来自平台”,不解决订阅应用怎样计费续订的内部实现,也不替代各应用自己的设置说明。

本库哪些内容依赖它

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

核心对象与概念

对象含义备注
购买选项(purchase options)帮助中心列出三类:订阅、预购、先试后买(TBYB)三者在开发层都用销售计划表达
销售计划组(SellingPlanGroup / Liquid selling_plan_group)共享同一种销售方式与选项的一组计划,关联商品与变体Liquid 属性含 name、options、selling_plans、app_id、selling_plan_selected;Admin API 里 name 是买家可见名,merchantCode 是商家可见名
销售计划(selling_plan)一种具体的购买方式,如“每周配送”含 id、name、description、options、checkout_charge、price_adjustments、recurring_deliveries、selected、group_id
销售计划分配(selling_plan_allocation)某个计划作用于某变体或行项目后的价格结果含 price、compare_at_price、per_delivery_price、checkout_charge_amount、remaining_balance_charge_amount、unit_price
结账收款(checkout_charge)下单时收多少value_type 为 percentage 或 price;订阅始终是 100% 的百分比
四类策略(销售计划开发页)计费、配送、库存、定价订阅开发概览把“按次付款”与“预付”列为两种订阅形态

价格相关字段一律为币种最小单位,并按顾客的展示币种给出。price_adjustments 数组最多两项,无调整时为空。

在哪里配置

  • Shopify Subscriptions(官方免费订阅应用):从 App Store 安装;帮助中心写明装好后要先设置订阅计划,再到 Online Store > Edit theme 的商品模板里,于 Product information 下 Add block > Subscription widget,并确认主题编辑器 App embeds 中的 Subscription widget 处于关闭状态;老式主题只支持 Debut 15.0 及以上、Brooklyn 17.0 及以上,需在 product-template.liquid 加 <div class="subscriptions_app_embed_block"></div>。
  • 顾客管理入口:帮助中心写明可在 Settings > Checkout 的应用设置中启用订阅管理页、订单页操作按钮与感谢页链接。
  • 预购与先试后买:帮助中心写明没有内置功能,必须从 App Store 安装对应应用,并在应用内完成设置,之后在 Shopify 后台管理订单。
  • 第三方订阅应用:帮助中心订阅概览写明可用第三方订阅应用;各应用的设置路径、顾客入口未核验。

与主题、Liquid 和 API 的连接

入口官方页面所写
商品页选择器主题需在商品表单内提供选择器,选项来自 product.selling_plan_groups;开发指南示例用单选按钮
提交字段表单内需有 name="selling_plan" 的输入,值为计划 ID,未选则为空
必选计划product.requires_selling_plan 在全部变体都要求计划时为真;variant.requires_selling_plan 为真时不能一次性购买
变体切换预购与试用指南要求用 JavaScript 在变体变化时更新可选计划;variant.selling_plan_allocations 给出该变体的分配数组
当前选择product.selected_selling_plan 由 URL 参数 selling_plan 决定;另有 selected_selling_plan_allocation 与 selected_or_first_available_selling_plan_allocation
购物车有计划时显示 line_item.selling_plan_allocation.selling_plan.name;无计划时该值为 nil
订单页显示计划名;订单行项目里 compare_at_price、price_adjustments、selling_plan.group_id、selling_plan.options、selling_plan_group_id 等不可用,页面建议改用 selling_plan.name
Ajax/cart/add.js 用 selling_plan 参数传计划 ID;/cart/change.js 传计划 ID 设置,传 null 或空字符串移除
Storefront APICartLineInput.sellingPlanId,用于 cartCreate 与 cartLinesAdd;SellingPlanGroup 需要 unauthenticated_read_selling_plans 访问范围
Admin APIsellingPlanGroupCreate、sellingPlanGroupUpdate、sellingPlanGroupAddProducts、sellingPlanGroupAddProductVariants

限制、数值与易错点

核验于 2026-09-29,逐条标来源;订阅注意事项在 subscriptions/considerations 与 shopify-subscriptions/considerations 两处都有页面,两页的网关、渠道、草稿订单、折扣、礼品卡与扣款时间表述一致;主题与其他条目只在 shopify-subscriptions 页读到。

  1. 预购的支付网关:预购帮助页写明目前仅适用于使用 Shopify Payments 或 PayPal Express 的商家;可收全额、部分或不收预付款。
  2. 订阅的支付网关(官方页面并列):Shopify Subscriptions 注意事项页写明店铺须使用五种网关之一(Shopify Payments、PayPal Express、Authorize.net、Adyen、Stripe),并写明 Stripe 仅限部分商家、Adyen 限于已获批准的组织、网关可用性取决于地区与网关条款;而支付概览页写明销售订阅产品需以 Shopify Payments 为主网关(见 支付与结账)。两页表述不同,未判定哪一页更新,以商家后台与应用安装时的实际提示为准。
  3. 销售渠道:同一页写明订阅商品只在在线商店、Shopify POS、Shop 与自定义店面渠道受支持;订阅开发页另写明 POS 上的订阅需要 Shopify Payments。
  4. 不兼容项:同一页写明订阅不能用于草稿订单,订单编辑 API 不支持订阅,Bundles 与 Shopify Subscriptions 应用不兼容;销售计划开发页写明订阅结账不支持混合配送方式。
  5. 折扣与礼品卡:同一页写明在 Discounts 中创建的自动折扣可应用于订阅订单,用礼品卡支付订阅只作用于第一次付款(见礼品卡),折扣的总体规则见折扣。
  6. 扣款时间:同一页写明在订阅到期日的次日上午 10:00(店铺本地时间)扣款。
  7. 主题要求:shopify-subscriptions 注意事项页写明 Shopify Subscriptions 需要支持 sections 与 blocks 的主题,页面列出 Online Store 2.0 主题、Horizon 系列、Debut 15.0+ 与 Brooklyn 17.0+;Dawn 与 Horizon 是否内置选择器见购买区模块的固定版本结论。
  8. 卸载数据:预购与试用页写明卸载应用后除顾客支付信息外的相关数据 48 小时后删除;Admin API 页写明销售计划组及关联记录在创建它们的应用被卸载 48 小时后自动删除。
  9. 未公开数值:读到的页面均未给出每组计划数、每商品组数与选项数上限,不得据此断言“无上限”。
  10. 资格:订阅开发页与主题页均写明商家需满足 Shopify 的订阅资格标准;资格细则页只返回目录,未核验。

验证一次

  1. 在测试店铺创建一个带一次性购买与一个计划的商品,确认商品页选择器显示计划,且 selling_plan 输入值随选择变化;
  2. 切换变体,确认可选计划同步;对必选计划商品,确认一次性购买被隐藏;
  3. 加购后核对购物车行显示所选计划名,结账收款额与计划设置一致;
  4. 用 /cart/change.js 传空字符串移除计划,确认行项目回到一次性购买;
  5. 下测试单后,在订单页确认计划名显示;顾客登录后确认订阅管理入口(Shopify Subscriptions);
  6. 更换买家地区与币种,确认价格与收款额按展示币种更新,且所用网关支持该场景。

记录变体、计划 ID、请求与最终购物车行,方法参考购买验证。

待继续完善

  • Shopify Subscriptions 资格细则与应用间比较页未读到正文;
  • 预购与先试后买的具体应用行为、部分收款后续扣款展示未核验;
  • 动态结账按钮与销售计划、缺货预订的组合未实测;
  • 各国订阅自动续费与取消的法规要求未核验,需要合规确认。