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.jsでonRenderBodyとsetPostBodyComponentsを使用してスクリプトを追加してください:
// 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:デプロイと確認
ストアフロントアプリケーションにコードを追加した後:
- ストアフロントをホスティングプロバイダー(Vercel、Netlify、Railwayなど)にデプロイしてください
- ライブストアフロントを新しいブラウザタブで開いてください
- 右下にチャットウィジェットボタンが表示されるはずです
- クリックして正しく開き、正常に動作することを確認してください
ウィジェットが表示されませんか? YOUR_WIDGET_IDをダッシュボードの実際のウィジェットIDに置き換えたことを確認してください。ブラウザのネットワークタブ(F12 > Network)でスクリプトが読み込まれていることを確認してください。コードを追加した後にストアフロントが再デプロイされたことを確認してください。Next.jsの場合は、通常の<script>タグではなく、next/scriptのScriptコンポーネントを使用していることを確認してください。コードはMedusaサーバーではなく、ストアフロントに追加します。ブラウザのキャッシュをクリアするか、シークレットモードでテストしてください。
Weebly