Jabphap Gold Shop POS คู่มือการติดตั้ง
⏱ ติดตั้งประมาณ 10–15 นาที · ไม่ต้องเขียนโค้ด

ติดตั้ง Gold Shop POS บน Google ของร้านเอง

ระบบหน้าร้านทอง ขาย รับซื้อคืน เปลี่ยนลาย ขายฝาก ทำงานบน Google Sheets + Google Apps Script ในบัญชี Google ของร้าน ข้อมูลลูกค้า บิล และเอกสาร PDF อยู่ใน Drive ของร้าน ไม่มีค่าบริการรายเดือน

👤บัญชี Googleบัญชีของร้าน 1 บัญชี (เจ้าของข้อมูล)
💻คอมพิวเตอร์ใช้ตอนติดตั้ง หน้าร้านใช้คอม/แท็บเล็ต/มือถือได้
📄ไฟล์ 3 ไฟล์Code.gs · Index.html · appsscript.json
📺ทีวี/จอ (ไม่บังคับ)สำหรับป้ายราคาทองหน้าร้าน
📑 สารบัญ
ส่วนที่ 1

ติดตั้งบน Google

ทำครั้งเดียวบนคอมพิวเตอร์

1

เริ่มต้น

สร้างไฟล์ Google Sheets ใหม่

ไฟล์นี้คือ “ฐานข้อมูลร้าน” เก็บราคาทอง สต็อก บิล ลูกค้า ขายฝาก และเงินสด

  1. เข้า sheets.new ด้วยบัญชี Google ของร้าน (แนะนำบัญชีของกิจการ ไม่ใช่บัญชีส่วนตัวของพนักงาน)
  2. ตั้งชื่อไฟล์ เช่น ร้านทอง — ฐานข้อมูล
⚠ ห้ามแชร์ไฟล์ชีตให้พนักงาน

ไฟล์มีเลขบัตรประชาชนลูกค้า พนักงานใช้งานผ่านเว็บแอปด้วยบัญชีและ PIN ของตัวเองเท่านั้น ระบบปิดบังเลขบัตรและบันทึกการเปิดดูให้

2

ใส่ระบบ

วางไฟล์ Code.gs, Index.html และ appsscript.json

  1. ในไฟล์ชีต ไปที่ ส่วนขยาย›Apps Script (Extensions › Apps Script)
  2. ตั้งชื่อโปรเจกต์เป็น Jabphap Gold Shop POS
  3. เปิดไฟล์ Code.gs กด Ctrl+A ลบโค้ดเดิม แล้ววางเนื้อหาไฟล์ Code.gs ที่ได้รับทั้งไฟล์
  4. กด + ข้างคำว่า “ไฟล์” › HTML ตั้งชื่อ Index (ไม่ต้องพิมพ์ .html) ลบเนื้อหาเดิม แล้ววางเนื้อหา Index.html
  5. ⚙ การตั้งค่าโปรเจกต์ › ติ๊ก แสดงไฟล์ Manifest “appsscript.json” ในเครื่องมือแก้ไข แล้วเปิด appsscript.json วางเนื้อหาจากไฟล์ที่ได้รับแทนทั้งหมด
  6. กด Ctrl+S บันทึก
✓ ตรวจชื่อไฟล์

ต้องมี Code.gs, Index.html, appsscript.json — ชื่อ Index ต้องตรงทุกตัวอักษร

⚠ วางให้ครบทั้งไฟล์

ถ้าคัดลอกไม่ครบจะขึ้น “SyntaxError” ตอนบันทึก ให้คัดลอกใหม่ทั้งไฟล์

3

สร้างฐานข้อมูล

รันฟังก์ชัน setup

  1. เลือกฟังก์ชัน setup ในแถบเครื่องมือด้านบน แล้วกด ▶ เรียกใช้ (Run)
  2. ครั้งแรก Google จะขออนุญาตสิทธิ์ ทำตามขั้นตอนที่ 4 แล้วรันอีกครั้งถ้าจำเป็น
  3. รอจนบันทึกการดำเนินการขึ้นว่า “ติดตั้ง Jabphap Gold Shop POS เรียบร้อย”
สร้างชีต11 ชีตพร้อมหัวตาราง

