Why does Shopify keep treating my returning customer like a first-time buyer?

A customer who's clearly ordered before shows up as brand new on their latest order. Here's how Shopify actually decides whether two orders belong to the same person, and how to fix it when it gets that wrong.

customersidentityduplicate profilescheckoutPOS

What's going on

A customer has clearly ordered before, you might even recognize their name, but their newest order shows up attached to a brand-new customer profile instead of their existing one. Order history looks fragmented, any store credit, loyalty points, or marketing consent tied to the old profile doesn't carry over, and you're left wondering whether something is broken in Shopify's customer database.

In almost every case, nothing is broken. Shopify doesn't identify a person the way a human would, by name, past purchases, or general familiarity. It identifies a customer record by a specific identifier captured at checkout, primarily email, and sometimes phone number in Point of Sale contexts. If that identifier doesn't exactly match what's already on file, Shopify creates a new profile, because as far as the system can tell, it has no proof the two are the same person.

This gets confusing because the mismatch is often invisible to you. A plus-addressed email ([email protected] vs. [email protected]), a personal address used instead of a work one, a typo, or an order placed through an app or sales channel that doesn't preserve the original email exactly, all look like a totally new customer to Shopify even though the human being is the same.

Why it happens

Shopify's customer matching is identifier-based, not identity-based: it links an order to a customer record when the email, or at POS sometimes the phone number, matches an existing record exactly. It has no built-in logic to infer that two different emails, or an email with a typo or alias, belong to the same person, and it won't merge records automatically just because the name or shipping address looks similar.

Guest checkout compounds this, since it never looks up a login, it just uses whatever email was typed that session. Multi-channel selling adds another layer: orders arriving through a marketplace connector, subscription app, or POS can be written with a normalized, generated, or differently formatted email than the one the customer actually used on your storefront, silently creating a second profile Shopify has no way of knowing should be one.

5 ways to fix it

1

Compare the new order's email against the existing customer profile, character by character

Open the new order and the existing customer's profile side by side and check the email exactly, including capitalization, spacing, and plus-addressing ([email protected] vs. [email protected]). Shopify matches customers by exact identifier, not by human judgment, so it has no way to know two different-looking emails belong to the same inbox. A mismatch here is the most common cause and usually the fastest one to confirm.

2

Merge the duplicate profiles once you've confirmed they're the same person

From the Customers section of the admin, open one of the duplicate profiles and use the option to merge it with the other. This combines order history, marketing consent, and saved addresses into a single customer record without deleting either order. Merge one confirmed pair at a time rather than in bulk; merging the wrong two profiles will mix up two different people's data and is hard to fully undo.

3

Push repeat customers toward account login or Shop Pay instead of guest checkout

Guest checkout doesn't look anything up; it simply creates or matches a customer using whatever email is typed in that session, typos and all. If the same shoppers keep landing as new profiles, encourage them to log into their account or check out with Shop Pay, since both reuse a stored, verified email and address instead of a fresh manual entry every time.

4

Check whether an installed app is writing orders under a different customer identity

Subscription tools, marketplace connectors (for channels like Amazon, Walmart, or TikTok Shop), and some loyalty or CRM apps can create orders or customer records using a normalized, generated, or otherwise altered email rather than the one the customer actually entered on your storefront. Review any app that touches checkout or customer data to see whether it changes the identifier Shopify uses for matching before you assume the platform itself is at fault.

5

If some orders come from a physical location, add a search-first habit to your POS workflow

Point of Sale staff can create a brand-new customer record on the spot instead of searching by name, email, or phone first, which produces the exact same kind of duplicate. This is a process fix rather than a technical one: build a quick search-before-create step into your checkout routine so staff attach the sale to the existing profile instead of spawning a new one.

Bottom line

There's no setting that makes Shopify recognize customers by anything other than the identifier actually captured at checkout, chiefly email, and sometimes phone at POS, so a returning customer showing up as brand new is almost always an identity-matching mismatch, not a platform malfunction. Start by comparing the emails on the two records, merge confirmed duplicates using Shopify's built-in tool, and only then look at whether an app or a POS habit is generating the mismatched records in the first place. A dedicated customer-data or identity-matching app is worth considering only if you're seeing many recurring duplicates and manual cleanup can't keep up.

Still Stuck?

Browse the rest of the problem library, run a free storefront scan to catch issues like this automatically, or email us and we'll work out a custom solution for it.