CrmCustomerDto 參考

CRM 顧客 資料模型 參考 POS串接
本文的對象
本文適用於透過 API、MCP、Webhook 處理 ReceiptRoller 顧客(CRM)資料的開發者。說明從 POS 匯入的顧客資訊如何被正規化。

CrmCustomerDto 是 ReceiptRoller 的顧客主檔的正規模型。在應用程式會員登錄的顧客、從 POS(Smaregi、Square)的會員主檔匯入的顧客、從店鋪 CRM 畫面手動登錄的顧客 — 全部都彙集到這一個型別。

1 個商業帳戶 = 1 個 CRM 命名空間。可在同一商業帳戶底下的多個店鋪共用顧客,以 StoreIds 欄位表現「屬於哪個店鋪」。

主要欄位

識別碼

欄位型別內容
OrganizationIdstring商業帳戶 ID。PartitionKey。
CustomerIdstringRR 內部的顧客 ID(GUID)。RowKey。
StoreIdsstring所屬店鋪 ID 的逗號分隔。可以 StoreIdList 屬性作為陣列讀寫。

姓名、聯絡方式

欄位型別內容
LastName / FirstNamestring姓、名(漢字)。顯示用有 FullName 屬性。
LastNameKana / FirstNameKanastring姓、名(假名)。有 FullNameKana 屬性。
Emailstring電子郵件位址。以小寫化、去除前後空白進行正規化。是比對鍵之一。
Phonestring電話號碼。正規化為 E.164 格式(例:+819012345678)。是比對鍵之一。
Genderstring性別。選填。
DateOfBirthDateTime?出生日期。選填。以 UTC 保存。

地址

PostalCode / Prefecture / City / Address1 / Address2。以 FullAddress 屬性連結顯示。皆為 string 且為選填。

會員資訊

欄位型別內容
MembershipCodestring會員編號。RR 自動採番,或從 POS 端匯入(Smaregi 的 customerCode、Square 的 reference_id 等)。是比對鍵之一。
MembershipLevelstring會員等級。預設值 "Standard"。例:Standard / Silver / Gold。

行為指標

欄位型別內容
VisitCountint來店次數。從 POS 交易自動彙總。
TotalSpentdecimal累計購入金額。從 POS 交易自動彙總。
LastVisitDateDateTime?最後來店日。從 POS 交易自動更新。

標籤、備註、稽核

Tags(逗號分隔)、Notes(自由文字)、Status(預設 "Active"。已退會、已封鎖等)、CreatedAtUpdatedAt

與 POS 的關係

CrmCustomerDto 是不依賴 POS 的正規模型。從 POS 匯入的顧客,會由另一個實體 PosCustomerLinkEntity 將 RR 顧客 ID 與 POS 端識別碼(vendor + identityType + vendorIdentifier 的三元組)關聯。

關於與 POS 的會員資料雙向同步、衝突解決規則(vendor 端 / RR 端何者較新,以欄位為單位的 last-write-wins)、比對鍵的優先順位,請參閱 與 Smaregi、Square 的會員資訊雙向同步

從 POS 供應商的對應

各 POS 的顧客欄位對應到 CrmCustomerDto 的哪個欄位,彙整在店鋪幫助的個別文章中。

注意事項

  • OrganizationIdCustomerId 的組合為唯一的鍵。即使電子郵件位址相同,商業帳戶不同即被視為不同顧客。
  • 比對(重複偵測)會依 MembershipCodeEmailPhone 的順序確認。詳情請參閱 會員資訊雙向同步
  • VisitCount / TotalSpent / LastVisitDate 為彙總值。即使直接覆寫,也會在下一筆交易紀錄被覆寫。
  • 不建議物理刪除顧客。請將 Status 更新為已退會。若在 POS 端物理刪除,RR 端的比對會失效。

相關指南

發布日: 2026-05-29 更新日: 2026-07-06
標籤
API (22) OAuth (15) Android (10) iOS (9) Webhook (8) api (7) oauth (5) POS串接 (4) getting-started (4) 參考 (4)