งานจริงระดับ Standard ที่คุณเอกชัยตรวจรับได้ทันที — โค้ด Python ที่ deploy ขึ้น Google Cloud, ต่อ Google Sheets + Looker + Telegram, ผ่านการทดสอบ edge case และ UAT ครบทุกข้อ. คัดลอกโค้ด/ดาวน์โหลดไฟล์จริงได้ทุกชิ้นด้านล่าง
โค้ด + config + คู่มือ + รายงาน — ดาวน์โหลด/ตรวจได้ทุกไฟล์
ทุกกล่อง deploy แล้วและเชื่อมต่อกันครบ
โค้ด Python production จริง พร้อม config — กดแท็บเพื่อสลับไฟล์
แท็บ input ของลูกค้า + แท็บ output ที่ระบบเขียน
| sku | name | client_price |
|---|---|---|
| SKU-DRILL-01 | สว่านไร้สาย Cordless Drill X 20V | 1290 |
| SKU-WASHER-07 | เครื่องฉีดน้ำแรงดันสูง Pressure Washer Pro | 2450 |
| SKU-SAW-03 | เลื่อยวงเดือนไฟฟ้า 7นิ้ว | 1890 |
| Timestamp | Competitor | SKU | Scraped | Stock | Client | Diff% | Status |
|---|---|---|---|---|---|---|---|
| 08:00:12 | ToolKingTH | DRILL-01 | 1150 | In Stock | 1290 | 10.9 | Success |
| 08:00:14 | MegaHardware | DRILL-01 | 1275 | In Stock | 1290 | 1.2 | Success |
| 08:00:17 | BaanChang | DRILL-01 | — | ? | 1290 | — | Selector Error |
สรุปภาพรวมราคาตลาดในจอเดียว — ดูบนมือถือได้
รูปแบบข้อความที่ระบบส่ง — ตรงกับโค้ดใน main.py
ขั้นตอนจริง + คำสั่ง gcloud คัดลอกได้
เปิด API: Cloud Functions, Cloud Scheduler, Sheets API
สร้าง SA → ดาวน์โหลด key JSON → เอาอีเมล SA ไป Share Google Sheet (Editor) ไม่งั้นเขียนไม่ได้
ทัก @BotFather → ได้ TG_TOKEN · หา chat id → TG_CHAT
วาง config ใน .env แล้วรัน:
gcloud functions deploy competitor-monitor \ --runtime python311 --region asia-southeast1 \ --trigger-http --entry-point run \ --set-env-vars SHEET_ID=...,TG_TOKEN=...,TG_CHAT=...
gcloud scheduler jobs create http daily-competitor-check \ --schedule "0 8 * * *" --time-zone Asia/Bangkok \ --uri <FUNCTION_URL> --http-method GET
เช็ค: Force Run → มีแถวใน Results + Telegram เด้ง
พิสูจน์ว่า "เว็บเดียวล่มไม่พังทั้งระบบ" และ "ความผิดปกติถูกแจ้งเสมอ"
| # | กรณีทดสอบ | ผลที่คาดหวัง | ผล |
|---|---|---|---|
| 1 | ราคาปกติ scrape ได้ | บันทึก Results · Status=Success | ✅ ผ่าน |
| 2 | price selector หาย (drift) | Status=Selector Error + alert | ✅ ผ่าน |
| 3 | เว็บล่ม / timeout | tenacity retry 3 → Timeout + alert | ✅ ผ่าน |
| 4 | ราคา "฿1,290.00" | _parse_price → 1290.0 | ✅ ผ่าน |
| 5 | คู่แข่งถูกกว่า ≥10% | Telegram alert "ตัดราคา" | ✅ ผ่าน |
| 6 | คู่แข่ง restock (Out→In) | StockChanged=YES + alert "เติมของ" | ✅ ผ่าน |
| 7 | เว็บเดียวล่ม | run ไม่ abort · เว็บอื่น scrape ต่อ | ✅ ผ่าน |
| 8 | ยิงถี่เกิน (anti-ban) | REQUEST_DELAY_SEC หน่วง request | ✅ ผ่าน |
| 9 | Sheets API quota | batch append ครั้งเดียวต่อ run | ✅ ผ่าน |
| 10 | run แรก (ไม่มี Results เก่า) | ไม่ error · ข้าม restock detection | ✅ ผ่าน |
| 11 | ส่ง Telegram ไม่ได้ | log Cloud Logging · ไม่ crash | ✅ ผ่าน |
การตรวจรับงานทีละข้อ พร้อมปฏิกิริยาจริงของลูกค้า
คุณเอกชัยครับ ทีม AICE ส่งมอบระบบเฝ้าระวังราคาที่ออกแบบเพื่อ PowerTools Thailand โดยเฉพาะ เราเน้นโครงสร้างแบบ modular — หากเว็บคู่แข่งเจ้าใดปรับโครงสร้างจน scraper พัง ระบบส่วนที่เหลือยังทำงานต่อปกติ ทุกความผิดปกติถูกส่งตรงเข้า Telegram ทันที
เราทดสอบจนมั่นใจว่าเสถียร แต่เพราะเว็บคู่แข่งอาจเปลี่ยนหน้าตา (selector drift) ตลอด จึงเสนอแผน Retainer ดูแลรายเดือน · การันตีแก้บั๊กฟรี 3 ครั้งภายใน 30 วัน ขอบคุณที่ไว้วางใจครับ