ข้ามไปยังเนื้อหา

ภาพรวม

ScanFood API ให้ระบบของคุณอ่านข้อมูลที่เครื่องขายหน้าร้าน ScanFood บันทึกไว้อยู่แล้ว ทั้งข้อมูลสาขา บิลที่ปิดแล้ว และสมาชิกสะสมแต้ม เป็น API แบบอ่านอย่างเดียว ยืนยันตัวตนด้วยกุญแจ API ใบเดียว และออกแบบมาให้ดึงเป็นรอบ ไม่ได้ออกแบบมาให้ควบคุมเครื่องขาย

ทุกคำขอยิงไปที่ base URL เดียว

https://api.scanfood.co/ext

เลขเวอร์ชันเป็นส่วนหนึ่งของเส้นทางแต่ละเส้น URL เต็มจึงเป็นรูป https://api.scanfood.co/ext/v1/shops

  • ส่งออกเข้าระบบบัญชีและภาษี ดึงบิลที่ปิดแล้วของเมื่อวาน พร้อมเลขใบเสร็จ เลขใบกำกับภาษี ยอด VAT และการแยกช่องทางรับเงิน เข้าโปรแกรมบัญชีของคุณ
  • รายงานและ BI โหลดบิลเข้าคลังข้อมูล แล้วดูแยกตามสาขา เครื่อง ช่องทางขาย หรือสินค้า
  • รวมยอดระดับแฟรนไชส์ กุญแจระดับแฟรนไชส์ใบเดียวอ่านได้ทุกสาขา สำนักงานใหญ่จึงรวมยอดทั้งกลุ่มได้เองโดยไม่ต้องไล่ขอไฟล์จากแต่ละร้าน
  • สมาชิกและ CRM อ่านข้อมูลสมาชิก แต้ม เครดิตร้าน ระดับ และคูปอง แล้วจับคู่กับบิลที่สมาชิกคนนั้นปรากฏอยู่
ทรัพยากร เส้น คืนอะไร
สาขา GET /v1/shops ทุกสาขาที่กุญแจใบนี้อ่านได้ พร้อมเขตเวลาและแบรนด์สมาชิกของสาขานั้น
รายการขาย GET /v1/transactions · GET /v1/transactions/{id} บิลที่ปิดแล้วของร้านหนึ่งร้าน ทั้งรายการสินค้า ยอดเงิน การรับเงิน และสถานะ
สมาชิก GET /v1/members · GET /v1/members/{memberToken} · GET /v1/members/lookup สมาชิกของแบรนด์หนึ่งแบรนด์ ทั้งแต้ม เครดิต ระดับ คูปอง และจำนวนครั้งที่มาใช้บริการ และโทเคนสมาชิกที่อยู่เบื้องหลัง LINE user id ที่คุณถืออยู่แล้ว
สเปก GET /v1/openapi.json ตัวสัญญาที่เครื่องอ่านได้ เป็นเส้นเดียวที่ไม่ต้องใช้กุญแจ

มีสองอย่างที่จริงเสมอทุกเส้น

  • อ่านอย่างเดียวสำหรับข้อมูลของคุณ ทุกเส้นเป็น GET ไม่มีคำขอไหนสร้าง แก้ หรือลบ ข้อมูลของร้านได้ คำขอเดิมจึงยิงซ้ำได้อย่างปลอดภัยเสมอ ส่วนตัวคำขอเองเราบันทึกไว้ ทั้งเวลาที่ใช้กุญแจครั้งล่าสุด ตัวนับโควตารายวัน และสมุดคำขอ ซึ่งเก็บรหัสกุญแจ เส้นทาง ข้อความ query สถานะ จำนวนแถว และเวลาที่ใช้ เก็บไว้ 90 วันเพื่อใช้ช่วยเหลือผู้ใช้และรับมือการใช้งานผิดวัตถุประสงค์ ส่วนรหัสลับของกุญแจไม่ถูกเก็บไว้
  • ดึงเอง ไม่มีการส่งกลับ คุณเป็นคนกำหนดว่าจะถามเมื่อไหร่ จังหวะที่ใช้กันทั่วไปคือ ทุก 15 นาทีสำหรับบิล และวันละครั้งสำหรับสมาชิก

