📑 สารบัญ
ติดตั้งบน Google
ทำครั้งเดียวบนคอมพิวเตอร์
เริ่มต้น
สร้างไฟล์ Google Sheets ใหม่
ไฟล์นี้คือ “ฐานข้อมูลร้าน” เก็บราคาทอง สต็อก บิล ลูกค้า ขายฝาก และเงินสด
- เข้า sheets.new ด้วยบัญชี Google ของร้าน (แนะนำบัญชีของกิจการ ไม่ใช่บัญชีส่วนตัวของพนักงาน)
- ตั้งชื่อไฟล์ เช่น ร้านทอง — ฐานข้อมูล
ไฟล์มีเลขบัตรประชาชนลูกค้า พนักงานใช้งานผ่านเว็บแอปด้วยบัญชีและ PIN ของตัวเองเท่านั้น ระบบปิดบังเลขบัตรและบันทึกการเปิดดูให้
ใส่ระบบ
วางไฟล์ Code.gs, Index.html และ appsscript.json
- ในไฟล์ชีต ไปที่ ส่วนขยาย›Apps Script (Extensions › Apps Script)
- ตั้งชื่อโปรเจกต์เป็น Jabphap Gold Shop POS
- เปิดไฟล์ Code.gs กด Ctrl+A ลบโค้ดเดิม แล้ววางเนื้อหาไฟล์
Code.gsที่ได้รับทั้งไฟล์ - กด + ข้างคำว่า “ไฟล์” › HTML ตั้งชื่อ
Index(ไม่ต้องพิมพ์ .html) ลบเนื้อหาเดิม แล้ววางเนื้อหาIndex.html - ⚙ การตั้งค่าโปรเจกต์ › ติ๊ก แสดงไฟล์ Manifest “appsscript.json” ในเครื่องมือแก้ไข แล้วเปิด
appsscript.jsonวางเนื้อหาจากไฟล์ที่ได้รับแทนทั้งหมด - กด Ctrl+S บันทึก
ต้องมี Code.gs, Index.html, appsscript.json — ชื่อ Index ต้องตรงทุกตัวอักษร
ถ้าคัดลอกไม่ครบจะขึ้น “SyntaxError” ตอนบันทึก ให้คัดลอกใหม่ทั้งไฟล์
สร้างฐานข้อมูล
รันฟังก์ชัน setup
- เลือกฟังก์ชัน setup ในแถบเครื่องมือด้านบน แล้วกด ▶ เรียกใช้ (Run)
- ครั้งแรก Google จะขออนุญาตสิทธิ์ ทำตามขั้นตอนที่ 4 แล้วรันอีกครั้งถ้าจำเป็น
- รอจนบันทึกการดำเนินการขึ้นว่า “ติดตั้ง Jabphap Gold Shop POS เรียบร้อย”
Settings · Users · Prices · Items · Customers · Bills · Consigns · CashMoves · DayClose · Counters · Audit
ราคาทองย้อนหลัง 90 วัน สินค้า ~140 ชิ้น 7 ประเภท ลูกค้า 18 ราย บิลย้อนหลัง 1 เดือน สัญญาขายฝาก 8 ฉบับ และปิดยอดรายวัน
admin / 1234 · ผู้จัดการ somchai · พนักงาน nok, ploy (PIN 1111)
หลังติดตั้ง ไฟล์ชีตจะมีเมนู 🪙 Gold Shop POS ใช้รัน setup ซ้ำ (ไม่ลบข้อมูลเดิม) แสดงลิงก์เว็บแอป รีเซ็ต PIN ผู้ดูแล และล้างข้อมูลตัวอย่าง
ความปลอดภัย
อนุญาตสิทธิ์ให้สคริปต์
- หน้าต่าง “ต้องมีการให้สิทธิ์” กด ตรวจสอบสิทธิ์ แล้วเลือกบัญชีของคุณ
- หน้า “Google ยังไม่ได้ยืนยันแอปนี้” กด ขั้นสูง › ไปที่ Jabphap Gold Shop POS (ไม่ปลอดภัย) — เป็นข้อความปกติของสคริปต์ที่ติดตั้งเอง
- ตรวจรายการสิทธิ์แล้วกด อนุญาต


