AI 购物代理和自定义店面
5 min read · 事实核查于 2026年11月3日
AI 购物代理(ChatGPT、Gemini、Copilot)和 Shop 应用链接
它们暂时无法选择配送日期。Shopify 没有给应用提供向代理询问日期的方式。 你的日期规则在结账时仍适用于它们的订单:
- 选择 拦截 时,结账会请顾客回到你的店铺完成订单并选择日期。
- 选择 接受 时,订单会通过,顾客在订单确认(感谢)页面选择日期,或之后登录账户在订单状态页面选择。
参见未选配送日期的订单。
告诉代理需要日期
OrderRules → 配送日期 → 订单与发货 → 告诉 AI 代理需要配送日期。复制现成的常见问题,并添加到 Shopify 免费的 Knowledge Base 应用,买家询问你的店铺时,AI 代理会读取其中的内容。在配送政策中加入同样的句子也有帮助。

自定义店面(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…”。
- 带有效日期: 结账会继续,订单的附加详情下会显示该日期。
用链接代替店面
对于聊天、邮件或社交媒体销售,请使用带配送日期的结账链接。它会创建一个已设好日期的购物车链接。