ร้านที่มีระบบ Point-of-Sales (POS) ที่รองรับการขายและออกใบเสร็จให้ลูกค้าอยู่แล้ว หากมีความประสงค์จะใช้งาน Longdo Cards ร่วมกับ POS ที่มีอยู่ สามารถทำได้โดย ปรับระบบ POS ให้เชื่อมโยงกับระบบ Longdo Cards ผ่าน Longdo Cards API บทความนี้จะอธิบายรายละเอียดวิธีการเชื่อมโยง สำหรับการใช้งานในรูปแบบต่างๆ

เตรียมการเบื้องต้น

การแสดงตัวอย่างทั้งหมดในบทความนี้ จะใช้ บัตรทดสอบ ซึ่งเป็นบัตรสมาชิกที่มีอยู่จริงในแอป Longdo Cards ซึ่งท่านสามารถสมัครเป็นสมาชิกได้โดยไม่เสียค่าใช้จ่ายจาก QR code ในภาพด้านล่าง หรือถ้าท่านยังใหม่กับ Longdo Cards โปรดดู ​​ทดลองใช้งานจริง

สมัครเป็นสมาชิกบัตรทดสอบ

เริ่มต้นด้วย Login

ในการเรียกใช้งานฟังก์ชั่นใดๆ ของ Longdo Cards API ท่านจะต้อง Login เข้าสู่ระบบในฐานะร้านค้าก่อน โดยท่านจะต้องเตรียมบัญชีผู้ใช้และรหัสผ่านในฐานะร้านค้า ซึ่งคือบัญชีผู้ใช้ Longdo.com ของท่าน ที่ท่านใช้ตอนสมัครเป็นร้านค้าใน Longdo Cards (ซึ่งอาจจะเป็นตัวเดียวกันหรือคนละตัวกับ บัญชีผู้ใช้ในฐานะผู้ใช้ ในหัวข้อก่อนหน้านี้ก็เป็นได้)

เพื่อความสะดวก ในบทความนี้จะใช้บัญชีผู้ใช้ทดสอบ ชื่อ carddemo

การ Login สามารถทำได้โดยการเรียก service login ของ Longdo Cards API โดยมีตัวแปรที่สำคัญที่ต้องส่งไป คือ
  • user ชื่อบัญชีผู้ใช้ของร้านค้า เช่น carddemo
  • pass รหัสผ่าน เข้ารหัสด้วย MD5 เช่น longdocards1234 เข้ารหัสแล้วจะกลายเป็น c8eda2afe10aa5ac8ef0fd0af8389fdf
  • uuid unique ID ที่ระบุถึงตัว device ที่เรียกใช้ (ซึ่งไม่ควรจะซ้ำกัน ในกรณีที่เรียกใช้จากหลายเครื่อง) ซึ่งท่านสามารถกำหนดเป็นค่าอะไรก็ได้ ตัวอย่าง เช่น pos_station_1
ตัวอย่างการเรียก service login
https://card.longdo.com/api/main/login?user=carddemo&pass=c8eda2afe10aa5ac8ef0fd0af8389fdf&uuid=pos_station_1

หลังจากที่ Login แล้ว จะได้ผลลัพธ์ในรูปแบบ JSON ตัวอย่าง เช่น {"code":200,"msg":"ok","data":{"token":"9ca98513a374721298653cc13f8a48d965431bc6","mid":"1","name":"Longdo.COM","position":"S","store_id":"0"}}
ซึ่งมีสิ่งที่สำคัญคือ Token 9ca98513a374721298653cc13f8a48d965431bc6 ซึ่งให้เก็บค่าไว้ใช้เรียก web service อื่นๆ ต่อไป

การพิมพ์ตั๋วแต้ม