Settings · Users · Prices · Items · Customers · Bills · Consigns · CashMoves · DayClose · Counters · Audit

ข้อมูลตัวอย่างร้านทองจำลอง

ราคาทองย้อนหลัง 90 วัน สินค้า ~140 ชิ้น 7 ประเภท ลูกค้า 18 ราย บิลย้อนหลัง 1 เดือน สัญญาขายฝาก 8 ฉบับ และปิดยอดรายวัน

ผู้ใช้admin + บัญชีตัวอย่าง

admin / 1234 · ผู้จัดการ somchai · พนักงาน nok, ploy (PIN 1111)

หลังติดตั้ง ไฟล์ชีตจะมีเมนู 🪙 Gold Shop POS ใช้รัน setup ซ้ำ (ไม่ลบข้อมูลเดิม) แสดงลิงก์เว็บแอป รีเซ็ต PIN ผู้ดูแล และล้างข้อมูลตัวอย่าง

4

ความปลอดภัย

อนุญาตสิทธิ์ให้สคริปต์

  1. หน้าต่าง “ต้องมีการให้สิทธิ์” กด ตรวจสอบสิทธิ์ แล้วเลือกบัญชีของคุณ
  2. หน้า “Google ยังไม่ได้ยืนยันแอปนี้” กด ขั้นสูง › ไปที่ Jabphap Gold Shop POS (ไม่ปลอดภัย) — เป็นข้อความปกติของสคริปต์ที่ติดตั้งเอง
  3. ตรวจรายการสิทธิ์แล้วกด อนุญาต
หน้าต่างขออนุญาตสิทธิ์ของ Google Apps Script
หน้าต่างขอสิทธิ์ — กด “ตรวจสอบสิทธิ์” แล้วเลือกบัญชี (ชื่อโปรเจกต์ของคุณจะเป็น Jabphap Gold Shop POS)
หน้าเตือน Google ยังไม่ได้ยืนยันแอป
คลิก “ขั้นสูง” แล้วเลือก “ไปที่ … (ไม่ปลอดภัย)”
สิทธิ์ที่ขอใช้ทำอะไร
ดู แก้ไข สร้าง สเปรดชีตอ่าน/เขียนราคาทอง สต็อก บิล ลูกค้า ขายฝาก ในไฟล์ชีตนี้
ดู แก้ไข สร้าง ไฟล์ใน Google ไดรฟ์บันทึกใบเสร็จ ใบรับซื้อ และสัญญาขายฝากเป็น PDF
แสดงเนื้อหาในแอป Googleเมนู 🪙 Gold Shop POS บนไฟล์ชีต
จัดการทริกเกอร์ดึงราคาทองอัตโนมัติทุก 15 นาที (เมื่อเปิดใช้เท่านั้น)
เชื่อมต่อบริการภายนอกดึงราคาทองจาก URL ที่ร้านกำหนด (เมื่อเปิดใช้เท่านั้น)
5

เปิดให้ใช้งาน

เผยแพร่เป็นเว็บแอป

  1. มุมขวาบน กด การทำให้ใช้งานได้›การทำให้ใช้งานได้รายการใหม่
  2. กดรูปเฟือง ⚙ ข้าง “เลือกประเภท” › เว็บแอป
  3. เรียกใช้ในฐานะ = ฉัน · ผู้ที่มีสิทธิ์เข้าถึง = ทุกคน แล้วกด ทำให้ใช้งานได้
  4. คัดลอก URL ของเว็บแอป (ลงท้าย /exec) เก็บเป็นบุ๊กมาร์กที่เครื่องหน้าร้าน · ป้ายราคาทีวีใช้ URL เดียวกันต่อท้าย ?board=1
เมนูการทำให้ใช้งานได้รายการใหม่
เมนู Deploy › New deployment
เลือกประเภทเป็นเว็บแอป
กดรูปเฟืองแล้วเลือก “เว็บแอป”
ตั้งค่าเว็บแอป
เรียกใช้ในฐานะ “ฉัน” · ผู้มีสิทธิ์เข้าถึง “ทุกคน” — ผู้ใช้ไม่ต้องมีบัญชี Google แต่ต้องล็อกอินด้วยชื่อผู้ใช้และ PIN ของระบบ
URL ของเว็บแอป
คัดลอก URL ของเว็บแอป (ลงท้าย /exec)
⚠ ทำไมเลือก “ทุกคน” แล้วยังปลอดภัย

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

