# 📖 คู่มือการใช้งานระบบร้านค้าออนไลน์ CMTC SHOP

ระบบเว็บไซต์ร้านค้าออนไลน์ **CMTC SHOP** พัฒนาขึ้นด้วยภาษา PHP และ MySQL พร้อมดีไซน์ทันสมัย (Glassmorphism & Responsive Design) รองรับการใช้งานทั้งบนคอมพิวเตอร์และสมาร์ตโฟน

---

## 📑 สารบัญ
1. [การติดตั้งและเริ่มต้นใช้งาน (Installation)](#1-การติดตั้งและเริ่มต้นใช้งาน)
2. [ข้อมูลบัญชีผู้ใช้งานสำหรับทดสอบ (Demo Accounts)](#2-ข้อมูลบัญชีผู้ใช้งานสำหรับทดสอบ)
3. [คู่มือสำหรับลูกค้าทั่วไป (Customer Guide)](#3-คู่มือสำหรับลูกค้าทั่วไป)
   - 3.1 การเข้าสู่ระบบและการสมัครสมาชิก
   - 3.2 การเลือกซื้อสินค้าและเลือกขนาด (Size)
   - 3.3 การจัดการตะกร้าสินค้า (Shopping Cart)
   - 3.4 การสั่งซื้อและชำระเงินพร้อมเวลานับถอยหลัง 20 นาที
4. [คู่มือสำหรับผู้ดูแลระบบ (Admin Guide)](#4-คู่มือสำหรับผู้ดูแลระบบ)
   - 4.1 การเข้าสู่หน้า Admin Panel
   - 4.2 การเพิ่มสินค้าใหม่พร้อมอัปโหลดรูปภาพ
   - 4.3 การแก้ไขและลบสินค้า
5. [โครงสร้างระบบและความปลอดภัย (Architecture & Security)](#5-โครงสร้างระบบและความปลอดภัย)

---

## 1. การติดตั้งและเริ่มต้นใช้งาน

### 1.1 การรันผ่าน XAMPP (Localhost)
1. เปิดโปรแกรม **XAMPP Control Panel** และกด **Start** ที่บริการ **Apache** และ **MySQL**
2. นำโฟลเดอร์โปรเจกต์ไปวางไว้ที่ `C:\xampp\htdocs\shop`
3. เปิดเบราว์เซอร์แล้วพิมพ์ URL:
   ```text
   http://localhost/shop/install.php
   ```
4. ระบบจะทำการสร้างฐานข้อมูล `online_shop`, ตารางข้อมูล (Tables), วิว (Views), ทริกเกอร์ (Triggers) และข้อมูลตัวอย่างให้อัตโนมัติทันที
5. หลังจากติดตั้งสำเร็จ ให้กดปุ่ม **"เข้าสู่ร้านค้า &rarr;"** หรือเข้าที่ `http://localhost/shop/index.php`

---

## 2. ข้อมูลบัญชีผู้ใช้งานสำหรับทดสอบ

| บทบาท (Role) | ชื่อผู้ใช้ (Username) | รหัสผ่าน (Password) | สิทธิ์การใช้งาน |
| :--- | :--- | :--- | :--- |
| **ผู้ดูแลระบบ (Admin)** | `Admin` หรือ `Admin011` | `password123` | จัดการสินค้า, เพิ่ม/ลบ/แก้ไขสินค้า |
| **ลูกค้า (Customer)** | `69319090044` | `password123` | สั่งซื้อสินค้า, จัดการตะกร้า, ชำระเงิน |
| **ลูกค้า (Customer)** | `somchai_dev` | `password123` | สั่งซื้อสินค้า, จัดการตะกร้า, ชำระเงิน |

---

## 3. คู่มือสำหรับลูกค้าทั่วไป (Customer Guide)

### 3.1 การเข้าสู่ระบบ / สมัครสมาชิก
- **เข้าสู่ระบบ (`login.php`)**: กรอกชื่อผู้ใช้และรหัสผ่านเพื่อเข้าใช้งาน
- **สมัครสมาชิก (`register.php`)**: กรอกชื่อ, นามสกุล, อีเมล, ชื่อผู้ใช้ และรหัสผ่านเพื่อสร้างบัญชีใหม่

### 3.2 การเลือกดูและสั่งซื้อสินค้า (`index.php`)
1. เข้าสู่หน้าหลักเพื่อเลือกดูสินค้าแนะนำ
2. เลือกระบุ **ขนาด (Size)** ที่ต้องการ เช่น `Free Size`, `S`, `M`, `L`, `XL`, `XXL` หรือขนาดรองเท้า
3. กดปุ่ม **"หยิบใส่ตะกร้า 🛒"** สินค้าจะถูกบันทึกลงในตะกร้าทันที และตัวเลขนับจำนวนบนไอคอนตะกร้าจะอัปเดตแบบ Real-time

### 3.3 การจัดการตะกร้าสินค้า (`cart.php`)
- **ปรับจำนวนสินค้า**: กดปุ่ม `+` หรือ `-` เพื่อเพิ่ม/ลดจำนวนชิ้น
- **ลบรายการสินค้า**: กดปุ่ม `"ลบ"` เมื่อไม่ต้องการสินค้านั้น
- **สรุปยอดเงิน**: ระบบคำนวณยอดรวมสุทธิพร้อมสิทธิประโยชน์ส่งฟรีให้อัตโนมัติ
- **ยืนยันการสั่งซื้อ**: กดปุ่ม **"สั่งซื้อและดำเนินการชำระเงิน &rarr;"** เพื่อสร้างใบสั่งซื้อ

### 3.4 ระบบนับเวลาถอยหลังชำระเงิน 20 นาที (`payment.php` / `order-status.php`)
- เมื่อสร้างคำสั่งซื้อแล้ว ระบบจะเริ่ม **นับเวลาถอยหลัง 20:00 นาที** แบบ Real-time
- ลูกค้าสามารถเลือกช่องทางชำระเงินได้ 2 ช่องทาง:
  1. **PromptPay (พร้อมเพย์)** 📲
  2. **บัตรเครดิต (Credit Card)** 💳
- กดปุ่ม **"ยืนยันการชำระเงินสำเร็จ (Confirm Payment)"** เพื่อเสร็จสิ้นขั้นตอน
- ⚠️ *หากไม่ชำระเงินภายใน 20 นาที ระบบจะตัดออเดอร์เป็นสถานะ **หมดอายุ (Expired)** และคืนสต็อกสินค้าอัตโนมัติ*

---

## 4. คู่มือสำหรับผู้ดูแลระบบ (Admin Guide)

### 4.1 การเข้าสู่ระบบจัดการร้านค้า
1. เข้าสู่ระบบด้วยบัญชีระดับแอดมิน (`Admin` หรือ `Admin011`)
2. จะปรากฏปุ่ม **"จัดการร้านค้า 🛠️"** ที่เมนูด้านบน หรือเข้าผ่าน URL: `admin.php`

### 4.2 การเพิ่มสินค้าใหม่
1. คลิกปุ่ม **"+ เพิ่มสินค้าใหม่"**
2. กรอกข้อมูลสินค้า:
   - **ชื่อสินค้า**: ระบุชื่อสินค้า
   - **รายละเอียดสินค้า**: ระบุคำอธิบายสินค้า
   - **ราคาจำหน่าย**: ระบุราคาต่อหน่วย (บาท)
   - **ขนาด (Size)**: เลือกไซส์เริ่มต้น
   - **สต็อกคงเหลือ**: ระบุจำนวนชิ้น
   - **รูปภาพสินค้า**: สามารถเลือกอัปโหลดไฟล์ภาพจากเครื่อง (`.jpg`, `.png`, `.webp`) หรือใส่ URL/Path ของรูปภาพ
3. กดปุ่ม **"บันทึกสินค้าใหม่"**

### 4.3 การแก้ไขและลบสินค้า
- **แก้ไขสินค้า**: กดปุ่ม `"แก้ไข"` ในแถวสินค้าที่ต้องการ จากนั้นแก้ไขข้อมูลหรือเปลี่ยนรูปภาพแล้วกดบันทึก
- **ลบสินค้า**: กดปุ่ม `"ลบ"` และกดยืนยันการลบในกล่องข้อความแจ้งเตือน

---

## 5. โครงสร้างระบบและความปลอดภัย

- **Database Singleton Pattern**: จัดการการเชื่อมต่อฐานข้อมูลอย่างมีประสิทธิภาพผ่าน [classes/Database.php](file:///c:/Users/Lenovo/Desktop/shop/classes/Database.php)
- **CSRF Token Protection**: ป้องกันการโจมตีปลอมแปลงคำสั่งในทุกฟอร์มการทำงาน
- **Prepared Statements (PDO)**: ป้องกันช่องโหว่ SQL Injection 100%
- **XSS Protection**: เข้ารหัสอักขระพิเศษผ่านฟังก์ชัน `escape()` ก่อนแสดงผลบนหน้าจอ
- **Image Fallback System**: รองรับการแสดงผลรูปภาพอย่างต่อเนื่องผ่านระบบตรวจจับ Path และคำสำคัญอัตโนมัติ
