การแมปข้อมูลสมาชิก Smaregi กับข้อมูลลูกค้าของ Receipt Roller
ข้อมูลหลักสมาชิกของ Smaregi จะถูกแปลงเป็น ข้อมูลลูกค้าของ Receipt Roller (CrmCustomerDto) โดยอัตโนมัติหลังจากเชื่อมต่อกับเครื่อง POS แล้ว บทความนี้สรุปความสัมพันธ์ของแต่ละฟิลด์ และข้อควรระวังเฉพาะของ Smaregi
สำหรับกลไกการซิงค์ข้อมูลสมาชิกแบบสองทิศทาง(จังหวะเวลา ลำดับความสำคัญเมื่อเกิดข้อขัดแย้ง การแก้ปัญหา)ดูได้ที่ การซิงค์ข้อมูลสมาชิกแบบสองทิศทางกับ Smaregi / Square บทความนี้เป็นเอกสารทางเทคนิคที่มุ่งเน้นเฉพาะ "ฟิลด์ใดตรงกับฟิลด์ใด" เท่านั้น
ตารางเทียบฟิลด์
Smaregi(SmaregiCustomer) |
Receipt Roller (CrmCustomerDto) |
หมายเหตุ |
|---|---|---|
customerId | —(บันทึกใน PosCustomerLink) | ID ภายในของ Smaregi ฝั่ง RR จะไม่บันทึกลงใน Customer โดยตรง แต่จะเก็บไว้ใน vendorIdentifier ของตารางลิงก์ PosCustomerLinkEntity |
customerCode | MembershipCode | รหัสสมาชิกของ Smaregi(หมายเลขที่ผู้ประกอบการร้านค้าใช้งานทั่วไป)ใช้เป็นหมายเลขสมาชิกของ RR โดยตรง |
lastName / firstName | LastName / FirstName | คัดลอกตามเดิม เนื่องจากมาตรฐานของ Smaregi ไม่มีฟิลด์คะนะ LastNameKana / FirstNameKana จึงเป็นค่าว่าง |
email | Email | ปรับให้เป็นตัวพิมพ์เล็กและตัดช่องว่างหน้า-หลังออกก่อนบันทึก |
mobileNumber หรือ phoneNumber | Phone | ให้ความสำคัญกับหมายเลขโทรศัพท์มือถือ(mobileNumber)ก่อน หากเป็นค่าว่างจะใช้ phoneNumber แทน ปรับให้เป็นรูปแบบ E.164(+819012345678) |
รายการที่ไม่ถูกนำเข้า
ในบรรดาฟิลด์สมาชิกมาตรฐานของ Smaregi รายการต่อไปนี้ยังไม่ถูกนำเข้าในฝั่ง RR ในเวอร์ชันปัจจุบัน
- ที่อยู่(
PostalCode/Prefecture/City/Address1/Address2)— เนื่องจากฟิลด์มาตรฐานของ Smaregi ไม่มีข้อมูลที่อยู่รวมอยู่ด้วย กรุณาลงทะเบียนแยกต่างหากในฝั่ง RR หรือจะปล่อยเป็นค่าว่างก็ได้ - วันเกิด(
DateOfBirth)— ไม่รวมอยู่ใน response สมาชิกมาตรฐานของ Smaregi Platform API จะถูกเก็บไว้เฉพาะกรณีที่ลูกค้าลงทะเบียนด้วยตนเองผ่านแอป RR เท่านั้น - เพศ(
Gender)— เช่นเดียวกับข้างต้น - คำอ่านชื่อ-นามสกุล (คะนะ)(
LastNameKana/FirstNameKana)— เนื่องจากไม่มีฟิลด์มาตรฐานของ Smaregi จึงเป็นค่าว่าง
การจับคู่ข้อมูลและการลงทะเบียนใหม่
เมื่อมีข้อมูลสมาชิกใหม่จาก Smaregi เข้ามา ระบบจะทำการตรวจสอบว่าเป็นบุคคลเดียวกันกับลูกค้าที่มีอยู่แล้วในฝั่ง RR หรือไม่ ตามลำดับดังนี้
MembershipCode(ตรงกับcustomerCodeของ Smaregi ทุกตัวอักษร)Email(ตรงกันทุกตัวอักษรหลังปรับเป็นตัวพิมพ์เล็กและตัดช่องว่างหน้า-หลัง)Phone(ตรงกันทุกตัวอักษรหลังปรับเป็นรูปแบบ E.164)
หากไม่ตรงกับเงื่อนไขใดเลย จะถูกเพิ่มเข้า CRM เป็นลูกค้าใหม่ หากตรงกัน ข้อมูลลูกค้าที่มีอยู่แล้วจะถูกอัปเดต(ใช้หลัก last-write-wins แยกตามฟิลด์)
จังหวะเวลาในการซิงค์
- การลงทะเบียน/อัปเดตสมาชิก(Smaregi → RR): สะท้อนเข้า CRM ภายในไม่กี่วินาทีผ่าน Webhook ของ Smaregi
- การสำรองข้อมูลตามกำหนดเวลา: เพื่อรองรับกรณีที่ Webhook ไม่มาถึง ระบบจะดึงข้อมูลส่วนต่างของข้อมูลหลักสมาชิกทุกๆ 1 ชั่วโมง
- RR → Smaregi: ทันทีที่ลูกค้าลงทะเบียนสมาชิกหรืออัปเดตข้อมูลผ่านแอป งานลงทะเบียนไปยัง Smaregi จะถูกเพิ่มเข้าคิว โดยปกติจะสะท้อนภายในไม่กี่วินาทีถึงไม่กี่นาที
ข้อควรระวัง
- หากมีการลบข้อมูลสมาชิกออกจริงในฝั่ง Smaregi การจับคู่ในฝั่ง RR จะใช้งานไม่ได้อีกต่อไป แนะนำให้ใช้การลบแบบตรรกะ(ปิดใช้งาน)ในฝั่ง Smaregi
- หากเปลี่ยนแปลง
customerCodeในฝั่ง Smaregi ในภายหลัง การจับคู่MembershipCodeในฝั่ง RR อาจขาดหาย และอาจถูกจัดการเป็นลูกค้ารายใหม่ กรุณารักษาทั้งอีเมลและหมายเลขโทรศัพท์ให้ตรงกันเมื่อมีการเปลี่ยนรหัส เพื่อให้ยังสามารถจับคู่ได้ - ฟิลด์ที่มีเฉพาะในฝั่ง RR เท่านั้น เช่น คำอ่านชื่อ-นามสกุล ที่อยู่ วันเกิด จะไม่ถูกเขียนกลับไปยัง Smaregi เนื่องจากไม่สอดคล้องกับโครงสร้างฟิลด์ในฝั่ง Smaregi
คู่มือที่เกี่ยวข้อง
- CrmCustomerDto Reference(สำหรับนักพัฒนา)— ข้อกำหนดฟิลด์ทั้งหมดของโมเดลมาตรฐาน
- การซิงค์ข้อมูลสมาชิกแบบสองทิศทางกับ Smaregi / Square
- การแมปข้อมูลการขายของ Smaregi กับข้อมูลการขายของ Receipt Roller
- การตั้งค่าเชื่อมต่อ POS ของ Smaregi
-
การแมปข้อมูลสินค้า Smaregi กับข้อมูลสินค้าของ Receipt Rollerอธิบายทีละฟิลด์ว่าข้อมูลหลักสินค้าของ Smaregi ถูกแปลงเป็นข้อมูลสินค้าของ Receipt Roller (ProductDto) อย่างไร ครอบคลุมความสัมพันธ์ของรหัสสินค้า ชื่อสินค้า หมวดหมู่ ราคา ต้นทุน และอัตราภาษี รวมถึงพฤติกรรมเฉพาะของ Smaregi
-
การแมปข้อมูลพนักงาน Smaregi กับข้อมูลพนักงานของ Receipt Rollerอธิบายทีละฟิลด์ว่าข้อมูลพนักงานหลักของ Smaregi ถูกแปลงเป็นข้อมูลพนักงานของ Receipt Roller (StaffDto) อย่างไร ครอบคลุมตรรกะการแยกชื่อ-นามสกุลจาก staffName, การแมป staffCode ไปยัง EmployeeNumber และการข้ามพนักงานที่ถูกซ่อนด้วย displayFlag
-
การแมปข้อมูลการขายของ Smaregi กับข้อมูลการขายของ Receipt Rollerคำอธิบายทางเทคนิคเกี่ยวกับกลไกการแมปข้อมูลการขายที่ดึงมาจาก Smaregi Platform API เข้าสู่โมเดลข้อมูลภายในของ Receipt Roller ครอบคลุมการเทียบโครงสร้างแบบลำดับชั้น ตารางเทียบฟิลด์ของส่วนหัวรายการขาย การแปลงรหัสสถานะ การปรับมาตรฐานวิธีการชำระเงิน การแมปข้อมูลรายละเอียด การจัดการโซนเวลา และความคงเส้นคงวา