---
title: "AIショッピングエージェントとカスタムストアフロント"
description: "AIショッピングエージェントや Shop アプリのリンクは、まだお届け日を選べませんが、日付のルールはチェックアウトで適用されます。エージェントに日付が必要と伝え、Hydrogen やヘッドレスのストアフロントで日付を書き込んでチェックアウトに受け付けさせる方法を説明します。"
contentType: "docs"
locale: "ja"
localized: true
source: "https://orderrules.com/ja/docs/delivery/ai-shopping-agents-and-headless"
slug: "delivery/ai-shopping-agents-and-headless"
---
## AIショッピングエージェント（ChatGPT、Gemini、Copilot）と Shop アプリのリンク

**これらは、まだお届け日を選べません。Shopify には、アプリがエージェントに日付を尋ねる手段がないためです。** それでも、これらの注文にはチェックアウトでお届け日のルールが適用されます。

- **ブロック**の場合、チェックアウトでお客様にストアで手続きを完了して日付を選ぶよう求めます。
- **受け付ける**場合、注文は通り、お客様は注文確認（サンキュー）ページで、または後からアカウントにサインインした状態の注文状況ページで日付を選びます。

[お届け日のない注文](/docs/delivery/orders-without-a-delivery-date)をご覧ください。

### エージェントに日付が必要と伝える

OrderRules →「**配送日指定**」→「**注文とフルフィルメント**」→「**お届け日が必要なことをAIエージェントに伝える**」。用意済みの FAQ をコピーし、Shopify の無料アプリ **Knowledge Base** に追加します。お客様がストアについて質問すると、AI エージェントがこの内容を参照します。同じ文を配送ポリシーにも加えると効果的です。

![AIエージェントに日付が必要だと伝えるOrderRulesのボックス。ShopifyのKnowledge Baseアプリにコピーできる既成のFAQ付き](/images/docs/delivery-ai-agents-faq.png)

## カスタムストアフロント（Hydrogen、ヘッドレス、独自エージェント）

OrderRules のお届け日ピッカーはテーマアプリブロックなので、Online Store のテーマにしか表示されません。Hydrogen でも、独自の React や Next.js アプリでも、Storefront API で構築したストアフロントでは表示されません。**それでも、チェックアウトではルールが適用されます。**

自社のストアフロントでお客様に日付を選んでもらうには、ピッカーと同じ項目でカートに書き込みます。以下のクエリは Storefront API 2026-10 向けです。

### 1. 選べる日付を読み取る

```graphql
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. 選ばれた日付を書き込む

**注文全体で1つの日付。** カート属性：

```graphql
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 エクスポート、キャパシティの集計が読み取る項目です。

**または商品ごとの日付。** 行属性：

```graphql
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…」と表示されます。
- **有効な日付がある場合：** チェックアウトが続行され、注文の追加情報にお届け日が表示されます。

## ストアフロントの代わりにリンクを使う

チャット、メール、SNS での販売には、[お届け日付きのチェックアウトリンク](/docs/delivery/checkout-links-with-delivery-date)を使います。日付があらかじめ設定されたカートリンクを作成できます。

## 関連ページ

- [お届け日のない注文](/docs/delivery/orders-without-a-delivery-date) · [チェックアウト保護](/docs/delivery/checkout-protection) · [注文後のお届け日](/docs/delivery/delivery-date-after-order)
