Skip to content

Instantly share code, notes, and snippets.

@peerasak-u
Last active May 7, 2026 16:14
Show Gist options
  • Select an option

  • Save peerasak-u/1dbc70968201212a82eb54b505e2fceb to your computer and use it in GitHub Desktop.

Select an option

Save peerasak-u/1dbc70968201212a82eb54b505e2fceb to your computer and use it in GitHub Desktop.
Summary of Order Extractor Enhancement (Issue #8)

📋 สรุปแผนงานพัฒนาระบบ Order Extractor (Issue #8)

อัปเกรดระบบดึงข้อมูลออเดอร์ให้รองรับราคา, Webhook และไฟล์รูปแบบใหม่

1. ดึงข้อมูลราคา (Pricing Data) 💰

  • เพิ่มการดึงข้อมูล pack_size (เช่น 12x750ml) และ price_per_pack (ราคาต่อลัง/แพ็ค)
  • รองรับคู่ค้าเดิม: CPALL, Lotus, BigC, TopsMini
  • เพิ่มฟิลด์ใน Database ทั้งส่วน Order และ Item

2. ระบบ Webhook 🔗

  • ส่งข้อมูลออเดอร์ไปที่ระบบอื่น (ERP) อัตโนมัติหลังจากแกะไฟล์เสร็จ
  • ทำงานแบบ Async (ไม่หน่วงหน้าจอ) และมีระบบ Retry ถ้าส่งไม่สำเร็จ
  • เพิ่มการตั้งค่า Webhook URL และ API Key รายบริษัท (Company)
  • ระบุ tax_id ของคู่ค้าไปในข้อมูลที่ส่งด้วย

3. รองรับการอัปโหลดไฟล์คู่ (Dual-File Parsing) 📂📂

  • สำหรับ Tops และ MaxValue ต้องอัปโหลด 2 ไฟล์พร้อมกัน:
    • Format A: รายละเอียดจำนวนสินค้าแยกตามสาขา/DC
    • Format B: รายละเอียดราคา (PO Summary)
  • ระบบจะรวมข้อมูลจากทั้ง 2 ไฟล์เข้าด้วยกันโดยอัตโนมัติ (Match ด้วย Barcode/SKU)

4. เพิ่มคู่ค้าใหม่ (New Partner Parsers) 🆕

  • พัฒนา Parser ใหม่สำหรับ:
    • TGM (รองรับ 3 รูปแบบย่อย)
    • Lawson
    • CJ Express

5. ปรับปรุงฐานข้อมูล (Database Schema) 🗄️

  • เพิ่มคอลัมน์เก็บข้อมูลราคาใน OrderProduct และ OrderItemRecord
  • เพิ่ม tax_id ในตาราง Partner
  • เพิ่มการตั้งค่า Webhook ในตาราง Company

🚩 สิ่งที่ต้องขอจากลูกค้า (Pending from Customer)

  1. Tax ID: เลขประจำตัวผู้เสียภาษีของคู่ค้าทุกราย (เพื่อใช้ระบุตัวตนใน Webhook)
  2. Webhook Target Schema: รูปแบบข้อมูล JSON ที่ระบบปลายทาง (ERP) ต้องการรับ
    • หมายเหตุ: สำหรับ Sample Files ตอนนี้ได้รับครบถ้วนแล้ว

หมายเหตุ: จะมีการทำ Database Migration (Alembic) และเพิ่ม Automated Tests เพื่อความถูกต้องของข้อมูล

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment