跳至主要内容

AI 购物代理和自定义店面

5 min read · 事实核查于 2026年11月3日

AI 购物代理(ChatGPT、Gemini、Copilot)和 Shop 应用链接

它们暂时无法选择配送日期。Shopify 没有给应用提供向代理询问日期的方式。 你的日期规则在结账时仍适用于它们的订单:

  • 选择 拦截 时,结账会请顾客回到你的店铺完成订单并选择日期。
  • 选择 接受 时,订单会通过,顾客在订单确认(感谢)页面选择日期,或之后登录账户在订单状态页面选择。

参见未选配送日期的订单。

告诉代理需要日期

OrderRules → 配送日期 → 订单与发货 → 告诉 AI 代理需要配送日期。复制现成的常见问题,并添加到 Shopify 免费的 Knowledge Base 应用,买家询问你的店铺时,AI 代理会读取其中的内容。在配送政策中加入同样的句子也有帮助。

OrderRules 中告知 AI 代理需要日期的区块,附有可复制到 Shopify Knowledge Base 应用的现成 FAQ

自定义店面(Hydrogen、Headless、自建代理)

OrderRules 的配送日期选择器是主题应用区块,所以只会出现在 Online Store 主题上。基于 Storefront API 构建的店面不会显示它,无论是 Hydrogen 还是自建的 React 或 Next.js 应用。结账仍会执行你的规则。

要让买家在你自己的店面选择日期,请用选择器使用的同一组字段把日期写入购物车。下面的查询适用于 Storefront API 2026-10。

1. 读取开放日期

query OrderRulesDelivery {
  shop {
    metafield(namespace: "order_rules", key: "delivery") { value }
  }
}

value 是 JSON。你需要的部分:

字段含义
rules[]配送规则:id、scope(storewide / product / collection / tag)、requireDate、requireSlot、slotTemplateId、allowedDates(YYYY-MM-DD,已排除截单和提前期)
defaultRuleId全店规则(如果有)
productRuleMap数字商品 id → 规则 id
collectionProductIds / tagProductIds集合或标签规则覆盖哪些商品
blackouts休息日(YYYY-MM-DD)
slotTemplates[id].windows[]时间段:id、label、start、end
capacity[date][slotId or "_all"]剩余可预约数;0 表示已满

只有同时满足以下条件时才显示某个日期:

  • 它在规则的 allowedDates 中;
  • 它不在 blackouts 中;
  • capacity[date]._all 不是 0。

当 requireDate 为 true 时,日期是必填的。每当你更改配送设置以及有订单进来之后,元字段都会刷新。请把它当作只读:格式属于内部实现,可能会变化。

2. 写入所选日期

整个订单一个日期。 购物车属性:

mutation SetDeliveryDate($cartId: ID!) {
  cartAttributesUpdate(cartId: $cartId, attributes: [
    { key: "_os_dp", value: "d|2026-11-04|am" }
    { key: "delivery_date", value: "2026-11-04" }
    { key: "delivery_slot", value: "am" }
  ]) {
    cart { id }
    userErrors { field message }
  }
}
  • _os_dp 是结账检查读取的内容。格式为 d|YYYY-MM-DD|slotId;没有时间段时把时段留空,例如 d|2026-11-04|。
  • delivery_date 和 delivery_slot 是你的订单列表、标签、CSV 导出和名额统计读取的内容。

或者按商品选择日期。 行属性:

mutation AddDatedLine($cartId: ID!) {
  cartLinesAdd(cartId: $cartId, lines: [{
    merchandiseId: "gid://shopify/ProductVariant/123"
    quantity: 1
    attributes: [{ key: "_os_dpl", value: "d|2026-11-04|am" }]
  }]) {
    cart { id }
    userErrors { field message }
  }
}

某一行自己的 _os_dpl 优先于订单级的 _os_dp。没有 _os_dpl 的行使用订单级日期。

3. 检查

带着一个需要日期的商品进入结账。

  • 不带日期: 结账会显示“Please choose a delivery date…”。
  • 带有效日期: 结账会继续,订单的附加详情下会显示该日期。

用链接代替店面

对于聊天、邮件或社交媒体销售,请使用带配送日期的结账链接。它会创建一个已设好日期的购物车链接。

相关内容