📘 คู่มือสำหรับการตั้งค่าระบบ
Friend Group Inventory

คู่มือนี้สำหรับ Admin/ผู้ดูแลระบบ ใช้ตั้งค่าพื้นฐานให้พร้อมใช้งานจริง: สาขา, ผู้ใช้, หมวดหมู่, สินค้า, สต๊อก และการนำเข้า CSV

หลายสาขา โอนสต๊อก Import CSV ติดตามวันหมดอายุ
1

ความต้องการของระบบ

สเปกขั้นต่ำเพื่อให้ระบบทำงานลื่นและเสถียร

สภาพแวดล้อมที่แนะนำ
รองรับทั้ง Windows (XAMPP) และ Linux (Apache/Nginx)
PHP
แนะนำ PHP 8.0+ (รองรับ 7.4 ขึ้นไป)
MySQL / MariaDB
MySQL 5.7/8.0 หรือ MariaDB 10.4+
เว็บเซิร์ฟเวอร์
Apache 2.4 หรือ Nginx (พร้อม PHP-FPM)
Printer (ทางเลือก)
สำหรับพิมพ์บาร์โค้ด/สติ๊กเกอร์
แนะนำ: ใช้ Chrome/Edge เวอร์ชันล่าสุด เพื่อความเข้ากันของ UI และการพิมพ์บาร์โค้ด
2

ติดตั้งระบบ

วางไฟล์โปรแกรมให้พร้อมก่อนเชื่อมต่อฐานข้อมูล

ขั้นตอนติดตั้ง (ตัวอย่าง XAMPP)
เหมาะสำหรับเครื่องสำนักงาน/ทดสอบ
วางไฟล์โปรแกรม
คัดลอกโฟลเดอร์ระบบไปยัง C:\xampp\htdocs\FriendGroup\ (หรือชื่อโฟลเดอร์ที่ต้องการ)
ตรวจสอบสิทธิ์โฟลเดอร์ (ถ้าเป็น Linux)
ให้เว็บเซิร์ฟเวอร์เขียนได้ในโฟลเดอร์รูปภาพ/ไฟล์นำเข้า เช่น image/ และโฟลเดอร์ log (ถ้ามี)
เปิดใช้งาน Apache + MySQL
เปิดจาก Control Panel ของ XAMPP แล้วทดสอบเข้าหน้า http://localhost/FriendGroup/
เข้าสู่หน้า Login
เปิด login.php และเตรียมสร้างผู้ใช้หลังจาก Import ฐานข้อมูลเรียบร้อย
ข้อควรระวัง: หลีกเลี่ยงการวางโปรแกรมไว้ในโฟลเดอร์ที่มีช่องว่าง/อักขระแปลก ๆ เพื่อป้องกันปัญหา URL และ Path
ตั้งค่าไฟล์ config.php
กำหนดการเชื่อมต่อฐานข้อมูลและโหมดการทำงาน

เปิดไฟล์ config.php แล้วแก้เฉพาะส่วน Database ให้ตรงกับเครื่องของคุณ

// Database configuration define('DB_HOST', 'localhost'); define('DB_USER', 'root'); define('DB_PASS', '********'); define('DB_NAME', 'friend_group_inventory');
ความปลอดภัย: ห้ามนำรหัสผ่านจริงไปเผยแพร่ในเอกสาร/กลุ่มแชท และแนะนำให้เปลี่ยนรหัสผ่านฐานข้อมูลในเครื่องจริง
3

ตั้งค่าฐานข้อมูล

สร้างฐานข้อมูล + Import ตารางเริ่มต้น

3.1 สร้างฐานข้อมูลและ Import
ใช้ไฟล์ friend_group_db.sql เป็นฐาน
สร้าง Database
สร้างฐานข้อมูลชื่อ friend_group_inventory (หรือชื่ออื่น แต่ต้องตรงกับ config.php)
Import โครงสร้างตาราง
Import ไฟล์ friend_group_db.sql ผ่าน phpMyAdmin หรือคำสั่ง mysql
ตรวจสอบตารางสำคัญ
อย่างน้อยควรมี: branches, users, products, inventory, stock_transactions, activity_logs
เคล็ดลับ: หากตัวอักษรภาษาไทยแสดงเพี้ยน ให้ตั้งค่า DB เป็น UTF-8 (utf8mb4) และตรวจสอบ Collation
3.2 เพิ่มตาราง LOT / วันหมดอายุ (แนะนำ)
เพื่อรองรับการนำเข้าแบบมี LOT และรายงานใกล้หมดอายุ

