กลับไปที่แดชบอร์ด

เอกสาร

เรียนรู้วิธีใช้ Asyntai

วิธีเพิ่มแชทบอท AI Asyntai ไปยัง MedusaCMS

คู่มือทีละขั้นตอนสำหรับหน้าร้านที่ขับเคลื่อนโดย Medusa

รับโค้ดฝัง

สำคัญ: Medusa เป็นแพลตฟอร์มอีคอมเมิร์ซแบบ headless โค้ดแชทบอทจำเป็นต้องเพิ่มไปยังแอปพลิเคชันหน้าร้านของคุณ ไม่ใช่ไปที่ Medusa server/admin

ขั้นตอนที่ 1: รับโค้ดฝังตัวของคุณ

ก่อนอื่น ไปที่แดชบอร์ด Asyntai ของคุณและเลื่อนลงไปที่ส่วน "Embed Code" คัดลอกโค้ดฝังตัวเฉพาะของคุณซึ่งจะมีลักษณะดังนี้:

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

หมายเหตุ: โค้ดด้านบนเป็นเพียงตัวอย่าง คุณต้องคัดลอกโค้ดฝังตัวเฉพาะของคุณจากแดชบอร์ดเนื่องจากมี widget ID ส่วนตัวของคุณ

ขั้นตอนที่ 2: เพิ่มไปยังหน้าร้าน Next.js (พบบ่อยที่สุด)

หน้าร้านเริ่มต้นของ Medusa ใช้ Next.js เพิ่มแชทบอทไปยัง root layout ของหน้าร้านของคุณ:

App Router (Next.js 13+)

เปิด app/layout.tsx ในโปรเจกต์หน้าร้านของคุณและเพิ่ม Script component:

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 ด้วย หากต้องการให้วิดเจ็ตคงอยู่ระหว่างการนำทางฝั่งไคลเอนต์ หรืออีกทางเลือกหนึ่งคือเพิ่มไปยัง root layout component ของคุณ

วิธีทางเลือกที่ 2: หน้าร้าน React แบบกำหนดเอง

หากหน้าร้าน Medusa ของคุณใช้การตั้งค่า React แบบกำหนดเอง (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 hook ใน root component ของคุณ:

// 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: Frontend แบบกำหนดเองใดก็ได้

หากร้านค้าที่ขับเคลื่อนโดย Medusa ของคุณใช้ frontend ที่ใช้ HTML อื่นๆ เพียงเพิ่มแท็กสคริปต์มาตรฐานก่อนแท็กปิด </body>:

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

เคล็ดลับ: วิธีนี้ใช้ได้กับ frontend framework หรือ static site generator ใดก็ได้ที่สร้างผลลัพธ์เป็น HTML รวมถึง Vue, Svelte, Angular, Astro และอื่นๆ ที่เชื่อมต่อกับ Medusa backend

ขั้นตอนที่ 3: Deploy และตรวจสอบ

หลังจากเพิ่มโค้ดไปยังแอปพลิเคชันหน้าร้านของคุณแล้ว:

  1. ปรับใช้หน้าร้านของคุณไปยังผู้ให้บริการโฮสติ้ง (Vercel, Netlify, Railway ฯลฯ)
  2. เปิดหน้าร้านที่ใช้งานจริงของคุณในแท็บเบราว์เซอร์ใหม่
  3. คุณควรเห็นปุ่มวิดเจ็ตแชทที่มุมล่างขวา
  4. คลิกเพื่อตรวจสอบว่าเปิดขึ้นมาและทำงานได้อย่างถูกต้อง

ไม่เห็นวิดเจ็ต? ตรวจสอบให้แน่ใจว่าคุณเปลี่ยน YOUR_WIDGET_ID เป็น widget ID จริงของคุณจากแดชบอร์ดแล้ว ตรวจสอบว่าสคริปต์กำลังโหลดในแท็บ Network ของเบราว์เซอร์ (F12 > Network) ยืนยันว่าหน้าร้านถูกปรับใช้ใหม่หลังจากเพิ่มโค้ดแล้ว สำหรับ Next.js ตรวจสอบว่าคุณใช้ Script component จาก next/script ไม่ใช่แท็ก <script> ปกติ โปรดจำไว้ว่าโค้ดต้องอยู่ในหน้าร้าน ไม่ใช่ Medusa server ล้างแคชเบราว์เซอร์หรือทดสอบในโหมดไม่ระบุตัวตน