メインコンテンツへスキップ

AIショッピングエージェントとカスタムストアフロント

6 min read · 2026年11月3日に事実確認済み

AIショッピングエージェント(ChatGPT、Gemini、Copilot)と Shop アプリのリンク

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

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

お届け日のない注文をご覧ください。

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

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

AIエージェントに日付が必要だと伝えるOrderRulesのボックス。ShopifyのKnowledge Baseアプリにコピーできる既成のFAQ付き

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

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

自社のストアフロントでお客様に日付を選んでもらうには、ピッカーと同じ項目でカートに書き込みます。以下のクエリは 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. 選ばれた日付を書き込む

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

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

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

チャット、メール、SNS での販売には、お届け日付きのチェックアウトリンクを使います。日付があらかじめ設定されたカートリンクを作成できます。

関連ページ