หากระบบของคุณใช้งานฟังก์ชันนำเข้าแบบมี LOT (เช่น import_with_lot.php) ให้สร้างตารางนี้เพิ่ม

CREATE TABLE inventory_lots ( lot_id INT PRIMARY KEY AUTO_INCREMENT, product_id INT NOT NULL, branch_id INT NOT NULL, lot_number VARCHAR(50) NOT NULL, quantity INT NOT NULL DEFAULT 0, original_quantity INT NOT NULL, cost_price DECIMAL(10,2) DEFAULT NULL, expiry_date DATE DEFAULT NULL, manufacture_date DATE DEFAULT NULL, received_date DATETIME DEFAULT NOW(), import_batch_id INT DEFAULT NULL, reference_no VARCHAR(50) DEFAULT NULL, notes TEXT DEFAULT NULL, is_active TINYINT(1) DEFAULT 1, created_at TIMESTAMP DEFAULT NOW(), updated_at TIMESTAMP DEFAULT NOW() ON UPDATE NOW(), INDEX idx_product (product_id), INDEX idx_branch (branch_id), INDEX idx_lot (lot_number), INDEX idx_expiry (expiry_date), FOREIGN KEY (product_id) REFERENCES products(product_id), FOREIGN KEY (branch_id) REFERENCES branches(branch_id), FOREIGN KEY (import_batch_id) REFERENCES import_batches(batch_id) );
หมายเหตุ: หากยังไม่ต้องใช้ LOT สามารถข้ามได้ แต่รายงานหมดอายุ/ล็อตจะไม่ครบฟีเจอร์
4

ตั้งค่าสาขา (Branches)

ขั้นตอนแรกที่ควรทำ เพื่อให้แยกข้อมูลตามสาขาถูกต้อง

เมนู: สาขา
สำหรับ Admin/Manager ที่ได้รับสิทธิ์
เพิ่มสาขา
ไปที่เมนู สาขาเพิ่มสาขา กรอกชื่อสาขา/ที่อยู่/เบอร์โทร (ถ้ามี)
กำหนด HQ
แนะนำให้กำหนดสาขา HQ เป็นสาขาแรกของระบบ เพื่อใช้เป็นศูนย์กลางการโอนสินค้าและรวมรายงาน
ตรวจสอบสาขาที่ใช้งาน
หากปิดใช้งานสาขา (Inactive) รายการโอน/สต๊อกของสาขานั้นควรถูกตรวจสอบก่อนปิดจริง
แนะนำ: ตั้งชื่อสาขาให้ชัดเจน เช่น “HQ - กรุงเทพ”, “สาขา A - เชียงใหม่” เพื่อช่วยงานรายงาน
5

จัดการผู้ใช้งาน (Users)

กำหนดสิทธิ์และสาขาที่ผู้ใช้สังกัด

บทบาทผู้ใช้ (Role)
กำหนดสิทธิ์การเข้าถึงเมนูตามหน้าที่
Roleสิทธิ์หลักเหมาะสำหรับ
ADMIN จัดการทุกเมนู, สร้างสาขา/ผู้ใช้, ดูรายงานรวม เจ้าของระบบ, IT, ผู้ดูแลส่วนกลาง
MANAGER จัดการเมนูหลักของสาขา, โอน/ตัดสต๊อก, ดูรายงานสาขา ผู้จัดการสาขา
STAFF ดูสต๊อก, ดูประวัติรายการ, ทำงานประจำวันตามที่ได้รับมอบหมาย พนักงานคลัง/หน้าร้าน
ข้อควรระวัง: กำหนด Role ให้เหมาะสม ลดความเสี่ยงจากการแก้ไขข้อมูลผิดพลาด
สร้างผู้ใช้ใหม่
เมนู: จัดการผู้ใช้งาน
เพิ่มผู้ใช้
กด + เพิ่มผู้ใช้ แล้วกรอก Username/ชื่อ-นามสกุล/Role/สาขา
กำหนดรหัสผ่านเริ่มต้น
ตั้งรหัสผ่านชั่วคราวให้ผู้ใช้ และให้เปลี่ยนรหัสผ่านทันทีที่เข้าสู่ระบบครั้งแรก (เมนู เปลี่ยนรหัสผ่าน)
ทดสอบการเข้าสู่ระบบ
ให้ลอง Login ด้วยบัญชีใหม่ ตรวจสอบว่าเมนู/สาขาที่เห็นตรงตามสิทธิ์
เสร็จสิ้น: ผู้ใช้พร้อมเริ่มงานในสาขาที่กำหนดแล้ว
6