| สิทธิ์ที่ขอ | ใช้ทำอะไร |
|---|---|
| ดู แก้ไข สร้าง สเปรดชีต | อ่าน/เขียนราคาทอง สต็อก บิล ลูกค้า ขายฝาก ในไฟล์ชีตนี้ |
| ดู แก้ไข สร้าง ไฟล์ใน Google ไดรฟ์ | บันทึกใบเสร็จ ใบรับซื้อ และสัญญาขายฝากเป็น PDF |
| แสดงเนื้อหาในแอป Google | เมนู 🪙 Gold Shop POS บนไฟล์ชีต |
| จัดการทริกเกอร์ | ดึงราคาทองอัตโนมัติทุก 15 นาที (เมื่อเปิดใช้เท่านั้น) |
| เชื่อมต่อบริการภายนอก | ดึงราคาทองจาก URL ที่ร้านกำหนด (เมื่อเปิดใช้เท่านั้น) |
เปิดให้ใช้งาน
เผยแพร่เป็นเว็บแอป
- มุมขวาบน กด การทำให้ใช้งานได้›การทำให้ใช้งานได้รายการใหม่
- กดรูปเฟือง ⚙ ข้าง “เลือกประเภท” › เว็บแอป
- เรียกใช้ในฐานะ = ฉัน · ผู้ที่มีสิทธิ์เข้าถึง = ทุกคน แล้วกด ทำให้ใช้งานได้
- คัดลอก URL ของเว็บแอป (ลงท้าย
/exec) เก็บเป็นบุ๊กมาร์กที่เครื่องหน้าร้าน · ป้ายราคาทีวีใช้ URL เดียวกันต่อท้าย?board=1




ผู้ที่เปิดลิงก์จะเห็นแค่หน้าล็อกอิน (และป้ายราคาซึ่งเป็นข้อมูลสาธารณะ) ทุกคำสั่งตรวจสิทธิ์ที่เซิร์ฟเวอร์ ใส่ PIN ผิด 5 ครั้งล็อก 5 นาที และไฟล์ชีตยังเป็นของร้านคนเดียว
ใช้งานได้แล้ว
เข้าสู่ระบบครั้งแรกและเปลี่ยน PIN
- เปิด URL เว็บแอป ใส่ชื่อผู้ใช้ admin และ PIN 1234
- ระบบบังคับตั้ง PIN ใหม่ (ตัวเลข 4–8 หลัก ห้ามใช้ 1234 / 0000)

เปิดไฟล์ชีต › เมนู 🪙 Gold Shop POS › 🔑 รีเซ็ต PIN ผู้ดูแล (admin) เป็น 1234 ส่วนผู้ใช้คนอื่นให้เจ้าของร้านรีเซ็ตในหน้าตั้งค่า › ผู้ใช้งาน
ตั้งค่าก่อนใช้งานจริง
ทำผ่านเว็บแอปด้วยบัญชีเจ้าของร้าน — เมนู ตั้งค่า
ข้อมูลร้าน
ข้อมูลร้าน เอกสาร และ VAT
แท็บ ร้าน & เอกสาร: ชื่อร้าน ที่อยู่ เบอร์โทร เลขผู้เสียภาษี เลขที่ใบอนุญาตค้าของเก่า (พิมพ์บนใบรับซื้อ) อักษรนำเลขบิลขาย/รับซื้อ/เปลี่ยนลาย/สัญญาขายฝาก (รันใหม่ทุกเดือน เช่น SL6910-0001) ข้อความท้ายใบเสร็จ และเงินทอนตั้งต้นปกติ
ร้านจดทะเบียน VAT: ติ๊ก “ร้านจดทะเบียน VAT” ระบบคิดภาษีทองรูปพรรณจาก ส่วนต่างราคาขายกับราคารับซื้อทองรูปพรรณประจำวัน (ราคารวม VAT) และไม่คิด VAT ทองแท่ง 96.5% ใบเสร็จ A4 จะเปลี่ยนชื่อเป็นใบกำกับภาษี — ควรให้ผู้สอบบัญชีของร้านตรวจรูปแบบก่อนใช้จริง
มาตรฐานน้ำหนัก
หน่วยน้ำหนัก การปัดเศษ และการตั้งราคา
แท็บ หน่วย & ราคา: กรัมต่อ 1 บาททอง แยก ทองรูปพรรณ (15.16 ก.) และ ทองแท่ง (15.244 ก.) ความบริสุทธิ์มาตรฐาน 96.5% การปัดยอดเงิน (1/5/10/50/100 บาท — ยอดขายปัดใกล้สุด ยอดรับซื้อปัดลง) เพดานส่วนลดค่ากำเหน็จของพนักงาน เกณฑ์เตือนราคาเปลี่ยน และบังคับเลขบัตรผู้ขาย

กติกาของร้าน
ประเภทสินค้า ค่ากำเหน็จ และอัตราหักรับซื้อ
แท็บ ประเภท & ค่ากำเหน็จ: ชื่อประเภท (สร้อยคอ แหวน กำไล …) ชนิดทอง ค่ากำเหน็จต่อบาท และขั้นต่ำต่อชิ้น — ใช้แนะนำค่ากำเหน็จเมื่อรับสินค้าเข้า
แท็บ อัตราหักรับซื้อ: กำหนดเป็นตาราง เช่น ทองรูปพรรณของร้าน 0% · ร้านอื่น 2% · ชำรุด 4% · ทองเก่า/เศษทอง 6% · ทองแท่งสภาพดี 0% — พนักงานเลือกได้เฉพาะในตาราง ผู้จัดการแก้รายบิลได้

น้ำหนัก(กรัม) ÷ กรัมต่อบาท × ราคารับซื้อประจำรอบ × (% ทอง ÷ 96.5) × (1 − อัตราหัก%) แล้วปัดลงตามหน่วยปัดเศษ
ขายฝาก
ตั้งค่าสัญญาขายฝาก
แท็บ ขายฝาก: วงเงินสูงสุด (% ของราคารับซื้อวันนี้) ค่าตอบแทนเริ่มต้น เพดานค่าตอบแทน (ไม่เกิน 1.25% ต่อเดือน) ระยะเวลาไถ่ ระยะผ่อนผันก่อนบันทึก “หลุด” และวิธีคิด (ทีละครึ่งเดือน หรือเศษวันคิดเต็มเดือน)

