Skip to content

Webhooks

Webhook = ระบบ WMS "โทรหา" URL ของคุณเมื่อเกิดเหตุการณ์ที่กำหนด

คืออะไร?

เปลี่ยนจาก "ระบบอื่นต้องมา Pull WMS" → เป็น "WMS Push ไปบอกระบบอื่นทันทีเมื่อเกิดเหตุการณ์"

เช่น:

  • มี Order ใหม่ → Push ไป ERP
  • Shipment ส่งออก → Push ไป Notification system
  • Stock ต่ำกว่า Min → Push ไป Procurement

วิธีเข้าหน้า Webhooks

Sidebar (Admin) → Webhooks

สร้าง Webhook

  1. + New Webhook
  2. กรอก:
    • Name — เช่น ERP_Order_Sync
    • Target URLhttps://erp.your-company.com/webhooks/wms
    • Events — เลือกหลายอันได้:
      • order.created
      • order.shipped
      • inventory.low_stock
      • grn.confirmed
      • ฯลฯ
    • Secret — ใช้ HMAC verify (แนะนำ)
    • Headers (ทางเลือก) — Custom headers
  3. Save

รูปแบบ Payload

json
{
  "id": "evt_2026_001234",
  "type": "order.shipped",
  "timestamp": "2026-05-29T14:32:11Z",
  "data": {
    "order_id": "ORD-2026-1234",
    "customer": "CUST-001",
    "tracking": "FLASH123456",
    "items": [...]
  }
}

ใส่ HMAC signature ใน Header:

X-WMS-Signature: sha256=abc123...

Verify Signature

ฝั่งผู้รับ:

js
const expected = hmac('sha256', secret).update(body).digest('hex')
if (expected !== receivedSignature) throw 'Invalid'

Delivery + Retry

ถ้า Endpoint ตอบ:

  • 2xx — Success ✅
  • 4xx / 5xx / timeout — Retry

Retry policy:

  • 5 ครั้ง
  • Backoff: 30s, 2m, 10m, 1h, 6h
  • หลังจากนั้น → Failed (ต้อง resend manually)

ดู Delivery Log

ในแต่ละ Webhook → Tab Deliveries:

  • Timestamp
  • Event Type
  • Response Code
  • Response Body (ถ้า fail)
  • Latency
  • Retry count

Resend Manually

หาก fail แต่ Endpoint แก้แล้ว:

  1. เปิด Delivery → กด Resend

Test Webhook

  1. เปิด Webhook → Send Test Event
  2. ระบบส่ง dummy payload
  3. Verify ที่ Endpoint ของคุณ

Events ที่มี

Inventory

  • stock.changed
  • inventory.low_stock
  • inventory.expiring_soon

Inbound

  • asn.created
  • grn.created
  • grn.confirmed
  • putaway.completed

Outbound

  • order.created
  • order.allocated
  • wave.released
  • pick.completed
  • shipment.shipped
  • shipment.delivered

Returns

  • rma.requested
  • rma.approved
  • rma.received

Admin

  • user.created
  • audit.alert

Best Practices

  1. Idempotent receiver — รับ event เดิม 2 ครั้งไม่ทำซ้ำ (ใช้ event ID เป็น dedup key)
  2. Response เร็ว — 2xx ภายใน 5 วินาที (อย่าทำงานหนักก่อน respond)
  3. Verify signature ทุกครั้ง
  4. Monitor failed deliveries — alert ทันที

หน้าที่เกี่ยวข้อง

เผยแพร่ภายใต้ Digital Outsourcing