บอกขอบเขตให้ชัดตั้งแต่ต้น ประหยัดเวลาถามกลับไปหนึ่งรอบ

  • เขียนข้อมูลไม่ได้ สร้างบิล ยกเลิกบิล หรือแก้ข้อมูลสมาชิกผ่าน API นี้ไม่ได้
  • ไม่มี webhook และไม่มีการแจ้งเตือนกลับ ไม่มีอะไรวิ่งไปหาเซิร์ฟเวอร์ของคุณ คุณเป็นฝ่ายดึงเอง
  • เรียกจากเบราว์เซอร์ไม่ได้ คำขอข้ามโดเมนถูกปฏิเสธโดยเจตนา เพราะกุญแจที่ไปโผล่ในเบราว์เซอร์คือกุญแจที่หลุดไปแล้ว
  • ไม่มีเส้นทะเบียนสินค้า สต็อก หรือ SKU รายการบนบิลมีรหัสสินค้าให้จับคู่กับแคตตาล็อกของคุณ แต่ไม่มี SKU และไม่มีบาร์โค้ด
  • ไม่มีข้อมูลต้นทุนและสูตรวัตถุดิบ ต้นทุนต่อหน่วยและสูตรอาหารไม่ออกจาก ScanFood โดยนโยบาย
  • ไม่มีรายการคืนเงินแยกต่างหาก การคืนเงินหน้าร้านคือการยกเลิกบิล บิลนั้นจะกลับมาพร้อม status: "void"
  • ไม่มีการแบ่งกลุ่มสมาชิกสำเร็จรูป คุณจะได้จำนวนครั้งที่มา วันที่มาล่าสุด และบิลทั้งหมด ส่วนเกณฑ์การแบ่งกลุ่มเป็นของคุณเอง
  • ไม่มีระบบทดสอบแยก กุญแจทุกใบเป็นกุญแจจริงและอ่านข้อมูลจริงของคุณเอง ดูวิธีทดลองอย่างปลอดภัยที่ ข้อมูลสำหรับทดสอบ
  • การซิงก์เฉพาะส่วนที่เปลี่ยนของสมาชิกยังไม่เปิด ฝั่งบิลใช้ updatedSince ได้ แต่ฝั่งสมาชิกต้องอ่านใหม่ทั้งชุด ดู การแบ่งหน้าและการซิงก์

เวอร์ชันอยู่ในเส้นทาง ทุกเส้นวันนี้อยู่ใต้ /v1/ ภายในเวอร์ชันเดียวกัน เราอาจ เพิ่ม ช่องข้อมูลในผลลัพธ์ หรือรับพารามิเตอร์ ตัวเลือกใหม่ ซึ่งทั้งสองอย่างไม่ทำให้ระบบที่มองข้าม สิ่งที่ไม่รู้จักพังลง

วิธีเขียนโค้ดให้ทนต่อการเพิ่มของ

  • อ่านช่องข้อมูลด้วยชื่อ อย่ายึดลำดับหรือจำนวนช่อง
  • แตกสาขาที่รหัส error ไม่ใช่ที่ข้อความ message เพราะข้อความเปลี่ยนได้ตลอด
  • ถือว่าค่าอย่าง channel.code เป็นสตริงเปิด ร้านเพิ่มช่องทางขายใหม่เมื่อไหร่ก็ได้

การเปลี่ยนที่ทำให้ของเดิมพังจะออกเป็นเส้นทางเวอร์ชันใหม่ ไม่ใช่การแก้ /v1/ เงียบ ๆ สัญญาฉบับปัจจุบันดาวน์โหลดได้เสมอที่ GET /v1/openapi.json ซึ่งไม่ต้องใช้กุญแจ