หมวดหมู่สินค้า (Categories)

จัดกลุ่มสินค้าเพื่อค้นหาและสรุปรายงานง่ายขึ้น

เมนู: หมวดหมู่สินค้า
ใช้ก่อนเริ่มเพิ่มสินค้า
สร้างหมวดหมู่หลัก
เช่น “เวชภัณฑ์”, “อุปกรณ์”, “เครื่องมือ”, “ของใช้สิ้นเปลือง”
ตรวจสอบชื่อซ้ำ
แนะนำให้ใช้ชื่อแบบมาตรฐานทั้งบริษัท เพื่อให้ข้อมูลทุกสาขาเทียบกันได้
แนะนำ: หากต้อง Import สินค้าใหม่ผ่าน CSV ให้ใช้ชื่อหมวดหมู่ให้ตรงกับในระบบ
7

สินค้า (Products) & สต๊อก

เพิ่มสินค้าเข้าระบบ แล้วกำหนดจำนวนคงเหลือตามสาขา

เมนู: จัดการสินค้า
เพิ่ม/แก้ไขสินค้า, ตั้งค่าบาร์โค้ด, ราคาทุน-ขาย, จุดสั่งซื้อขั้นต่ำ
เพิ่มสินค้าใหม่ (Manual)
กรอก รหัสสินค้า, ชื่อสินค้า, หมวดหมู่, Barcode (ถ้ามี), ราคาทุน/ราคาขาย, และ Min Stock
ตรวจสอบข้อมูลก่อนบันทึก
ชื่อและรหัสสินค้าเป็นข้อมูลหลัก แนะนำให้ยืนยันกับ Master List ของบริษัทก่อนสร้าง
จัดการสถานะสินค้า
หากสินค้าถูกยกเลิก ให้ “ปิดใช้งาน” เพื่อไม่ให้โผล่ในรายการใช้งาน (แต่ยังเก็บประวัติไว้)
ตั้งค่าสต๊อกเริ่มต้น
ทำได้ 2 วิธี: เพิ่มผ่าน Import หรือปรับสต๊อกทีละรายการ
วิธี A: Import CSV (แนะนำ)
เหมาะเมื่อมีรายการสินค้าจำนวนมาก และต้องเริ่มต้นสต๊อกเร็ว (ดูหัวข้อ “นำเข้า CSV”)
วิธี B: ปรับสต๊อก (Adjust Stock)
ใช้เมนู ปรับสต๊อก เพื่อเพิ่ม/ลดจำนวน พร้อมบันทึกเหตุผลในประวัติ
เป้าหมาย: หลังตั้งค่าสต๊อกเริ่มต้นแล้ว หน้า “สต๊อกสินค้า” ต้องแสดงจำนวนถูกต้องตามสาขา
8

นำเข้า CSV (Import)

ทำงานเร็วขึ้นเมื่อมีรายการจำนวนมาก

เมนู: นำเข้าสินค้า
รองรับ 2 รูปแบบ CSV ตามงานจริง
แนวคิด: มี 2 แบบ คือ “เพิ่มสต๊อกให้สินค้าที่มีอยู่แล้ว” และ “เพิ่มสินค้าใหม่พร้อมสต๊อก”
รูปแบบ CSVจำนวนคอลัมน์ใช้เมื่อ
แบบที่ 1: Stock Import 3 คอลัมน์ สินค้ามีอยู่แล้วในระบบ ต้องการเพิ่มจำนวนสต๊อก
แบบที่ 2: Product Import 8 คอลัมน์ ต้องการเพิ่มสินค้าใหม่เข้าระบบพร้อมจำนวนเริ่มต้น
ตัวอย่างโครงสร้างไฟล์ (สรุป)
ให้ดาวน์โหลด Template จากหน้า Import ได้โดยตรง
Stock Import (3 คอลัมน์)
product_code, barcode, quantity
Product Import (8 คอลัมน์)
product_code, barcode, product_name, category_name, cost_price, selling_price, min_stock, qty
ข้อควรระวัง: ควรบันทึกไฟล์เป็น UTF-8 และอย่าใส่เครื่องหมาย “,” ภายในตัวเลขราคาแบบผิดรูปแบบ
บาร์โค้ด/สติ๊กเกอร์
เมนู: Barcode
พิมพ์บาร์โค้ดจากสินค้า
เลือกสินค้า → พิมพ์ Barcode ตามจำนวนที่ต้องการติดสินค้า
ทดสอบสแกน
ใช้สแกนเนอร์ยิงเข้าช่องค้นหาในหน้า “สต๊อกสินค้า” หรือหน้าค้นหาสินค้า เพื่อยืนยันว่า Barcode ถูกต้อง
แนะนำ: หากใช้เครื่องพิมพ์สติ๊กเกอร์ ให้ตั้งขนาดกระดาษใน Browser (Print) ให้ตรงก่อนพิมพ์จำนวนมาก
9

