DEE DOG ∞ SEE CATกลับหน้าสิทธิประโยชน์

สัญญาเชื่อมต่อ 1.1 · เว็บไซต์รุ่น 2.6.13

ERP ส่วนกลาง
เชื่อมยอดถึงลูกค้า

PetPOS ส่งผ่าน ERP สาขา / Branch Server ไปยัง ERP ส่วนกลาง ส่วนกลางเป็นผู้เรียก API เว็บไซต์เพื่อบันทึกแสตมป์และพอยท์

เจ้าของข้อมูลและหน้าที่

สำนักงานใหญ่กำหนดสินค้า ราคา และเงื่อนไข ERP ส่วนกลางเผยแพร่เงื่อนไขการสะสม เว็บไซต์อ่านเงื่อนไขนั้นและถือสมุดยอด Loyalty หลักชุดเดียว PetPOS ไม่สร้างรหัสสินค้าและเงื่อนไขเอง

เว็บไซต์รับเฉพาะกุญแจของ ERP ส่วนกลางที่ลงทะเบียนแล้ว กุญแจ POS สาขา อุปกรณ์ หรือ ERP รุ่นเดิมจะไม่ได้รับสิทธิ์ส่วนกลางโดยอัตโนมัติ

เริ่มเชื่อมต่อที่ส่วนกลาง

  1. SUPER ADMIN เปิด SaaS → โปรไฟล์และการตั้งค่า → เชื่อมต่อ API · ERP/POS
  2. ลงทะเบียน ERP ส่วนกลาง เลือกสาขาและสิทธิ์ แล้วเก็บ API key ไว้ที่บริการ HQ
  3. ตั้งกุญแจในระบบจัดการ secret ของ HQ ห้ามตั้งที่ PetPOS หรือเครื่องสาขา
  4. ERP เรียก GET status แล้วนำเข้าทะเบียนและเผยแพร่เงื่อนไข
/api/integrations/loyalty/v1/
Authorization: Bearer YOUR_ENROLLED_HQ_KEY
Content-Type: application/json

หากติดตั้งใต้โฟลเดอร์ย่อย ให้เติมชื่อโฟลเดอร์หน้า /api ตาม URL ในหน้าตั้งค่า ใช้ HTTPS ในระบบจริง

เส้นทางข้อมูล

ระบบหน้าที่
ERP ส่วนกลางอนุมัติข้อมูลหลักและเงื่อนไข ตรวจธุรกรรมสาขา เรียก API เว็บไซต์
ERP สาขา / Branch Serverข้อมูลปฏิบัติการสาขา ตรวจบิล และจัดคิวส่งส่วนกลาง
PetPOSขายตามข้อมูลที่อนุมัติ สร้างเลขอ้างอิงบิล/เหตุการณ์ตามรูปแบบองค์กร
Website Loyaltyกันยอด ตัดยอด คืนยอด และเก็บประวัติในสมุดหลักเดียว

เงื่อนไขจาก ERP

สร้างหรือแก้ผ่าน POST rules ด้วยกุญแจ HQ ที่มี rules:write หน้าตั้งค่าเว็บไซต์แสดงสถานะและ revision แบบอ่านอย่างเดียว ตัวอย่าง:

{
  "externalId": "STAMP-100",
  "commandId": "RULE-STAMP-100-V1",
  "revision": 0,
  "name": "ทุก 100 บาท รับ 1 ดวง",
  "active": true,
  "currency": "stamps",
  "mode": "per_amount",
  "basis": "eligibleAmount",
  "spendEvery": "100.00",
  "reward": 1,
  "branches": ["chaengwattana"]
}

คำนวณต่อบิล ปัดเศษลง ไม่ยกเศษข้ามบิล ใช้ points และ reward เป็นข้อความทศนิยมเพื่อสะสม PTS ได้ ERP ต้องส่ง revision ที่อนุมัติ หากคำนวณเงื่อนไขซับซ้อนที่ HQ แล้ว ใช้ type grant และสิทธิ์ grants:write

ชำระด้วยแสตมป์หรือ PTS

ใช้สามขั้นตอน กันยอด → ยืนยันตัดยอด หรือปล่อยยอด POST quote เป็นเพียงการตรวจ ไม่ได้กันยอด

1. POST reservations — ส่งธุรกรรมทั้งชุดที่จะยืนยัน:

{
  "externalId": "HQ-INTENT-0001",
  "expiresInSeconds": 300,
  "transaction": {
    "externalId": "HQ-INV-0001",
    "type": "sale",
    "customer": { "externalId": "ERP-C0001" },
    "branch": "chaengwattana",
    "amount": "550.00",
    "eligibleAmount": "500.00",
    "cashAmount": "450.00",
    "spend": { "stamps": 2, "points": "10.50" },
    "rules": [{ "externalId": "STAMP-100", "revision": 1 }]
  }
}

ตรวจว่า reservation.status เป็น held ก่อนดำเนินการต่อ บันทึก reservationId ใน ERP ยอดจริงยังไม่ถูกหัก แต่ช่องทางอื่นใช้ยอดที่กันไว้ซ้ำไม่ได้ อายุเริ่มต้น 300 วินาที ระบุได้ 30–900 วินาที และไม่เกินวันหมดอายุของกระเป๋าที่ใช้

