0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ShopifyへAIチャットボットを導入する前の設計チェックリスト

0
Posted at

ShopifyストアにAIチャットボットを入れる際は、UIを設置する前に「参照データ」「アクション」「認証」「失敗時の処理」「計測」を分離して考えると、実装後の手戻りを減らせます。本稿では、小規模EC向けの最小構成を設計チェックリストとして整理します。

最小構成の考え方

最初の公開では、回答生成とEC操作を一つの処理にまとめないほうが安全です。たとえば次のように責務を分けます。

チャットUI
  -> アプリケーションサーバー
      -> 入力・出力ポリシー判定
      -> 商品/配送/返品情報の検索(RAG)
      -> Shopify APIを使う限定的なツール
      -> 会話・未回答・遷移イベントの記録

RAGは「質問に答える」、ツールは「カートへ追加する」などの処理を担当します。モデルが生成した商品IDや数量をそのままAPIへ渡さず、サーバー側で検証してから実行することが重要です。

1. 回答対象と参照データ

  • 商品説明、バリエーション、価格、在庫のどれを回答対象にするか
  • 配送、返品、支払い方法などのポリシー情報をどこから参照するか
  • 更新頻度の高い情報を静的なFAQと分離しているか
  • 根拠となる商品ページやポリシーページのURLを返せるか

2. 表示方法

  • Shopify Inboxで要件を満たせるか
  • App Storeのアプリで必要な連携を実現できるか
  • 独自UIや独自RAGが必要か
  • テーマ更新後も表示できる実装方法か
  • モバイルで購入導線を塞がないか

テーマアプリ拡張のapp embed blockは、ページに固定表示するチャットUIと相性があります。一方、チェックアウトページには同じ方法で表示できないため、チャットと決済の境界を先に決めます。

3. カートとチェックアウト

  • 商品IDだけでなくバリエーションIDと数量を検証しているか
  • 追加前後に価格と在庫を確認するか
  • 利用者がカート内容を目視確認できるか
  • 支払いはShopifyのcheckout URLへ引き継ぐか
  • カード番号やセキュリティコードをチャットへ入力させないか

たとえば、カート追加前の入力は次のような境界で検証できます。

type CartProposal = {
  variantId: string;
  quantity: number;
};

function isValidCartProposal(
  value: CartProposal,
  sellableVariantIds: Set<string>,
): boolean {
  return (
    sellableVariantIds.has(value.variantId) &&
    Number.isInteger(value.quantity) &&
    value.quantity >= 1 &&
    value.quantity <= 10
  );
}

実運用では、この検証に最新価格、在庫、購入上限も加えます。検証後も自動決済は行わず、利用者がShopifyのチェックアウト画面で商品、数量、金額、配送先を確認できる形にします。

4. 注文情報と認証

  • 注文番号だけで他人の注文を取得できない設計か
  • 顧客本人の認証を前提にしているか
  • 取得する顧客データを必要最小限にしているか
  • ログへ個人情報や認証情報を残さないか

5. 失敗時の処理

  • 根拠が見つからない場合は回答を生成しないか
  • APIのタイムアウトや利用上限時の案内があるか
  • メール問い合わせへ切り替えられるか
  • 未回答質問を改善キューへ残せるか

6. 計測

  • チャット開始だけでなく、商品提案後のクリックを測るか
  • カート追加、チェックアウト遷移、問い合わせを測るか
  • 未回答率と有人・メール切り替え率を確認するか
  • 会話ログから商品ページやFAQの改善項目を抽出するか

イベント名は、たとえば chat_started、product_recommended、product_clicked、add_to_cart、checkout_started、contact_requested のように揃えます。個々の会話本文を分析基盤へ無条件に送るのではなく、目的に必要なイベントと属性だけを記録する設計にします。

公開前に最低限テストすること

  • 存在しない商品や古い価格を尋ねたとき、断定して回答しない
  • 在庫切れのバリエーションをカートへ追加しない
  • 注文番号だけで注文情報を表示しない
  • プロンプトインジェクションを受けても内部指示や非公開情報を返さない
  • Shopify APIが失敗したとき、処理成功と案内しない
  • スマートフォンでチャットUIが購入ボタンを隠さない
  • メール切り替え後も、不要な会話データを送信しない

より詳しい導入方法とShopify公式資料へのリンクは、次の記事にまとめています。

ShopifyにAIチャットボットを導入する方法|商品案内・カート・決済の設計

関連するセキュリティ項目はこちらです。

AIチャットボットのセキュリティ対策|小規模企業向け公開前チェックリスト

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?