Quay lại bảng điều khiển

Tài liệu

Tìm hiểu cách sử dụng Asyntai

Cách Thêm Chatbot AI Asyntai vào MedusaCMS

Hướng dẫn từng bước cho cửa hàng trực tuyến chạy bằng Medusa

Lấy Mã Nhúng

Quan trọng: Medusa là nền tảng thương mại điện tử headless. Mã chatbot cần được thêm vào ứng dụng cửa hàng trực tuyến, không phải vào máy chủ/quản trị Medusa.

Bước 1: Lấy Mã Nhúng của Bạn

Đầu tiên, đi đến Bảng điều khiển Asyntai và cuộn xuống phần "Mã Nhúng". Sao chép mã nhúng duy nhất của bạn sẽ trông như thế này:

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

Lưu ý: Mã ở trên chỉ là ví dụ. Bạn phải sao chép mã nhúng duy nhất của riêng mình từ Bảng điều khiển vì nó chứa ID tiện ích cá nhân của bạn.

Bước 2: Thêm vào Cửa hàng Next.js (Phổ biến nhất)

Bộ khởi đầu cửa hàng mặc định của Medusa sử dụng Next.js. Thêm chatbot vào bố cục gốc cửa hàng:

App Router (Next.js 13+)

Mở app/layout.tsx trong dự án cửa hàng và thêm thành phần 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

Nếu cửa hàng sử dụng Pages Router, mở pages/_document.tsx hoặc 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" /> </> ) }

Mẹo: Tùy chọn strategy="afterInteractive" đảm bảo chatbot tải sau khi trang trở nên tương tác, cung cấp trải nghiệm người dùng tốt nhất mà không ảnh hưởng hiệu suất tải trang.

Phương pháp Thay thế 1: Cửa hàng Gatsby

Nếu cửa hàng Medusa sử dụng Gatsby, thêm script qua gatsby-ssr.js sử dụng onRenderBodysetPostBodyComponents:

// 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" /> ]); };

Lưu ý: Bạn cũng nên thêm cùng mã vào gatsby-browser.js nếu muốn tiện ích tồn tại trong quá trình điều hướng phía client. Ngoài ra, thêm vào thành phần bố cục gốc.

Phương pháp Thay thế 2: Cửa hàng React Tùy chỉnh

Nếu cửa hàng Medusa sử dụng thiết lập React tùy chỉnh (Vite, Create React App, v.v.):

Thêm script vào public/index.html ngay trước thẻ đóng </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>

Hoặc sử dụng hook useEffect trong thành phần gốc:

// 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 ); }

Phương pháp Thay thế 3: Bất kỳ Frontend Tùy chỉnh Nào

Nếu cửa hàng chạy bằng Medusa sử dụng bất kỳ frontend dựa trên HTML nào khác, chỉ cần thêm thẻ script tiêu chuẩn ngay trước thẻ đóng </body>:

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

Mẹo: Phương pháp này hoạt động với bất kỳ framework frontend hoặc trình tạo trang tĩnh nào xuất HTML, bao gồm Vue, Svelte, Angular, Astro và các framework khác kết nối với backend Medusa.

Bước 3: Triển khai và Xác minh

Sau khi thêm mã vào ứng dụng cửa hàng:

  1. Triển khai cửa hàng lên nhà cung cấp hosting (Vercel, Netlify, Railway, v.v.)
  2. Mở cửa hàng trực tuyến trong tab trình duyệt mới
  3. Bạn sẽ thấy nút tiện ích trò chuyện ở góc dưới bên phải
  4. Nhấp vào nó để đảm bảo nó mở và hoạt động chính xác

Không thấy tiện ích? Đảm bảo bạn đã thay thế YOUR_WIDGET_ID bằng ID tiện ích thực tế từ bảng điều khiển. Kiểm tra script đang tải trong tab Network trình duyệt (F12 > Network). Xác minh cửa hàng đã được triển khai lại sau khi thêm mã. Đối với Next.js, đảm bảo bạn sử dụng thành phần Script từ next/script, không phải thẻ <script> thông thường. Nhớ rằng mã đặt trong cửa hàng, không phải máy chủ Medusa. Xóa bộ nhớ đệm trình duyệt hoặc thử nghiệm ở chế độ ẩn danh.