รายงาน & ตรวจสอบ

ใช้ตรวจความถูกต้องของสต๊อก และติดตามการเคลื่อนไหว

เมนูรายงานที่สำคัญ
แนะนำให้ Admin/Manager ตรวจอย่างน้อยสัปดาห์ละครั้ง
รายงานเคลื่อนไหวสต็อก
ดูรับเข้า/โอนออก/ตัดสต๊อก เป็น Timeline
รายงานมูลค่าสต็อก
รวมมูลค่าสินค้าแยกตามสาขาและหมวดหมู่
รายงานสินค้าใกล้หมด
เช็คสินค้าใกล้หมดตาม Min Stock
รายงานหมดอายุ
ติดตามล็อตใกล้หมดอายุ (ต้องมี LOT/Expiry)
Checklist: หากจำนวนสต๊อกไม่ตรง ให้ตรวจ “ประวัติรายการ” และรายการโอน/ตัดล่าสุดเป็นอันดับแรก
10

ความปลอดภัย

แนวทางแนะนำสำหรับใช้งานจริงในองค์กร

แนวทางปฏิบัติที่แนะนำ
ลดความเสี่ยงข้อมูลผิดพลาดและการเข้าถึงโดยไม่ได้รับอนุญาต
แยกบัญชีผู้ใช้เป็นรายบุคคล
ห้ามใช้บัญชีร่วมกัน เพื่อให้ตรวจสอบย้อนหลังได้จาก Activity Logs
บังคับเปลี่ยนรหัสผ่าน
เมื่อแจกบัญชีใหม่ ให้ผู้ใช้เปลี่ยนรหัสผ่านทันที (เมนู “เปลี่ยนรหัสผ่าน”)
จำกัดสิทธิ์ Staff
ให้เข้าถึงเฉพาะเมนูที่จำเป็นจริง ลดความเสี่ยงการลบ/แก้ข้อมูล
สำรองฐานข้อมูล
แนะนำ Backup รายวัน (อย่างน้อย 7 วันย้อนหลัง)
สำคัญ: หากเปิดระบบผ่านอินเทอร์เน็ต ควรใช้ HTTPS และตั้งค่า Firewall/Access Control
11

Troubleshooting (ปัญหาที่พบบ่อย)

แนวทางแก้ไขเบื้องต้นก่อนส่งให้ทีม IT

ปัญหายอดสต๊อกไม่ตรง
วิธีตรวจแบบเร็ว
ดู “ประวัติรายการ” ล่าสุด
ค้นหาสินค้านั้น แล้วดูรายการโอน/ตัด/ปรับสต๊อกล่าสุด
ตรวจสาขาที่กำลังใช้งาน
ให้แน่ใจว่าล็อกอินอยู่สาขาถูกต้อง (บางเมนูแยกตามสาขา)
ตรวจการนำเข้า (Import)
ดูรายงานนำเข้า และไฟล์ CSV ว่าคอลัมน์ถูกต้องหรือไม่
ถ้ายังไม่หาย: ให้ส่ง “เวลาเกิดปัญหา + ชื่อสินค้า/รหัส + สาขา + ภาพหน้าจอ” ให้ทีม IT เพื่อวิเคราะห์เร็วที่สุด
พร้อมใช้งานแล้ว
หลังตั้งค่าเสร็จ แนะนำให้ทำ “ทดสอบงานจริง” 1 วัน ก่อนเปิดใช้เต็มระบบ
© Friend Group Inventory System • คู่มือการตั้งค่า (Admin) • พิมพ์ได้จากเมนู Print ของ Browser