About This Article
Sometimes customers who register online are actually existing store members. In this case, we need to avoid duplicate registration and link to existing customer information.
Why Duplicates Occur
Typical Scenarios
| Case | Past | Today | Problem |
|---|---|---|---|
| Store member registers online | Created membership card at store (POS member #: 00001) | Registers online with same email | Same person but registered as different member? |
| Online member visits store | Registered online (Shopify ID: 12345) | Asked to register at store | Register as new POS member? Points split? |
Problems Caused by Duplicates
| Problem | Impact |
|---|---|
| Split points | Points accumulate separately online and in-store |
| Fragmented purchase history | Cannot analyze same person's purchase trends |
| Customer support confusion | Need to ask 'Which member number?' |
| Reduced marketing efficiency | Sending duplicate DMs to same person |
Duplicate Detection Logic
Matching by Email Address
This project uses email address as the primary key for duplicate detection.
Customer submits online membership registration form
Search POS customer database with entered email address
Different processing for existing customer found vs. not found
If exists -> Update member number to link, If not -> Register as completely new
Existing Customer Check Flow
Email address: yamada@example.com
Found -> Get existing POS customer ID / Not found -> Create completely new POS customer
Now POS customer can be identified by Shopify ID
Why Match by Email Address
Comparison of Matching Keys
| Key | Uniqueness | Change Frequency | Ease of Acquisition | Adoption |
|---|---|---|---|---|
| Email address | High | Low | Easy | Adopted |
| Phone number | Moderate | Moderate | Easy | Sub-key |
| Name | Low | Low | Easy | Supplementary only |
| Address | Moderate | High | Easy | Supplementary only |
Advantages of Email Address
- Required in both systems: Both Shopify and POS have email addresses
- Low duplication: Rare for same email to be used by multiple people
- Low change frequency: Changes less often than phone numbers
- Fast searching: Easy to index
Existing Member Update Process
What Gets Updated
When an existing POS member is found, the member number is overwritten.
Only the member number is updated; other information and point balance are preserved.
Why Only Update Member Number
- Preserve points: Don't lose existing point balance
- Preserve purchase history: Past purchase history remains intact
- Establish link: Can now search by Shopify ID
Edge Cases to Consider
Edge Cases and Solutions
| Case | Problem | Solution |
|---|---|---|
| Customer changed email | Registers online with different email than store registration -> Treated as different person | Store staff updates email in POS, or customer reports email change to store |
| Family using same email | Husband registered at store, wife registers online -> Considered same person and linked | Show 'This email is already registered' and encourage registration with different email |
| Multiple POS customers with same email | Data entry errors caused duplicates -> Cannot determine which to link | Link to first found customer, log warning, admin reviews and merges later |
Benefits of This System
For Customers
- Points earned at store can be viewed online
- No need to re-enter member information
- Recognized as "the same person" across all channels
For Operations
- No confusion from duplicate data
- Can see complete customer picture (online + store)
- Reduced complaint handling effort