ダッシュボードに戻る

ドキュメント

Asyntaiの使い方を学ぶ

Asyntai AIチャットボットをMedusaCMSに追加する方法

Medusaストアフロント向けのステップバイステップガイド

埋め込みコードの取得

重要: Medusaはヘッドレスeコマースプラットフォームです。チャットボットのコードは、Medusaサーバー/管理画面ではなく、ストアフロントアプリケーションに追加する必要があります。

ステップ1:埋め込みコードを取得する

まず、Asyntaiダッシュボードに移動し、「埋め込みコード」セクションまでスクロールしてください。次のような固有の埋め込みコードをコピーしてください:

<script async src="https://asyntai.com/static/js/chat-widget.js" data-asyntai-id="YOUR_WIDGET_ID"></script>

注記: 上記のコードは一例です。個人のウィジェットIDが含まれているため、ダッシュボードから固有の埋め込みコードをコピーしてください。

ステップ2:Next.jsストアフロントに追加(最も一般的)

MedusaのデフォルトストアフロントスターターはNext.jsを使用しています。ストアフロントのルートレイアウトにチャットボットを追加してください:

App Router(Next.js 13以降)

ストアフロントプロジェクトでapp/layout.tsxを開き、Scriptコンポーネントを追加してください:

import Script from 'next/script' export default function RootLayout({ children }) { return ( <html lang="en"> <body> {children} <Script src="https://asyntai.com/static/js/chat-widget.js" data-asyntai-id="YOUR_WIDGET_ID" strategy="afterInteractive" /> </body> </html> ) }

Pages Router

ストアフロントがPages Routerを使用している場合は、pages/_document.tsxまたはpages/_app.tsxを開いてください:

// pages/_app.tsx import Script from 'next/script' export default function MyApp({ Component, pageProps }) { return ( <> <Component {...pageProps} /> <Script src="https://asyntai.com/static/js/chat-widget.js" data-asyntai-id="YOUR_WIDGET_ID" strategy="afterInteractive" /> </> ) }

ヒント: strategy="afterInteractive"オプションにより、ページがインタラクティブになった後にチャットボットが読み込まれ、ページの読み込みパフォーマンスに影響を与えずに最適なユーザー体験を提供します。

代替方法1: Gatsbyストアフロント

MedusaストアフロントでGatsbyを使用している場合は、gatsby-ssr.jsonRenderBodysetPostBodyComponentsを使用してスクリプトを追加してください:

// gatsby-ssr.js import React from 'react' export const onRenderBody = ({ setPostBodyComponents }) => { setPostBodyComponents([ <script key="asyntai" async src="https://asyntai.com/static/js/chat-widget.js" data-asyntai-id="YOUR_WIDGET_ID" /> ]); };

注記: クライアントサイドナビゲーション中にウィジェットを維持したい場合は、gatsby-browser.jsにも同じコードを追加してください。または、ルートレイアウトコンポーネントに追加することもできます。

代替方法2: カスタムReactストアフロント

Medusaストアフロントでカスタムなセットアップ(Vite、Create React Appなど)を使用している場合:

public/index.htmlの閉じ</body>タグの直前にスクリプトを追加してください:

<!DOCTYPE html> <html lang="en"> <head> <!-- ... existing head content ... --> </head> <body> <div id="root"></div> <script async src="https://asyntai.com/static/js/chat-widget.js" data-asyntai-id="YOUR_WIDGET_ID"></script> </body> </html>

または、ルートコンポーネントでuseEffectフックを使用します:

// App.tsx or App.jsx import { useEffect } from 'react'; function App() { useEffect(() => { const script = document.createElement('script'); script.src = 'https://asyntai.com/static/js/chat-widget.js'; script.setAttribute('data-asyntai-id', 'YOUR_WIDGET_ID'); script.async = true; document.body.appendChild(script); return () => { document.body.removeChild(script); }; }, []); return ( // ... your app content ); }

代替方法3: その他のカスタムフロントエンド

Medusaを使用したストアで他のHTMLベースのフロントエンドを使用している場合は、閉じ</body>タグの直前に標準のscriptタグを追加してください:

<script async src="https://asyntai.com/static/js/chat-widget.js" data-asyntai-id="YOUR_WIDGET_ID"></script> </body> </html>

ヒント: この方法は、HTMLを出力するすべてのフロントエンドフレームワークや静的サイトジェネレーター(Vue、Svelte、Angular、Astroなど、Medusaバックエンドに接続されたもの)で動作します。

ステップ3:デプロイと確認

ストアフロントアプリケーションにコードを追加した後:

  1. ストアフロントをホスティングプロバイダー(Vercel、Netlify、Railwayなど)にデプロイしてください
  2. ライブストアフロントを新しいブラウザタブで開いてください
  3. 右下にチャットウィジェットボタンが表示されるはずです
  4. クリックして正しく開き、正常に動作することを確認してください

ウィジェットが表示されませんか? YOUR_WIDGET_IDをダッシュボードの実際のウィジェットIDに置き換えたことを確認してください。ブラウザのネットワークタブ(F12 > Network)でスクリプトが読み込まれていることを確認してください。コードを追加した後にストアフロントが再デプロイされたことを確認してください。Next.jsの場合は、通常の<script>タグではなく、next/scriptScriptコンポーネントを使用していることを確認してください。コードはMedusaサーバーではなく、ストアフロントに追加します。ブラウザのキャッシュをクリアするか、シークレットモードでテストしてください。