一条订单规则很简单。Shopify 本身就能限制单个购物车里放入多少件某商品。但真正让商家赔钱的问题需要多条规则协同工作:一个批发商店需要一个最小值加上一个整包倍数加上一个上限;一次限量发售需要一个每客户上限加上一个截止时间加上一个库存天花板;一家厨房需要营业时间加上一个当日截止时间加上一个产能限制。超卖和错单也不是小问题——IHL Group 的分析师估计,全球缺货和积压的成本高达每年逾 $1 trillion(IHL Group——方向性数据,但重点在于量级)。
这就是在 Shopify 上叠加这些规则的食谱书。每个食谱都是一个真实的商家场景、解决它的精确规则组合、如果你不小心就会毁掉它的坑,以及 Shopify 原生功能走到尽头的地方。它是拿来速览的:找到最接近你的场景,把那套组合复制过去。
快速回答:订单规则在 Shopify 上如何叠加?
**订单规则以 AND 方式组合——每一条适用规则都必须通过,因此最严格的那条胜出。**你按作用范围(商店、系列、产品或变体)来分层设置:数量规则、一个每客户上限,以及时间规则(营业时间、截止时间、产能),然后通过一个 Shopify Function 在结账时强制整套规则。Shopify 唯一的原生控制是每次结账的加购上限,所以叠加需要像 OrderRules 这样的应用。
规则的基本配料
下面的每个食谱都由这些基本单元搭建而成。把这些配料学一遍,之后的食谱就只是组合而已。
| 规则 | 作用 | 作用范围 | Shopify 原生支持? |
|---|---|---|---|
| 最小起订量(MOQ) | 设定下限——"至少 N" | 商店/系列/产品/变体 | 否 |
| 每单上限 | 限制单笔订单——"不超过 N" | 商店/产品/变体 | 仅每次结账的加购限制 |
| 步进/倍数 | 强制按倍数购买——"6、12、18……" | 产品/变体 | 否 |
| 最小订单金额(MOV) | 以货币金额而非件数设定下限 | 商店/系列 | 否 |
| 每客户限购 | 跨订单限制每位购物者的件数 | 商店/产品 | 否 |
| 营业时间 | 在非营业时间拦截结账 | 商店 | 否 |
| 订单截止 | 在某个时间/日期关闭下单 | 商店/产品/交付日期 | 否 |
| 产能上限 | 限制每日或每时段的订单量 | 商店/日期/时段 | 否 |
贯穿始终的一点:Shopify 原生只给你其中一项(针对单个商品、单次结账的加购上限)。其他所有规则——以及每一种组合——都来自用 Function 在结账时强制执行规则。关于其中的机制,参见Shopify 结账校验如何拦截订单。
唯一的原则:规则以 AND 方式组合
在进入食谱之前,先讲统领它们的那条规则:**当多条规则作用于同一个购物车时,它们以 AND 方式组合——每一条都必须通过,客户体验到的是最严格的那条。**一个 8 件的购物车面对最小值 6、步进 2 和最大值 20,三条全部通过。一个 7 件的购物车过不了步进那关。第 9 件面对每客户上限 8 时会过不了这道上限,即便数量规则都没问题。
有两个后果值得牢牢记住:
- **矛盾会锁死产品。**把最小值设在高于最大值时,没有任何数量能同时满足两者——产品变得无法购买。始终把规则组合设计成一个收窄的范围。
- **重叠的作用范围会都生效。**如果一个产品身处两个各自设了上限的系列,两个上限都在起作用,更紧的那个胜出。有意的叠加很强大;无意的叠加就是一张客服工单。
记住这一点,下面的食谱就能干净利落地组合起来。
食谱:B2B/批发整箱包装
**场景:**你按固定整箱包装向贸易买家销售,想要一个真正的最小值、整包倍数和一个天花板。
规则组合:
- 步进 6(或你的整包尺寸)——买家只能下 6、12、18……
- 最小起订量 6——步进的倍数,让下限和整包保持一致。
- 每单上限(比如 240)——一个合理的天花板,用来标记误输的大批量。
- 可选的最小订单金额,在件数下限之上再加一个货币下限。
**易踩的坑:**光有最小值而没有步进并不能强制整包——买家先下 6,再下 7,再下 13,你的整箱物流就乱了套。最小值必须是步进的倍数。完整细节见按倍数/整箱销售和 MOQ 指南。
**原生的天花板:**Shopify 的原生 B2B 数量规则只在 B2B/批发场景中、按变体覆盖增量,且不做跨变体汇总;而加购上限根本无法设置商店最小值。
食谱:一次公平的限量发售
**场景:**一次备受期待、库存有限的发售,你想把它均摊给真实客户,而不是被某个买家或机器人一扫而空。在最火爆的发售上,反机器人厂商报告称非自然流量会飙升至约 99%(Kasada、Queue-it——厂商报告,方向性参考)。
规则组合:
- 每客户限购 1 件,跨订单追踪——而不是每个购物车。
- 禁止访客结账/要求登录——让上限绑定到某个身份。
- 每日/库存上限等于本次发售量,让它不会超卖。
- 发售截止——结账在设定的时间开启和关闭。
**易踩的坑:**每次结账的限制不是每客户限购——十笔独立订单各自都能通过每购物车上限。而访客结账正是每客户限购无法覆盖的漏洞。参见每客户与每次结账限购的区别和反黄牛指南。
**原生的天花板:**Shopify 有原生的机器人 CAPTCHA,但对普通店面没有每客户购买上限。为最大规模的发售把这套组合与抽签或排队应用搭配使用——参见如何井然有序地做一次限量发售。
食谱:当日鲜食
**场景:**一家面包店或生鲜食品店接收必须真正做出来并交付的当日订单。
规则组合:
- 订单截止(比如下午 2 点)——过后当日下单关闭,顺延到第二天。
- 每日产能上限——厨房那天能生产的最大订单量。
- 营业时间——打烊时拦截结账,这样就不会有你根本做不出来的凌晨 2 点订单。
**易踩的坑:**截止时间对时区敏感——按商店所在时区设置截止时间,否则一个隔了三个时区的客户就会溜过去。而产能上限只有在结账时强制执行才有效,光是当作一条提示显示是不行的。参见设置截止时间和交付产能限制。
**原生的天花板:**Shopify 没有原生的截止时间、没有每日订单上限,也没有营业时间结账拦截。这三样都来自规则层——从如何设置营业时间开始。
食谱:按订单定制的工作室
**场景:**按订单打造的家具、陶艺或定制品,你卖的是产能而不是库存。需求是真实的——Deloitte 发现大约三分之一的消费者对定制化产品感兴趣,并愿意为此多付约 20% 的溢价(方向性结论)。
规则组合:
- 前置周期交付日期——客户看到"3–4 周内发货",无法选一个不可能的日期。
- 每产品每周生产上限——费时费工的慢件比快件设更紧的上限。
- 交付截止——在给定前置周期下,仍能赶上所选日期的最后一笔订单。
**易踩的坑:**库存 ≠ 产能。Shopify 计的是库存;一家按订单定制的店铺没有库存,所以原生的库存限制无法刻画"我这周能做多少件"。给速率设上限。完整打法见按订单定制的前置周期与生产上限。
**原生的天花板:**没有原生的前置周期引擎、没有每周订单上限、没有生产截止。OrderRules 就是产能/前置周期这一层;再搭配一个产品定制器来处理选项本身。
食谱:预售一批而不超卖
**场景:**你正为一个只制造一次的批次接受预售,绝不能卖得超过这一批能容纳的量。
规则组合:
- 预售总量上限等于批次规模——一个在批次订满时停止的每产品订单限制。
- 每客户限购,这样单个买家无法囤下整批发售量。
- 预售截止日期——预售关闭、生产锁定的那个节点。
**易踩的坑:**预售不是按订单定制——预售卖的是一个将在某个日期发货的固定批次,所以起约束作用的限制是总件数,而不是每周的制造速率。打开 Shopify 的"售罄后继续销售"会彻底解除刹车,让预售冲破批次。改为给总量设上限吧。(对于购买后再制造的商品,用按订单定制那个食谱。)
**原生的天花板:**Shopify 没有原生的"把预售限制在总共 N 件"——库存要么在零处拦截,要么无限制地超卖。
食谱:本地食品配送
**场景:**一家在自己片区内配送的食品店,想要一个真正的订单最小值、营业时间强制和每时段产能。
规则组合:
- 营业时间——店铺打烊时不允许结账。
- 最小订单金额——一个配送下限,让小额订单不至于亏钱。
- 每时段产能上限——限制每个配送窗口的订单量。
- 在配送之外提供自提选项。
**易踩的坑:**Shopify 原生的本地配送只对 Shop Pay 生效——不支持 Apple Pay、Google Pay、Amazon Pay 或 PayPal——所以一个用钱包的买家可以绕开原生配送设置。服务器端规则则跨每一种支付方式强制执行。场景演练见食品店的本地配送。
**原生的天花板:**上面提到的仅限 Shop Pay 的局限,再加上没有原生的 MOV 或每时段上限。
食谱:订阅盒的窗口
**场景:**一个每个周期都会售罄的月度盒子,需要在满员时关闭注册。
规则组合:
- 每周期新注册上限——限制在一个周期之前你接受多少新订阅者。
- 注册截止——过后新注册顺延到下一周期的日期。
- 如果几个盒子档位共享一个生产天花板,则设每系列产能。
易踩的坑——最大的那个:结账校验 Functions 会在新注册/结账上运行,但不支持订阅的周期性续订订单。所以这套组合把关的是谁在什么时候加入,而不是随后的续订。别想用这些规则来限制续订——它们不会被评估。细节见Shopify 与订阅盒。
**原生的天花板:**订阅应用(Recharge、Appstle、Seal)对周期计费,但不会限制每周期盒子数量,也不会在满员时关闭注册——那是它们旁边的规则层。
食谱:限时抢购的公平性
**场景:**一次限时促销,你想让它触达许多客户,而不是被少数人扫走优惠。
规则组合:
- 对促销商品设每客户限购。
- 每单上限作为第二道天花板。
- 营业时间/时间窗口,让促销只在预期时段进行。
**易踩的坑:**前端的"限购 1 件"横幅只是装饰——用快捷钱包的购物者根本看不到购物车页面的脚本。要在服务器端强制这道上限。相关阅读:每客户订单限购。
**原生的天花板:**没有原生的每客户上限;加购上限只限制一个购物车,所以重复下单会通过。
食谱速览
| 场景 | 规则组合 | 关键的坑 |
|---|---|---|
| 批发整箱包装 | 步进 + MOQ(步进的倍数)+ 上限 + MOV | 光有最小值没有步进会打破整包 |
| 限量发售 | 每客户 1 件 + 禁止访客 + 库存上限 + 截止 | 每次结账 ≠ 每客户;访客结账漏洞 |
| 当日鲜食 | 截止 + 每日产能 + 营业时间 | 截止时区;必须在结账时强制 |
| 按订单定制 | 前置周期日期 + 每周上限 + 交付截止 | 库存 ≠ 产能——给速率设上限 |
| 预售批次 | 预售总量上限 + 每客户 + 截止日期 | 给总件数设上限,而不是制造速率 |
| 本地食品配送 | 营业时间 + MOV + 每时段上限 + 自提 | 原生本地配送仅限 Shop Pay |
| 订阅盒 | 新注册上限 + 注册截止 + 系列上限 | Functions 不在续订上运行 |
| 限时抢购公平性 | 每客户 + 每单上限 + 时间窗口 | 前端限制可被绕过 |
Shopify 原生功能触及天花板的地方
这些食谱一次次撞上同一堵墙,所以值得明说。原生地,Shopify 给你:
- 一项数量控制——针对单个商品、单次结账的加购上限(设置 → 结账)。
- B2B 数量规则——最小值和增量,但只在 B2B/批发场景中,按变体,且不跨变体汇总。
- 登录和高风险表单上的机器人 CAPTCHA。
仅此而已。没有原生的商店层最小值、没有跨订单的每客户上限、没有营业时间结账拦截、没有截止时间、没有每日产能,也没有任何方式来组合其中的任何一项。历史上,一些商家用 Shopify Scripts 来填补这个空缺,但 Scripts 正在被淘汰(结账 Scripts 将在 2026 年停止运行),取而代之的是 Shopify Functions——而这正是一款现代规则应用所使用的机制。整体图景见Shopify 订单规则完全指南。
如何搭建你自己的规则组合
搭建一套组合每次都是同样的五步,无论是哪个食谱:
- **确定范围。**决定这条规则作用于整个商店、一个系列、一个产品还是一个变体——作用范围正是让不同产品承载不同规则的关键。
- **设置数量规则。**最小值、最大值、步进。让最小值是步进的倍数。
- **添加每客户限购。**跨订单,并要求登录,让它绑定到某个身份。
- **添加时间规则。**营业时间、截止、产能——让订单只在你能履约的时候进来。
- **强制并测试。**通过一个 Function 在结账时运行整套规则,然后逐条规则地去尝试破坏它来测试。
叠加规则时的坑
那些会把一套好组合变成客服队列的横向错误:
- 最小值高于最大值会锁死产品——没有任何数量符合条件。
- 光有最小值而没有步进撑不住整包尺寸。
- 重叠的作用范围会叠加——更严格的规则胜出,有时出人意料。
- 访客结账会击破任何每客户限购——要求登录。
- 续订不会被评估——订阅规则把关的是注册,而不是周期性订单。
- 时区漂移会让远方的客户溜过一个截止时间——按商店所在时区设置时间。
- 仅前端的限制只是装饰——快捷钱包会绕过它们;要在服务器端强制。
上线前测试你的组合
一套你没试过去破坏的组合就是一个猜测。上线前,逐一下达违反每条规则的测试订单:
- 一笔低于最小值和一笔超过最大值——两者都应被拦截。
- 一个偏离步进的数量(步进 6 时下 7)——应被拦截。
- 同一账户上的第二笔每客户订单——应被拦截。
- 一笔截止之后或营业时间之外的订单——应被拦截。
- 一次快捷钱包结账(Shop Pay)——确认整套组合仍然生效,而不只是购物车页面。
花五分钟去尝试破坏你自己的组合,就能抓住那些否则会波及真实客户的配置错误。
结语
单条规则是入场门槛;真正值得解决的商家问题存在于组合之中——一个最小值、一个倍数、一个上限、一个截止时间,同时全部成立。原则很简单(规则以 AND 方式组合,最严格的胜出),食谱只是经过验证的组合,而这整套东西只有在结账那个无法被绕过的环节强制执行时才能奏效。找到最接近你商店的那个食谱,把组合复制过去,然后通过尝试破坏它来测试它。
免费开始使用 OrderRules,搭建你的第一套组合,让你的结账精确地放行你想要的订单——并悄悄拒绝你不想要的那些。