ราคาทอง
แหล่งราคา (ไม่บังคับ) และป้ายราคาทีวี
การกรอกราคาเองคือวิธีหลัก ถ้ามีแหล่งข้อมูลราคาเป็น JSON (เช่นบริการที่ร้านสมัครใช้) ใส่ URL (https://) และ path ของแต่ละราคา เช่น data.0.buy · ถ้าต้องใช้ token ใส่ในช่อง Token (เก็บใน Script Properties ไม่อยู่ในชีต) · กดปุ่ม ดึงราคาจาก URL ในหน้าราคาทองเพื่อเติมตัวเลขแล้วตรวจก่อนบันทึก หรือเปิด “ดึงราคาอัตโนมัติทุก 15 นาที” ในเวลาเปิดร้าน (ระบบข้ามการบันทึกถ้าราคากระโดดเกินเกณฑ์)
ป้ายราคาทีวี: เปิด URL เว็บแอปต่อท้าย ?board=1 บนสมาร์ททีวี/กล่องแอนดรอยด์/คอมที่ต่อจอ แล้วกด F11 เต็มจอ — ไม่ต้องล็อกอิน แสดงเฉพาะราคา รีเฟรชตามวินาทีที่ตั้งไว้

ผู้ใช้
เพิ่มผู้จัดการและพนักงาน
| สิทธิ์ | ทำอะไรได้ |
|---|---|
| พนักงานขาย | ขาย รับซื้อ เปลี่ยนลาย ทำ/รับชำระขายฝาก ลูกค้า สรุปประจำวัน ค่าใช้จ่าย — ลดค่ากำเหน็จได้ไม่เกินเพดาน ใช้อัตราหักตามตาราง ไม่เห็นต้นทุน เห็นเลขบัตรแบบปิดบัง |
| ผู้จัดการ/หัวหน้าร้าน | ทุกอย่างของพนักงาน + ตั้งราคาทอง รับสินค้าเข้า ส่งหลอม ยกเลิกบิล บันทึกหลุด นำเงินออก ปิดยอด เปิดดูเลขบัตรเต็ม |
| เจ้าของร้าน | ทุกอย่าง + รายงานกำไร ตั้งค่า ผู้ใช้ ประวัติการใช้งาน |
| ดูอีเมลหลักของบัญชี Google | ตรวจว่าผู้รันฟังก์ชันผู้ดูแล (ติดตั้ง / รีเซ็ตรหัสผ่าน) เป็นเจ้าของไฟล์ — กันไม่ให้ผู้เปิดเว็บแอปเรียกใช้ได้ |
เมนู ตั้งค่า › ผู้ใช้งาน › เพิ่มผู้ใช้ ใส่ชื่อ ชื่อผู้ใช้ภาษาอังกฤษ สิทธิ์ และ PIN เริ่มต้น (ผู้ใช้จะถูกบังคับเปลี่ยน PIN ครั้งแรก)
เริ่มใช้งานจริง
บันทึกสต็อกยกมา แล้วล้างข้อมูลตัวอย่าง
- เปิดไฟล์ชีต › เมนู 🪙 Gold Shop POS › 🧹 ล้างข้อมูลตัวอย่าง — ลบราคา สินค้า ลูกค้า บิล ขายฝาก เงินสด และรีเซ็ตเลขที่เอกสาร เก็บการตั้งค่าและผู้ดูแลไว้ บัญชีตัวอย่าง (somchai, nok, ploy) ถูกลบด้วย
- ตั้งราคาทองรอบแรกของวันในเมนู ราคาทอง
- รับสินค้าทั้งหมดเข้าสต็อกในเมนู สต็อกทอง › รับสินค้าเข้า (เว้นรหัสป้ายให้ระบบออกให้ หรือใช้รหัสป้ายเดิมของร้าน) แล้วพิมพ์ป้ายสินค้า
- เช้าวันแรกบันทึก เงินทอนตั้งต้น ในเมนูสรุปประจำวัน
PDF ตัวอย่าง (ถ้าสร้างไว้) อยู่ในโฟลเดอร์ Drive “Jabphap Gold Shop POS — เอกสาร” ลบเองได้
สำคัญ
ข้อกฎหมายที่ควรทราบ
ร้านทองต้องปฏิบัติตามกฎหมายและระเบียบการค้าทองคำด้วยตนเอง ระบบช่วยเก็บหลักฐานแต่ไม่ได้รับรองว่าการดำเนินงานของร้านถูกต้องตามกฎหมาย
- การรับซื้อทองจากบุคคล — กฎหมายว่าด้วยการค้าของเก่ากำหนดให้ผู้ค้าต้องได้รับอนุญาตและจดบันทึกผู้ขาย ระบบจึงบังคับชื่อ + เลขบัตรประชาชน (ปิดได้ในตั้งค่า) และพิมพ์ใบรับซื้อพร้อมข้อความรับรองกรรมสิทธิ์ให้ผู้ขายลงชื่อ
- การขายฝาก — ประมวลกฎหมายแพ่งและพาณิชย์ มาตรา 499 กำหนดสินไถ่ไม่เกินราคาขายฝากรวมประโยชน์ตอบแทน 15% ต่อปี ระบบจำกัดค่าตอบแทนไว้ที่ 1.25% ต่อเดือน และพิมพ์สัญญาให้ทั้งสองฝ่ายลงนาม
- ภาษีมูลค่าเพิ่ม — การคำนวณ VAT ทองรูปพรรณจากส่วนต่างราคาเป็นรูปแบบตามแนวปฏิบัติทั่วไป ควรตรวจกับผู้สอบบัญชี/กรมสรรพากรก่อนใช้งานจริง
- PDPA — เก็บเลขบัตรประชาชนเท่าที่จำเป็น บันทึกความยินยอม จำกัดผู้เห็นเลขเต็ม และไม่แชร์ไฟล์ชีต
อ้างอิง
โครงสร้างชีตในฐานข้อมูล
แก้ไขข้อมูลผ่านหน้าเว็บเท่านั้น ห้ามเปลี่ยนชื่อชีต หัวคอลัมน์ และคอลัมน์ id
| ชีต | เก็บอะไร | คอลัมน์สำคัญ |
|---|---|---|
| Settings | การตั้งค่า | shop_*, *_prefix, g_per_baht_orn, g_per_baht_bar, categories (JSON), deductions (JSON), consign_*, price_url, price_map |
| Prices | ราคาทองทุกรอบ | at, date, round, bar_buy, bar_sell, orn_buy, orn_sell, source |
| Items | สินค้าตามป้าย | tag, gtype (orn/bar), category, purity, weight_baht, weight_g, labor, cost, status, sale_price |
| Customers | ลูกค้า | code, name, phone, id_card, address, consent_at |
| Bills | บิล | bill_no, kind, lines (JSON), ราคาที่ใช้, sale_total, buy_total, net, vat, pay_method, status |
| Consigns | ขายฝาก | no, items, amount, rate, months, due_date, paid_until, payments (JSON), status |
| CashMoves / DayClose | เงินเข้า-ออก · ปิดยอด | type, method, amount (+เข้า −ออก), ref · expected_cash, counted_cash, diff |
| Users / Counters / Audit | ผู้ใช้ · เลขที่ · ประวัติ | role (admin/manager/staff) · เลขรันรายเดือน · บันทึกการใช้งาน (รวมการเปิดดูเลขบัตร) |
ช่วยเหลือ
คำถามที่พบบ่อย
เปิดบิลไม่ได้ ขึ้นว่าราคาเป็นของเมื่อวาน
ระบบไม่ให้ขาย/รับซื้อด้วยราคาเก่า ให้ผู้จัดการตั้งราคารอบแรกของวันในเมนูราคาทองก่อน
กดบันทึกบิลแล้วขึ้นว่าราคาทองถูกปรับเป็นรอบใหม่
มีคนตั้งราคารอบใหม่ระหว่างที่เปิดบิลอยู่ ระบบโหลดราคาใหม่และคำนวณยอดให้แล้ว ตรวจยอดกับลูกค้าแล้วกดบันทึกอีกครั้ง
พนักงานลดค่ากำเหน็จให้ลูกค้าประจำมากกว่าเพดาน
ให้ผู้จัดการล็อกอินทำบิลนั้น หรือเพิ่มเพดานในตั้งค่า › หน่วย & ราคา
ขายผิดชิ้น / บันทึกผิด
ผู้จัดการเปิดบิล › ยกเลิกบิล (ระบุเหตุผล) สินค้ากลับเข้าสต็อกและบันทึกรายการเงินกลับอัตโนมัติ ยกเลิกได้จนกว่าจะปิดยอดของวันนั้น
ทองที่รับซื้อมาจะเอาไปขายต่อ
สต็อกทอง › แท็บทองเก่า › ติ๊กชิ้นที่ต้องการ › นำออกขาย (ค่ากำเหน็จตามประเภท แก้รายชิ้นได้) หรือ ส่งหลอม/ขายส่ง แล้วใส่ยอดเงินที่ได้รับ
เปิดลิงก์แล้วหน้าขาว / ไม่พบฟังก์ชัน doGet
วาง Code.gs ไม่ครบหรือไฟล์ HTML ไม่ได้ชื่อ Index แก้แล้ว Deploy เวอร์ชันใหม่
อัปเดตเป็นเวอร์ชันใหม่อย่างไร
วางทับ Code.gs และ Index.html รัน setup อีกครั้ง (ไม่ลบข้อมูลเดิม) แล้ว Deploy › จัดการการทำให้ใช้งานได้ › ✎ › เวอร์ชันใหม่ — URL เดิมใช้ต่อได้
ใช้พร้อมกันหลายเครื่องได้ไหม
ได้ ทุกการบันทึกใช้ LockService ป้องกันข้อมูลชนกันและป้องกันขายป้ายเดียวกันซ้ำ เหมาะกับร้านขนาดเล็ก–กลาง (ข้อมูลหลักหมื่นแถว)
ลิขสิทธิ์
ข้อกำหนดสิทธิ์การใช้งาน
Jabphap Gold Shop POS สงวนลิขสิทธิ์ © 2569 (2026) jabphap.com · ผู้ซื้อได้รับสิทธิ์ใช้งานสำหรับกิจการของตนเองตามที่ระบุในการสั่งซื้อ ห้ามจำหน่าย แจกจ่าย หรือดัดแปลงเพื่อขายต่อ รายละเอียดดูไฟล์ LICENSE.txt