跳至主要内容
技术

Buy It Now 和 Apple Pay 会跳过配送日期选择器:结账仍会检查什么

Jahangir Alam2026年10月28日事实核查于 2026年10月28日10 min read

你设置了配送日期选择器,也测试过,一切正常。然后周六来了一张没有配送日期的订单。顾客点了 Buy it now,或者直接在商品页用 Apple Pay 付款,根本没见过你的日历。

这是 Shopify 配送日期应用最常见的抱怨,常见的建议是“把按钮隐藏起来”。这有帮助,但不是完整的解决办法。下面讲实际发生了什么、Shopify 仍会检查什么,以及在任何套餐上拦住无日期订单的设置。

简短回答

商品页上的 Buy It Now 和快捷支付按钮会跳过购物车,所以购物车上的配送日期选择器不会运行,在商品页选的日期也常常不会随之带过去。 Shopify 的结账校验仍会对每一次结账运行,快捷结账也不例外,所有套餐都一样。所以解决办法是:设一条要求有效日期的结账规则,再关掉会跳过你选择器的按钮。

日期为什么会丢

有三种不同的按钮,它们跳过的东西不同:

按钮位置跳过什么
Buy it now(无品牌)商品页购物车
Shop Pay / Apple Pay / Google Pay商品页购物车
快捷支付按钮购物车页它之前没有跳过任何东西,但见下文

Shopify 帮助中心说得很直白:顾客点击无品牌按钮时,“they skip the cart.”(他们会跳过购物车。)任何放在购物车页的日期选择器都不会运行。

商品页上的选择器则有另一个问题。包括 OrderRules 在内,很多日期应用是在顾客点击 Add to cart 时保存日期的。Buy It Now 不会点击 Add to cart,所以日期从未被保存。Shopify 还指出,加速结账按钮不支持购物车属性,而很多应用正是把日期存在那里。

在标准套餐上,没有办法在结账页内部显示日期选择器。那需要在信息、配送或付款步骤使用结账 UI 扩展,而这只有 Shopify Plus 才有。即使在 Plus 上,Shopify 员工也说过,Apple Pay 和 Google Pay 不支持由结账 UI 扩展写入属性。

所以在快捷支付这条路径上,日期是收集不到的。你能做的,是在顾客回去选好日期之前拒绝这张订单。

仍会检查什么:结账规则

Shopify 有一套独立的机制,不管按下的是哪个按钮:购物车与结账校验 Functions。应用会安装一条小规则,由 Shopify 在结账期间于服务器端运行。Shopify 的文档说,这“includes express checkouts, such as Shop Pay, PayPal, Google Pay, and Apple Pay.”(包括 Shop Pay、PayPal、Google Pay 和 Apple Pay 等快捷结账。)

对非 Plus 店铺,有两个细节很重要:

  • 它在所有套餐上都能运行。 Shopify 允许任何店铺使用包含 Functions 的 App Store 公开应用。只有包含 Functions 的自定义应用才需要 Plus。
  • 它在服务器端运行。 买家换个按钮也绕不过去,而且它会在付款时重新检查日期,而不是相信购物车页之前说过的话。

OrderRules 用一条校验 Function 在每次结账时检查配送日期。开启 结账时必须选择配送日期 后,它会拦下以下订单:

  • 没有配送日期
  • 日期已关闭,或是停送日期
  • 日期早于最早允许的日期(备货时间和截单时间)
  • 日期或时间段已满

我们测试时看到了什么

在装有 OrderRules 的开发店铺上,我们在一款蛋糕的商品页选了 10 月 30 日,选了时间段,然后点击 Buy it now。结账页打开时没有日期,并显示:

Please choose a delivery date before checking out.

顾客必须先回去,选好日期,再通过购物车结账,才能付款。这就是兜底在起作用。不过体验并不好,所以下一步是不让顾客走到这一步。

拦住无日期订单的三项设置

1. 结账时必须选择配送日期

在 OrderRules 中,打开 配送日期,在你给带日期商品设的规则上勾选 结账时必须选择配送日期。然后确认 Shopify 中的结账规则已开启:Settings → Checkout → Checkout rules。没有这条规则,结账时什么都不会检查。

正是这项设置让日期真正生效。其他设置都只是改善体验。

2. 在需要日期的商品上关闭动态结账按钮

