FAQ — คำถามพบบ่อย (เจ้าของระบบ)
ทั่วไป
ใช้ source code ทำของลูกค้าคนอื่นได้ไหม?
ขึ้นกับ license — โดยทั่วไป commercial license ใช้ได้กับธุรกิจตัวเอง 1 เว็บ ไม่อนุญาตให้ขาย/แจกซ้ำ ตรวจสอบเงื่อนไขกับผู้ขายระบบที่คุณซื้อมา
ทำ multi-tenant (หลายร้าน 1 ระบบ) ได้ไหม?
ต้องแก้ schema เพิ่ม tenantId ทุก table + middleware filter — งานใหญ่ (~1-2 เดือนเต็มเวลา)
Source code มีกี่บรรทัด?
- API: ~15,000 บรรทัด
- Web: ~12,000 บรรทัด
- Mobile: ~5,000 บรรทัด
- รวม: ~32,000 บรรทัด (ไม่นับ node_modules)
ฐานข้อมูล
เปลี่ยน PostgreSQL → MySQL ได้ไหม?
ได้ — แก้ prisma/schema.prisma:
datasource db {
provider = "mysql"
url = env("DATABASE_URL")
}
แล้ว migrate ใหม่ (ลบ migrations เก่า)
ใช้ MongoDB ได้ไหม?
ไม่แนะนำ — schema เป็น relational (FK ทุก table) — เขียน adapter ใหม่หมด
ดูข้อมูลตรง ๆ ยังไง?
cd ecommerce-api
npx prisma studio # http://localhost:5555
หรือใช้ tool อื่น (DBeaver, TablePlus) connect ด้วย:
postgresql://ecommerce:<password>@localhost:5432/ecommerce
Database พังต้องทำยังไง?
- ตรวจ docker logs:
docker compose logs postgres - Restart:
docker compose restart postgres - ถ้าพังจริง — restore จาก backup (ดู 09 — Maintenance)
Payment
มี payment gateway แท้ ๆ ไหม?
ยังไม่มี — ปัจจุบันเป็น:
- โอนเงิน + upload สลิป (manual verify)
- COD
เชื่อม Omise ยังไง?
- สมัคร Omise (ฟรี — เสีย fee ต่อ transaction)
- เพิ่ม module
payments/providers/omise.service.ts:import Omise from 'omise' const omise = Omise({ secretKey: process.env.OMISE_SECRET_KEY }) await omise.charges.create({ ... }) - เพิ่ม endpoint
POST /payments/charge - แก้ web ให้รับ token จาก Omise.js + ส่งมา api
เชื่อม Stripe ยังไง?
คล้าย Omise — ใช้ @stripe/stripe-js ฝั่ง web + stripe npm ฝั่ง api
PromptPay QR?
ยังไม่มี built-in — เชื่อมผ่าน Omise / 2C2P / Beam (ของไทยมี) ได้
ส่งอีเมลตอนไหน?
ปัจจุบันยังไม่ส่งจริง — template มีใน ecommerce-api/email-templates/
เปิด email service ยังไง?
- สมัคร Resend / SendGrid / Mailgun
- ใส่ใน
.env:EMAIL_PROVIDER=resend RESEND_API_KEY=re_xxx EMAIL_FROM=noreply@yourshop.com - เปิด feature flag:
FEATURE_EMAIL=true - ระบบจะส่งเมื่อ:
- สมัครสมาชิก (welcome)
- ออเดอร์สำเร็จ (confirmation)
- สลิปได้ตรวจ (verify/reject)
- จัดส่งแล้ว (tracking)
- cart abandoned (24 ชม)
SEO
ขึ้น Google ยังไง?
- Submit sitemap ที่ Google Search Console
- ติดตั้ง
@nuxtjs/sitemap - URL:
https://yourshop.com/sitemap.xml
- ติดตั้ง
- ใส่ Meta tag (มีให้แล้ว) —
nuxt.config.ts - Robot.txt — แก้
public/robots.txt - Schema.org markup — เพิ่ม
<script type="application/ld+json">ในหน้า product
กี่วันถึงขึ้น Google?
- Index ครั้งแรก: 1-7 วัน
- Rank ในหน้าแรก: 3-6 เดือน (ขึ้นกับ competition + backlinks)
Title หน้า / Meta description ต่างกันแต่ละหน้า?
ใช้ useHead({ title: ... }) ในแต่ละ page — ดู /docs/test/api
Performance
รับ traffic ขนาดไหน?
| VPS | concurrent users |
|---|---|
| 1 vCPU / 2GB | ~500 |
| 4 vCPU / 8GB | ~5,000 |
| Scale horizontal | ไม่จำกัด |
ใช้ Redis cache + CDN ลด load DB
เพิ่ม instance api ได้ไหม?
ได้ — stateless ทั้งหมด
ใช้ Nginx upstream load balance:
upstream api {
server api1.local:3000;
server api2.local:3000;
}
ใช้ CDN รูป?
แนะนำ — Cloudflare Images / Bunny CDN / Imgix
- ลด load จาก api
- โหลดเร็วขึ้น 3-5x
- มี auto resize/WebP
Mobile App
Sync กับเว็บ?
✅ — API + DB เดียวกัน ทุกอย่าง sync อัตโนมัติ
Push notification ค่าใช้จ่าย?
- Expo Push Service: ฟรี
- APNS / FCM: ฟรี (แต่ต้องผ่าน Apple / Google account)
ทำให้ใช้ offline ได้ไหม?
ทำได้แต่ต้องเขียนเพิ่ม:
- ใช้
react-query+ persistence - ใช้ SQLite local (
expo-sqlite) - Sync เมื่อ online กลับมา
ใช้เวลา ~2-3 สัปดาห์เพิ่ม
Security
Password เก็บยังไง?
- Hash ด้วย
bcrypt(cost 10) - ไม่เก็บ plaintext
- ไม่ส่งกลับใน API response
Token หมดอายุ?
- Access: 15 นาที
- Refresh: 7 วัน
ปรับใน .env:
JWT_ACCESS_EXPIRES=15m
JWT_REFRESH_EXPIRES=7d
ลืม password — รีเซ็ตยังไง?
⚠ ยังไม่มี UI — admin reset ให้ผ่าน script:
cd ecommerce-api
node scripts/reset-password.ts <email> <new-password>
มี 2FA ไหม?
ยังไม่มี — เพิ่มได้ผ่าน speakeasy + QR code
มี audit log ไหม?
ยังไม่มี — เพิ่มได้ผ่าน Prisma middleware logging
Customization
เพิ่มหน้าใหม่ยังไง?
สร้างไฟล์ใน ecommerce-web/app/pages/<your-page>.vue → จะมี route auto
เพิ่ม component?
สร้างใน ecommerce-web/app/components/<Folder>/<Name>.vue → import auto
เพิ่ม API endpoint?
สร้างใน ecommerce-api/src/modules/<module>/<module>.controller.ts:
@Get('my-endpoint')
async myEndpoint() {
return { data: 'hello' }
}
Support
ติดต่อทีมผู้ขายยังไง?
ตามที่ตกลงตอนซื้อ — มักเป็น Email / LINE OA
มี SLA ไหม?
ขึ้นกับสัญญา — โดยทั่วไป:
- Critical bug: 24 ชม
- Normal bug: 3-5 วัน
- Feature request: ขึ้นกับ contract
ขอ training พนักงานได้ไหม?
ขึ้นกับผู้ขาย — บางที่ให้ training 4-8 ชม ในแพคเกจ
Mobile vs Web
ลูกค้าใช้ web หรือ app เยอะกว่า?
ตามสถิติ retail e-commerce ไทย:
- ลูกค้าใหม่: 70-80% เข้าจาก web (search / FB ads)
- ลูกค้าเก่า: 60% ใช้ app (เร็วกว่า, notification)
→ ทำทั้งคู่จะ optimize ทั้ง 2 segment
License
ใช้ open source library ตัวไหนบ้าง?
Major dependencies:
- NestJS — MIT
- Nuxt — MIT
- Vue — MIT
- Prisma — Apache 2.0
- Tailwind — MIT
- Naive UI — MIT
- React Native — MIT
- Expo — MIT
ทั้งหมด commercial-friendly ✓
ต้องให้เครดิตไหม?
ตามแต่ละ license — ส่วนใหญ่ไม่ต้อง
แต่ โค้ดที่ผู้ขายเขียนเอง — ขึ้นกับเงื่อนไขสัญญา
ยังไม่เจอคำตอบ?
ดูเอกสารแต่ละหัวข้อเต็ม:
- 01 — Getting Started
- 02 — Installation
- 03 — Store Setup
- 04 — Admin Daily
- 05 — Customer App
- 06 — Mobile App
- 07 — Customization
- 08 — Deployment
- 09 — Maintenance
หรือติดต่อทีม support ของผู้ขายระบบ
