แพลตฟอร์มเชื่อมต่อคำสั่งซื้อ B2B
แบ็กเอนด์ ผลงานเด่น

แพลตฟอร์มเชื่อมต่อคำสั่งซื้อ B2B

แพลตฟอร์ม B2B แบบ self-hosted สำหรับแลกเปลี่ยนใบสั่งซื้อ (PO), ใบส่งของ (Delivery Note) และการยืนยัน Sales Order ระหว่าง ERP ของผู้ซื้อและผู้ขายผ่าน REST + OAuth2 พร้อม pipeline ขาออกแบบ Transactional Inbox และ adapter ที่ไม่ผูกกับผู้ซื้อรายใดเป็นการเฉพาะ ควบคุมด้วยไฟล์ JSON configuration

ภาพรวม

แพลตฟอร์มเชื่อมต่อคำสั่งซื้อแบบ B2B ระดับโปรดักชันที่เข้ามาแทนที่การทำงานผ่านอีเมลและสเปรดชีต โดยใช้ REST/JSON บน HTTPS พร้อม OAuth2 client-credentials และ JWT สำหรับการ submit / update / confirm / reject / cancel / version ของ Purchase Order และ Delivery Note สร้างด้วย Node.js + TypeScript พร้อม adapter ที่กำหนดค่าด้วย JSON ทำให้เพิ่มคู่ค้ารายใหม่ได้ด้วยการตั้งค่าแทนการเขียนคลาสใหม่ทุกครั้ง

จุดเด่น

  • DefaultBuyerAdapter ที่รองรับผู้ซื้อได้ทุกราย โดยกำหนดค่าผ่าน JSON adapterConfig (field resolver และการ map body) พร้อมสร้าง Swagger เฉพาะของแต่ละคู่ค้าจากนิยาม integration
  • เก็บประวัติเวอร์ชันของ PO และ DN แบบครบถ้วน พร้อมการ track supersession ครอบคลุมการ submit / update / confirm / reject / cancel / version
  • ใช้ Transactional Inbox pattern พร้อม retry แบบ exponential-backoff และ dead-letter queue เพื่อให้ข้อความรอดจากการรีสตาร์ทและความผิดพลาดชั่วคราว
  • Distributed locking บน scheduler ที่ใช้ MySQL (ScheduledJob / JobExecution) ป้องกันไม่ให้ worker ซ้ำประมวลผลงานซ้ำกัน
  • ยืนยันตัวตนด้วย OAuth2 client-credentials และ JWT พร้อมตรวจสอบ payload ขาเข้าทุกรายการด้วย JSON Schema ผ่าน AJV
  • DocSendWorker พร้อม log การส่งแยกต่อเอกสาร สร้าง PDF ใบสั่งซื้อด้วย pdfkit และ SSE event stream สำหรับอัปเดต UI แบบเรียลไทม์
  • ไปป์ไลน์ log ไปยัง Grafana Loki ผ่าน file-queue worker ที่ crash-safe, deploy ด้วย Docker Compose, health check ทุก service

สถาปัตยกรรม

ส่วนประกอบ รายละเอียด
พอร์ทัล Auth และ admin แอป Next.js 16 ทำหน้าที่เป็น OAuth2 authorisation server และ admin console สำหรับจัดการ client คู่ค้า adapter config และออก JWT bearer token
พอร์ทัลใช้งาน UI Next.js 16 + React สำหรับผู้ขายและผู้ซื้อใช้ดู ยืนยัน ปฏิเสธ และกระทบยอดเอกสาร PO และ DN พร้อมอัปเดตสดผ่าน SSE
API service Node.js + TypeScript บน Express 5 ให้บริการ endpoint submit/update/confirm/reject/cancel/version พร้อมตรวจสอบด้วย AJV JSON Schema
ฐานข้อมูล MySQL 8 ผ่าน Prisma 7 — เก็บ version-history chain, supersession, Transactional Inbox, dead-letter queue, send log, และตาราง scheduler
Scheduler ตาราง ScheduledJob / JobExecution บน MySQL พร้อม distributed locking ขับเคลื่อน retry แบบ exponential backoff ข้ามการรีสตาร์ท
DocSendWorker ตัวส่งออกเอกสารที่ใช้ DefaultBuyerAdapter แบบรองรับทุกผู้ซื้อผ่าน JSON adapterConfig พร้อมสร้าง PDF ใบสั่งซื้อด้วย pdfkit
Logging ส่ง log ไปยัง Grafana Loki ผ่าน file-queue worker ที่ crash-safe และ log แบบ structured จากทุก service
การ deploy Docker Compose พร้อม Dockerfile สำหรับโปรดักชันและ health check พร้อมคู่มือติดตั้งสำหรับ Windows Server 2025 และ Ubuntu

เทคโนโลยี

Node.jsTypeScriptExpressPrismaMySQLNext.jsReactOAuth2 / JWTAJV JSON SchemaDocker

รายละเอียด

หมวดหมู่ แบ็กเอนด์
จำนวนเทคโนโลยี 10
สถานะ เผยแพร่แล้ว
ผลงานเด่น ใช่

แกลเลอรี

screenshot_1.png
screenshot_2.png
screenshot_3.png

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