เมื่อลูกค้ามีการใช้จ่ายที่ร้าน และร้านค้าต้องการให้แต้มแก่ลูกค้า วิธีหนึ่งที่ทำได้ คือ ให้ระบบ POS พิมพ์ QR Code ของตั๋วแต้ม ต่อท้ายในใบเสร็จที่มอบให้แก่ลูกค้าเลย ลักษณะจะเป็นคล้ายตัวอย่างในภาพด้านล่าง และลูกค้าสามารถเปิดแอป Longdo Cards ขึ้นมากดสแกนเพื่อรับแต้มจากตั๋วแต้มดังกล่าวได้ โดยตั๋วแต้ม 1 ใบ จะสามารถใช้ได้เพียง 1 ครั้ง ไม่สามารถใช้ซ้ำได้
Example of QR point ticket appended to the receipt

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

วิธีการสร้างตั๋วแต้ม QR ดังกล่าว คือ ให้ระบบ POS เรียก service create_ticket โดยมีตัวแปรที่จะต้องส่งดังนี้
  • card_id รหัสบัตรสมาชิกของร้านค้าท่าน ซึ่งจะได้ตอนสร้างบัตรสมาชิก ตัวอย่าง เช่น บัตรทดสอบ มีค่า card_id 44
  • amount จำนวนแต้มที่จะมอบให้กับลูกค้า เช่น 8
  • token ค่า Token ที่ได้จากการเรียก service login ก่อนหน้านี้
  • uuid unique ID ที่ระบุถึงตัว device ที่เรียกใช้ เช่น pos_station_1
ตัวอย่างการเรียกใช้ service create_ticket ดังนี้
https://card.longdo.com//api/points/create_ticket?card_id=44&amount=1&token=9ca98513a374721298653cc13f8a48d965431bc6&uuid=pos_station_1
ผลลัพธ์ที่ได้ คือ ค่า Serial สำหรับ QR Code ที่จะพิมพ์ออกในใบเสร็จ ตัวอย่างผลลัพธ์ เช่น

{"code":200,"msg":"ok","data":{"serial":"5268083668312354"}}

ค่า serial ที่ได้ (5268083668312354) ให้นำมาเติมด้านหน้าด้วย TK: ให้กลายเป็น TK:5268083668312354 แล้วนำไปสร้างเป็นรหัส QR Code พิมพ์ออกต่อท้ายในใบเสร็จสำหรับให้ลูกค้า ตามตัวอย่าง ดังภาพ


Example of QR code for point ticket

การระบุตัวตนลูกค้า

ลูกค้าที่ลงแอปลองดูการ์ดหรือ Custom App ของร้านค้าท่าน และเข้าสู่ระบบเรียบร้อยแล้ว จะมีเลข id ประจำตัว เรียกว่า uid (User ID) อยู่ ซึ่งหากระบบ POS ต้องการทราบหมายเลข uid อันนี้ สามารถขอให้ลูกค้าเปิดหน้าจอบัตรสมาชิกร้านของท่านในแอป ซึ่งจะมีรหัส QR code ที่มีค่าเลข uid อยู่ แล้วเจ้าหน้าที่ร้านใช้อุปกรณ์ Bar code reader อ่านค่า QR code จากหน้าจอของลูกค้า ตามตัวอย่างหน้าจอดังภาพ
Scan QR code from customer's screen

การสแกน QR code จากหน้าจอลูกค้า จะได้ผลลัพธ์ เช่น
c1:266099:5BA9:219:A7KFOWYJ:311322
ซึ่งมีค่าที่สำคัญที่เราสนใจ คือ รหัสประจำตัวผู้ใช้ uid ซึ่งจะอยู่ในคอลัมน์ที่สอง จากตัวอย่างข้างต้น ค่า uid จะเป็น 266099 ซึ่งระบบ POS สามารถเก็บค่านี้ไว้ เพื่อใช้ในการดึงข้อมูลเพิ่มเติมเกี่ยวกับผู้ใช้, ให้หรือตัดแต้ม, และอื่นๆ ต่อไป

การให้แต้ม