6

ใช้งานได้แล้ว

เข้าสู่ระบบครั้งแรกและเปลี่ยน PIN

  1. เปิด URL เว็บแอป ใส่ชื่อผู้ใช้ admin และ PIN 1234
  2. ระบบบังคับตั้ง PIN ใหม่ (ตัวเลข 4–8 หลัก ห้ามใช้ 1234 / 0000)
หน้าเข้าสู่ระบบ
หน้าเข้าสู่ระบบ — พนักงานแต่ละคนใช้ชื่อผู้ใช้และ PIN ของตัวเอง
💡 ลืม PIN ผู้ดูแล

เปิดไฟล์ชีต › เมนู 🪙 Gold Shop POS › 🔑 รีเซ็ต PIN ผู้ดูแล (admin) เป็น 1234 ส่วนผู้ใช้คนอื่นให้เจ้าของร้านรีเซ็ตในหน้าตั้งค่า › ผู้ใช้งาน

ส่วนที่ 2

ตั้งค่าก่อนใช้งานจริง

ทำผ่านเว็บแอปด้วยบัญชีเจ้าของร้าน — เมนู ตั้งค่า

7

ข้อมูลร้าน

ข้อมูลร้าน เอกสาร และ VAT

แท็บ ร้าน & เอกสาร: ชื่อร้าน ที่อยู่ เบอร์โทร เลขผู้เสียภาษี เลขที่ใบอนุญาตค้าของเก่า (พิมพ์บนใบรับซื้อ) อักษรนำเลขบิลขาย/รับซื้อ/เปลี่ยนลาย/สัญญาขายฝาก (รันใหม่ทุกเดือน เช่น SL6910-0001) ข้อความท้ายใบเสร็จ และเงินทอนตั้งต้นปกติ

ร้านจดทะเบียน VAT: ติ๊ก “ร้านจดทะเบียน VAT” ระบบคิดภาษีทองรูปพรรณจาก ส่วนต่างราคาขายกับราคารับซื้อทองรูปพรรณประจำวัน (ราคารวม VAT) และไม่คิด VAT ทองแท่ง 96.5% ใบเสร็จ A4 จะเปลี่ยนชื่อเป็นใบกำกับภาษี — ควรให้ผู้สอบบัญชีของร้านตรวจรูปแบบก่อนใช้จริง

8

มาตรฐานน้ำหนัก

หน่วยน้ำหนัก การปัดเศษ และการตั้งราคา

แท็บ หน่วย & ราคา: กรัมต่อ 1 บาททอง แยก ทองรูปพรรณ (15.16 ก.) และ ทองแท่ง (15.244 ก.) ความบริสุทธิ์มาตรฐาน 96.5% การปัดยอดเงิน (1/5/10/50/100 บาท — ยอดขายปัดใกล้สุด ยอดรับซื้อปัดลง) เพดานส่วนลดค่ากำเหน็จของพนักงาน เกณฑ์เตือนราคาเปลี่ยน และบังคับเลขบัตรผู้ขาย

ตั้งค่าหน่วยน้ำหนัก
หน่วยน้ำหนัก การปัดเศษ เพดานส่วนลดค่ากำเหน็จ และเกณฑ์เตือนราคาเปลี่ยน
9

กติกาของร้าน

ประเภทสินค้า ค่ากำเหน็จ และอัตราหักรับซื้อ

แท็บ ประเภท & ค่ากำเหน็จ: ชื่อประเภท (สร้อยคอ แหวน กำไล …) ชนิดทอง ค่ากำเหน็จต่อบาท และขั้นต่ำต่อชิ้น — ใช้แนะนำค่ากำเหน็จเมื่อรับสินค้าเข้า

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

ตารางอัตราหักรับซื้อ
ตารางอัตราหักรับซื้อ — แก้ชื่อ ชนิดทอง และ % ได้ทุกแถว
สูตรราคารับซื้อ

น้ำหนัก(กรัม) ÷ กรัมต่อบาท × ราคารับซื้อประจำรอบ × (% ทอง ÷ 96.5) × (1 − อัตราหัก%) แล้วปัดลงตามหน่วยปัดเศษ

10

ขายฝาก

ตั้งค่าสัญญาขายฝาก

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

ตั้งค่าขายฝาก
ตั้งค่าขายฝาก พร้อมข้อความเตือนข้อกฎหมาย
11

ราคาทอง

แหล่งราคา (ไม่บังคับ) และป้ายราคาทีวี

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

ป้ายราคาทีวี: เปิด URL เว็บแอปต่อท้าย ?board=1 บนสมาร์ททีวี/กล่องแอนดรอยด์/คอมที่ต่อจอ แล้วกด F11 เต็มจอ — ไม่ต้องล็อกอิน แสดงเฉพาะราคา รีเฟรชตามวินาทีที่ตั้งไว้

ตั้งค่าแหล่งราคา
URL JSON การจับคู่ path ทริกเกอร์อัตโนมัติ และข้อความใต้ป้ายราคา
12

ผู้ใช้

เพิ่มผู้จัดการและพนักงาน

สิทธิ์ทำอะไรได้
พนักงานขายขาย รับซื้อ เปลี่ยนลาย ทำ/รับชำระขายฝาก ลูกค้า สรุปประจำวัน ค่าใช้จ่าย — ลดค่ากำเหน็จได้ไม่เกินเพดาน ใช้อัตราหักตามตาราง ไม่เห็นต้นทุน เห็นเลขบัตรแบบปิดบัง
ผู้จัดการ/หัวหน้าร้านทุกอย่างของพนักงาน + ตั้งราคาทอง รับสินค้าเข้า ส่งหลอม ยกเลิกบิล บันทึกหลุด นำเงินออก ปิดยอด เปิดดูเลขบัตรเต็ม
เจ้าของร้านทุกอย่าง + รายงานกำไร ตั้งค่า ผู้ใช้ ประวัติการใช้งาน
ดูอีเมลหลักของบัญชี Googleตรวจว่าผู้รันฟังก์ชันผู้ดูแล (ติดตั้ง / รีเซ็ตรหัสผ่าน) เป็นเจ้าของไฟล์ — กันไม่ให้ผู้เปิดเว็บแอปเรียกใช้ได้

เมนู ตั้งค่า › ผู้ใช้งาน › เพิ่มผู้ใช้ ใส่ชื่อ ชื่อผู้ใช้ภาษาอังกฤษ สิทธิ์ และ PIN เริ่มต้น (ผู้ใช้จะถูกบังคับเปลี่ยน PIN ครั้งแรก)

13

เริ่มใช้งานจริง

บันทึกสต็อกยกมา แล้วล้างข้อมูลตัวอย่าง

  1. เปิดไฟล์ชีต › เมนู 🪙 Gold Shop POS › 🧹 ล้างข้อมูลตัวอย่าง — ลบราคา สินค้า ลูกค้า บิล ขายฝาก เงินสด และรีเซ็ตเลขที่เอกสาร เก็บการตั้งค่าและผู้ดูแลไว้ บัญชีตัวอย่าง (somchai, nok, ploy) ถูกลบด้วย
  2. ตั้งราคาทองรอบแรกของวันในเมนู ราคาทอง
  3. รับสินค้าทั้งหมดเข้าสต็อกในเมนู สต็อกทอง › รับสินค้าเข้า (เว้นรหัสป้ายให้ระบบออกให้ หรือใช้รหัสป้ายเดิมของร้าน) แล้วพิมพ์ป้ายสินค้า
  4. เช้าวันแรกบันทึก เงินทอนตั้งต้น ในเมนูสรุปประจำวัน

PDF ตัวอย่าง (ถ้าสร้างไว้) อยู่ในโฟลเดอร์ Drive “Jabphap Gold Shop POS — เอกสาร” ลบเองได้

อ้างอิง

โครงสร้างชีตในฐานข้อมูล

แก้ไขข้อมูลผ่านหน้าเว็บเท่านั้น ห้ามเปลี่ยนชื่อชีต หัวคอลัมน์ และคอลัมน์ 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 ป้องกันข้อมูลชนกันและป้องกันขายป้ายเดียวกันซ้ำ เหมาะกับร้านขนาดเล็ก–กลาง (ข้อมูลหลักหมื่นแถว)