在主题编辑器中,打开商品模板,找到购买按钮区块。大多数主题有一个 Show dynamic checkout buttons 复选框,取消勾选。这样顾客会通过 Add to cart 下单,在商品页选的日期会随商品一起带过去。

如果只有部分商品需要日期,就给它们单独用一个关闭按钮的商品模板,其他商品继续保留 Buy It Now。

3. 也要测试购物车页

快捷支付按钮也可能出现在购物车页和结账页顶部。如果你的日期放在购物车里(OrderRules 可以在那里为整张订单收集一个日期),请在真实设备上从购物车测试一次 Apple Pay 或 Shop Pay 结账。如果日期没有带过来,结账规则会用同样的提示拦下订单,这时你就知道也要把购物车里的这些按钮去掉。

Plus 与非 Plus:有什么不同

标准 Shopify 套餐Shopify Plus
商品页和购物车页上的日期选择器有有
结账页内的日期选择器没有有(OrderRules 指南)
结账规则拦截缺失或已满的日期是是
规则覆盖 Shop Pay、Apple Pay、Google Pay是是
顾客不离开结账页就能补上日期不能,需要回到店铺用结账页选择器可以,Apple Pay 和 Google Pay 除外

在 Plus 上,结账页选择器能让大多数顾客当场补上缺失的日期。在所有套餐上,真正拦下订单的都是这条规则。

OrderRules 做不到的

  • 替你隐藏 Buy It Now。 这是主题设置,你需要在主题编辑器里关掉它。
  • 在快捷支付路径上收集日期。 目前没有任何应用能写入 Apple Pay 或 Google Pay 的结账。规则只能拒绝这张订单。
  • 预留最后一个名额。 容量是在每笔订单到达时才更新的,所以两位顾客在同一时刻为最后一个名额结账,两人都可能通过。

检查清单

  • 带日期的商品已开启 结账时必须选择配送日期
  • OrderRules 的规则已在 Settings → Checkout → Checkout rules 中开启
  • 带日期的商品模板上已关闭 Show dynamic checkout buttons
  • 已测试:商品页 → Buy It Now 被拦下,或没有这个按钮
  • 已测试:购物车页 → Apple Pay 或 Shop Pay 保留日期,或被拦下
  • 已测试:日期已满时显示 Delivery on {date} is fully booked. Please choose another date.

相关阅读:英国烘焙店在选配送日期应用前问的 10 个问题 · 配送日期选择器该放在哪里 · 最佳配送日期选择器应用对比

常见问题

通常会。商品页上的 Buy It Now 和快捷支付按钮会不经购物车直接把顾客送到结账页,所以购物车页上的日期选择器根本不会运行。在商品页选的日期,只有在应用把它加入商品表单本身时才会随之带过去;OrderRules 是在顾客点击 Add to cart 时添加的,所以 Buy It Now 不会带上它。

可以。公开应用的 Shopify 结账校验 Functions 在所有套餐上都能运行,快捷结账也包括在内。OrderRules 用它在日期缺失、已关闭、已过截单时间或已满时拦截结账。需要 Plus 的,是在结账页内显示日期选择器。

不会。Apple Pay 和 Google Pay 会跳过购物车页和结账 UI 扩展,但 Shopify 的购物车与结账校验 Functions 仍会对它们运行。Shopify 的文档列出 Shop Pay、PayPal、Google Pay 和 Apple Pay 都在覆盖范围内。

对大多数食品、鲜花和按单定制的店铺来说,应该。关掉按钮后,每位顾客都会通过 Add to cart 和你的日期选择器下单。也请保持结账规则开启,因为快捷支付按钮还可能出现在购物车页和结账页。

使用 OrderRules 并开启 结账时必须选择配送日期 时,结账页会显示 'Please choose a delivery date before checking out.' 顾客返回你的店铺,选好日期后重新结账。

不能完全解决。结账 UI 扩展可以为 Plus 店铺在结账页添加选择器,但 Shopify 指出,Apple Pay 和 Google Pay 不支持由结账 UI 扩展写入属性。真正拦下无日期订单的,仍然是校验 Function。

正在挑选应用?

查看 OrderRules 与该类别中其他所有 Shopify 应用的对比。

准备好掌控你的订单了吗?

免费试用 OrderRules