2. POST reservations/commit — เมื่อพร้อมยืนยันบิล:

{ "reservationId": "hold_ID_FROM_RESERVATION" }

ยืนยันตามข้อมูลและเงื่อนไขฉบับที่กันไว้ ไม่รับการเปลี่ยนยอดตอน commit บันทึกสมุดยอด ธุรกรรมอ้างอิง และสถานะกันยอดในธุรกรรมฐานข้อมูลเดียว ส่งซ้ำคืนผลเดิม หากยังไม่ทราบผล ห้ามสร้างบิลหรือเลขกันยอดใหม่เพื่อส่งซ้ำ

3. POST reservations/release — ยกเลิกก่อนยืนยัน:

{
  "externalId": "HQ-RELEASE-0001",
  "reservationId": "hold_ID_FROM_RESERVATION",
  "reason": "ยกเลิกบิลหน้าร้าน"
}

รายการหมดอายุคืนยอดพร้อมใช้อัตโนมัติ รายการที่ commit แล้วต้องคืนด้วย refund/void อ้างอิงธุรกรรมเดิม ERP ต้องประสานสถานะเงินจริง บิล และ Loyalty โดยไม่ถือว่าระบบฐานข้อมูลสองแห่ง commit พร้อมกันอัตโนมัติ

รายการรับเข้าและส่งออก

MethodEndpointการใช้งาน
GETstatusสิทธิ์ HQ สาขา และสถานะบริการ
GET / POSTcustomersส่งออก / ผูกรหัสทะเบียน ERP
GETcustomers/lookupยอดรวม ยอดกันไว้ และยอดพร้อมใช้
GET / POSTrulesอ่าน / เผยแพร่เงื่อนไขจาก HQ
POSTquoteตรวจยอดโดยไม่กันยอด
GET / POSTreservationsอ่าน / กันยอดก่อนชำระ
POSTreservations/commitตัดยอดพร้อมยืนยันธุรกรรม
POSTreservations/releaseปล่อยยอดก่อนยืนยัน
GET / POSTtransactionsส่งออก / ยอดซื้อที่ไม่ใช้ Loyalty การให้ คืนบางส่วน และยกเลิก
GETevents / catalogส่งออกความเคลื่อนไหว / อ่านของรางวัลและแพ็กเกจ

การส่งออกใช้ cursor และ snapshot ตามค่าที่ API คืน ไม่ส่ง webhook ออกเอง จำนวนเงินและ PTS เป็นข้อความทศนิยมไม่เกิน 2 ตำแหน่ง แสตมป์เป็นจำนวนเต็มหน่วยดวง

เครื่องมือสำหรับ HQ

ในชุดมี integrations/erp-hq-client.mjs รองรับ status, quote, record, reserve, commit, release, rules และ customer ตั้ง DDSC_HQ_API_URL และ DDSC_HQ_API_KEY ที่เซิร์ฟเวอร์ส่วนกลาง

ตัวส่ง PetPOS ตรงเข้าเว็บไซต์รุ่นเดิมถูกปิดแล้ว ตัวแปลง PetPOS เป็นเพียงเครื่องมือแปลงข้อมูลให้ ERP ตรวจรับ ไม่ใช่สิทธิ์สร้างรหัสสินค้า เงื่อนไข หรือส่งคำสั่งข้าม ERP

ดาวน์โหลด OpenAPI 3.1

ขอบเขตและสถานะ

จำกัด JSON 64 KiB และ 600 คำขอต่อนาทีต่อกุญแจ ใช้ code และ X-Request-Id ตรวจเหตุขัดข้อง ส่งซ้ำด้วยเลขและข้อมูลเดิม เว็บไซต์รุ่นนี้เพิ่มการบังคับ HQ และกันยอดฝั่งเว็บไซต์ พร้อมสัญญาและตัวเรียก API ฝั่ง HQ ต้องนำไปเชื่อมกับบริการ ERP ส่วนกลางจริงตามแผนโครงการก่อนใช้งานร่วมทุกสาขา

หาก ERP ส่วนกลางติดต่อบริการ Loyalty ไม่ได้ PetPOS ต้องไม่อนุมัติใช้ยอดจากสำเนาเก่าเอง การสะสมที่รอส่งต้องผ่านคิวถาวรและตรวจรายการซ้ำที่ ERP ส่วนกลาง

สมาชิกที่อนุมัติแล้ว

GET /api/integrations/loyalty/v1/members?after=0&limit=100 ใช้ HQ key ที่มี members:read อ่าน events ตาม cursor และ snapshot ข้อมูล rows ใช้หัวคอลัมน์เดียวกับ Excel และ Google Sheets จับคู่ด้วย row_key และ member_number ไม่ส่งคำขอที่ยังรอหรือไม่สำเร็จ

ตั้ง Google Sheets ที่ โปรไฟล์และการตั้งค่า → เชื่อมต่อ API · ERP/POS → สมาชิก / Google Sheets อ่านคู่มือ MEMBERSHIP_GUIDE_TH.md ในชุดซอร์ส