นอกเหนือจากวิธีการพิมพ์ตั๋วแต้ม QR, ระบบ POS สามารถเพิ่มแต้มให้ลูกค้าได้โดยตรงเข้าสู่แอปของลูกค้าเลย โดยขั้นแรกให้ลูกค้าเปิดหน้าจอบัตรสมาชิกร้านของท่านในแอป Longdo Cards แล้วทางร้านใช้ QR reader เพื่อระบุตัวตนให้ได้ uid ของลูกค้าก่อนตามที่อธิบายไปในหัวข้อก่อนหน้านี้
จากนั้นให้เรียก service add_customer_point เพื่อเพิ่มแต้มให้ลูกค้า โดยต้องส่งพารามิเตอร์ดังต่อไปนี้
  • card_id รหัสบัตรสมาชิกของร้านค้าท่าน ซึ่งจะได้ตอนสร้างบัตรสมาชิก ตัวอย่าง เช่น บัตรทดสอบ มีค่า card_id 44
  • cuid รหัสประจำตัวผู้ใช้ uid ของลูกค้าที่เราต้องการจะให้แต้ม ที่ได้จากการสแกนหน้าจอลูกค้า เช่น 266099
  • point จำนวนแต้มที่จะมอบให้กับลูกค้า
  • remark ข้อความหมายเหตุซึ่งจะปรากฎในหน้าจอของลูกค้า
ตัวอย่างการเรียก service เพื่อให้คะแนน 8 แต้ม แก่ผู้ใช้ carddemo โดยมีรายละเอียดว่า "From POS" เป็นดังนี้
https://card.longdo.com/api/points/add_customer_point?card_id=44&point=8&remark=From%20POS&cuid=266099&token=9ca98513a374721298653cc13f8a48d965431bc6&uuid=pos_station_1

หลังจากที่เรียก service แล้ว ที่หน้าจอลูกค้าจะปรากฎรายการได้รับแต้มเพิ่มขึ้นมาตามตัวอย่างดังภาพ

Add points via API
 

การใช้แต้ม

เมื่อลูกค้าขอใช้แต้มแลกของรางวัลกับทางร้าน ระบบ POS สามารถสั่งตัดแต้มโดยตรงจากลูกค้าได้โดยการเรียก service bulk_use_point โดยต้องส่งพารามิเตอร์ดังต่อไปนี้ (ระวัง: ฟังก์ชั่นนี้รับค่าที่ส่งเป็น array ดังนั้นจึงต้องมีตัวอักษร [] ต่อท้ายชื่อตัวแปร)
  • card_id รหัสบัตรสมาชิกของร้านค้าท่าน ซึ่งจะได้ตอนสร้างบัตรสมาชิก ตัวอย่าง เช่น บัตรทดสอบ มีค่า card_id 44
  • cuid[] รหัสประจำตัวผู้ใช้ uid ของลูกค้าที่เราต้องการจะให้แต้ม ที่ได้จากการสแกนหน้าจอลูกค้า เช่น 266099
  • point[] จำนวนแต้มที่จะหักจากลูกค้า
  • remark[] ข้อความหมายเหตุซึ่งจะปรากฎในหน้าจอของลูกค้า
ตัวอย่างการเรียก service เพื่อตัดแต้ม 4 แต้มจากลูกค้า เพื่อแลกของรางวัลสมมติชื่อ "Test Reward 1" เป็นดังนี้
https://card.longdo.com/api/points/bulk_use_point?card_id=44&point[]=1&remark[]=Test%20Reward%201&cuid[]=266099&token=9ca98513a374721298653cc13f8a48d965431bc6&uuid=pos_station_1
เมื่อลูกค้าเปิดแอปขึ้นมาดูจะพบรายการตัดแต้มดังต่อไปนี้

Use points via API
 

การดูรายละเอียดลูกค้า

ร้านค้าสามารถขอทราบรายละเอียดของลูกค้าได้ โดยให้ลูกค้าแสดงหน้าจอ App แล้ว Scan QR เพื่อดึงข้อมูล รหัสประจำตัวผู้ใช้ uid ของลูกค้า หลังจากนั้น สามารถเรียกดึงข้อมูลรายละเอียดพื้นฐานของผู้ใช้แอปที่เป็นสมาชิกบัตรของร้านได้ผ่าน service get_customer_info โดยส่งพารามิเตอร์ดังต่อไปนี้
  • card_id รหัสบัตรสมาชิกของร้านค้าท่าน ซึ่งจะได้ตอนสร้างบัตรสมาชิก ตัวอย่าง เช่น บัตรทดสอบ มีค่า card_id 44
  • cuid รหัสประจำตัวผู้ใช้ uid ของลูกค้า เช่น 266099 หรือ หมายเลขโทรศัพท์ของลูกค้า เช่น 0811234567
ตัวอย่างการเรียก service get_customer_info โดยระบุ uid (ซึ่งได้จากการสแกนหน้าจอแอปลูกค้า)
https://card.longdo.com/api/main/get_customer_info?card_id=44&cuid=266099&token=9ca98513a374721298653cc13f8a48d965431bc6&uuid=pos_station_1

ตัวอย่างการเรียก service get_customer_info โดยระบุหมายเลขโทรศัพท์มือถือของลูกค้า
https://card.longdo.com/api/main/get_customer_info?card_id=44&cuid=0811234567&token=9ca98513a374721298653cc13f8a48d965431bc6&uuid=pos_station_1

ผลลัพธ์ที่ได้ จะเป็นรายละเอียดต่างๆ เกี่ยวกับผู้ใช้ ในรูปแบบ JSON เช่น
  • mail อีเมล์
  • fname ชื่อผู้ใช้
  • level และ level_text ระดับชั้นของผู้ใช้ เช่น 0 - Standard, 1 - VIP ซึ่งแล้วแต่ร้านค้าจะเป็นผู้กำหนดเอง

ตัวอย่างผลลัพธ์ของ service get_customer_info (ดูบริเวณที่มีการ hi-light)

get_customer_info

การเปลี่ยนระดับลูกค้า

Longdo Cards มีฟีเจอร์ที่ร้านค้าสามารถตั้งค่าบัตรสมาชิกให้มีหลายระดับได้ เช่น Standard, VIP เพื่อสิทธิ์ประโยชน์ที่ต่างกัน เช่น สมาชิกทุกคนเริ่มต้นจะอยู่ที่ระดับ Standard และหากถ้าใช้จ่ายครบตามยอดที่กำหนด หรือเมื่อชำระค่าธรรมเนียมเพิ่มเติม ก็จะเปลี่ยนไปอยู่ในระดับ VIP ที่สูงขึ้น ได้รับสิทธิ์ประโยชน์ที่สูงขึ้น เป็นต้น

เมื่อร้านค้าต้องการเปลี่ยนระดับลูกค้า สามารถเรียกใช้ service set_customer_profile และระบุค่า level ให้เป็นระดับที่สูงขึ้น โดยต้องใส่พารามิเตอร์เพิ่มเติมดังนี้
  • cuid รหัสประจำตัวผู้ใช้ uid ของลูกค้า เช่น 266099 หรือ หมายเลขโทรศัพท์ของลูกค้า เช่น 0811234567
  • level ระดับลูกค้าที่ต้องการเปลี่ยนให้เป็น (เป็นค่า level id เช่น 0, 1, 2)
ตัวอย่างการเรียก service get_customer_info โดยตั้งให้ผู้ใช้หมายเลข 266099 เปลี่ยนระดับเป็น VIP (level id = 1)
https://card.longdo.com/api/main/set_customer_profile?card_id=44&cuid=266099&token=9ca98513a374721298653cc13f8a48d965431bc6&uuid=pos_station_1&level=1
Tags: