Guest Checkout, Customer Accounts and Duplicate Profiles on Shopify

By The Twinfold teamPublished 11 min read
Short answer

Guest checkout doesn't create duplicate customers on Shopify by itself. Every order is filed under the profile with the order's email, so a guest using the same email lands on the same profile. Duplicates appear when the guest uses a different email, a wallet such as Shop Pay supplies another one, or a customer signs in with an address that matches no profile. Requiring sign-in reduces this but doesn't stop it.

Key takeaways
  • Shopify creates a customer profile when someone places an order, abandons a checkout, signs up for marketing or signs up for an account, whether or not they signed in.
  • An order's email address is its unique identifier in Shopify, so a guest order placed with an existing profile's email is attached to that profile rather than a new one.
  • With customer accounts, signing in with an email that matches no profile creates a new customer profile automatically, and customers can't merge profiles by changing their email.
  • Shopify support has stated that each email address used at checkout is its own customer profile, even when the same person owns both addresses.
  • Require customers to sign in to their account before checkout lives in Settings > Checkout, limits checkout to email contact, and hides accelerated checkout buttons such as Apple Pay in the online store cart.

Guest checkout doesn't create duplicate customers on Shopify by itself. Shopify creates a customer profile for every order, signed in or not, and it files the order under the profile that already has that email address. So a returning customer who checks out as a guest with the same email they always use lands on the same profile. The duplicate appears when the email on the order differs: the customer types another address, a wallet such as Shop Pay or Apple Pay fills in the one it has saved, or the customer later signs in with an address that matches no profile and Shopify quietly creates one.

This guide explains how profiles and accounts relate, the five ways a guest and an account holder become two people in your Customers list, what the sign-in settings actually change, and how to find and merge the pairs you already have.

Does guest checkout create duplicate customers in Shopify?

No. A guest order creates a new profile only when its email doesn't match an existing profile. The same email means the same profile, with or without an account.

Shopify's help documentation lists when a profile is created: when a customer signs up for your mailing list, signs up for a customer account, places an order, or starts an order and abandons checkout. Signing in isn't a condition on any of them. The same page says that "the order's email address is used as a unique identifier" and that each profile can have only one email address. Put together, an order from jane@example.com goes to the one profile that holds jane@example.com, and if none exists, Shopify makes it.

The practical consequence is that guest checkout and accounts are not two separate customer lists. When a shopper who has placed three guest orders finally creates an account with the same email, they get the profile that already holds those orders. Merchants answering the question on the Shopify Community say exactly that: no setup is needed beyond allowing guest checkout, and past orders placed with the same address show up once the customer signs in. That part works the way most merchants hope.

What doesn't work is the other direction. Shopify has no way to recognize that jane@example.com and jane.doe@work.com are one person, so two emails always mean two profiles. The sections below cover how that happens even to customers who have an account.

What is the difference between a customer profile and a customer account?

A customer profile is the record in your admin. A customer account is the sign-in a shopper uses on your storefront. Every account sits on a profile, but most profiles in a typical store have no account at all.

Shopify's help pages use the two terms consistently. The Customers page in your admin lists profiles, each with one email, orders, addresses, tags and notes. Customer accounts are what a shopper gets when they sign in on your online store, and Shopify's customer accounts documentation puts the relationship plainly: "If your customer has a customer profile in your Shopify admin, then they already have an account." With the current customer accounts, there is no separate registration step. A shopper enters their email, receives a one-time 6-digit code, and is in. A sign-in session can persist for up to 365 days.

Shopify tracks the relationship with a customer account status on each profile. The GraphQL Admin API defines the four values:

StatusShopify's definitionWhat it usually means in practice
DISABLEDThe customer doesn't have an active accountA guest buyer, a mailing list sign-up, an import or a POS profile that has never signed in
INVITEDThe customer has received an email invite to create an accountYou sent an account invitation from the profile and they haven't acted on it
ENABLEDThe customer has created an accountThey signed in at least once, or created a legacy account with a password
DECLINEDThe customer declined the email invite to create an accountThey clicked decline on an invitation

Shopify's upgrade documentation adds that a profile's customer_account_status changes to ENABLED the first time the customer signs in to customer accounts, and that customers who created a legacy account stay ENABLED. You can filter on this value in the segment editor on the Customers page, which is the quickest way to see how many of your profiles are guests. In most stores it's the large majority.

One more rule matters for duplicates. Shopify's account management page says that with customer accounts you can't deactivate an individual account, and if you delete a customer profile and that customer signs in again with the same email, a new profile is created. Deleting a profile to "reset" a customer therefore doesn't help; it just replaces one profile with another.

How does a returning customer end up with two profiles?

Five ways, and all of them come down to a second email reaching Shopify. Guest checkout isn't the cause; it's the setting that lets a customer type whatever address they like.

ScenarioWhat happensWho can see it
A guest uses a second emailA customer with an account under jane@example.com checks out signed out with jane@work.comTwo profiles with the same name, one ENABLED and one DISABLED
A wallet supplies its own emailShop Pay, Apple Pay or another wallet fills in the email saved in the wallet, not the store account'sA second profile with the wallet email and the order the customer can't find in their account
A sign-in with an unknown emailThe customer signs in with an address that matches no profile, including through Google or FacebookA new, empty profile with ENABLED status
A phone-only checkoutWith Phone number or email allowed, a guest checks out with a mobile number and no emailA profile with a phone and no email, which can't receive email marketing
A profile was deletedStaff deleted the profile, then the customer signed in againThe old orders are gone from the profile and a fresh profile holds the new ones

The wallet case is the one that surprises merchants, because the customer did everything right. In a 2021 Shopify Community thread, a merchant reported that a customer signed in under one email, paid with Shop Pay, and got a second profile under the email saved in Shop Pay. The order didn't appear in the customer's account, and the store's loyalty discounts based on order history didn't apply. The Shopify support agent's answer was that "each email address used is it's own unique customer profile, even if the email addresses are used by the same customer," and suggested either reminding customers to use their account email at checkout or turning off Shop Pay. The merchant later reported the same behavior with Apple Pay, and a 2023 reply described it happening when the Apple ID email differed from the account email.

Shopify's Shop Pay documentation confirms the moving part: a customer needs to enter an email address at checkout to save their information to Shop Pay, and that saved email, payment method and addresses are what Shop Pay fills in next time. If the customer saved a different address on another store, that's the one your checkout receives.

Sign-in creates the same split without any order. Shopify's customer accounts page says that when a customer signs in with an email that doesn't match an existing profile, "a new customer profile is created automatically." Social sign-in follows the same rule, since the only customer data that syncs to Shopify when you use it is the customer's email address. A customer whose Google account uses a different address from the one they ordered with gets a new profile, finds no order history, and often writes to support asking where their orders went.

The deleted-profile case is the only one staff cause directly, and it's worth knowing because deleting looks like a cleanup. It isn't. Merging keeps the history; deleting throws it away, and the customer comes back anyway.

For the broader list of causes, including POS and imports, see why Shopify creates duplicate customer profiles.

Does requiring sign-in before checkout stop duplicates?

Partly. It closes the wallet and phone-only routes and makes typos rarer, but a customer who signs in with a new email still gets a new profile. Weigh that against what the setting costs you.

The setting is Require customers to sign in to their account before checkout, in Settings > Checkout under the Customer contact method section. Shopify's checkout documentation notes two effects. Customers "can only use an email address to check out when signing in is required," so phone-only profiles stop. And accelerated checkout buttons such as Apple Pay aren't displayed in the online store cart, so a wallet can't skip the sign-in step. Changes to checkout settings can take up to 30 seconds to appear.

What it doesn't do is stop new profiles at sign-in. Shopify creates a profile for any email that signs in, so the customer who uses jane@work.com this time is still a new customer. The setting also hides the cart's accelerated checkout buttons for everyone, so treat it as a deliberate choice rather than a default. Wholesale and members-only shops are the natural fit.

The table compares what each setting changes.

SettingWhereStopsDoesn't stopCost
Require customers to sign in to their account before checkoutSettings > Checkout > Customer contact methodWallet-email profiles, phone-only profilesNew profiles from a sign-in with a new emailAccelerated checkout buttons hidden in the cart; more friction
Customer contact method: EmailSettings > CheckoutPhone-only profilesSecond-email profilesShoppers who prefer SMS must give an email
Show sign-in links onSettings > Customer accounts > Sign-in linksNothing by itself; it lets customers sign in and see their ordersAny of the aboveDepends on theme placement
Sign in with Shop offSettings > Customer accounts > Authentication > ManageShop sign-in prompts, when Shop Pay is offShop Pay emails, when Shop Pay is onShop sign-in can't be turned off while Shop Pay is active

Two notes on that last row. Shopify's Sign in with Shop documentation says that when Shop Pay is activated, Sign in with Shop is turned on automatically and can only be removed by deactivating Shop Pay. Without Shop Pay it's on by default and can be toggled. Turning off Shop Pay to avoid duplicates is a poor trade for almost every store; the merchant in the 2021 thread tried it and turned Shop Pay back on because its benefits outweighed the problems.

If you still use legacy customer accounts, the upgrade to customer accounts changes sign-in to the one-time code flow and redirects old account URLs automatically. Shopify says you can revert within 30 days. The upgrade doesn't merge or split profiles; existing profiles keep their status and legacy account holders stay ENABLED.

What should you tell customers so they don't create a second profile?

Tell them one thing: use the same email everywhere. Put it in the account welcome email, on the account page, and in your reply whenever someone asks where an order went.

Shopify's customer accounts documentation says customers can update their own name and email address from their account, and that changing the email keeps their marketing consent. It also says, in so many words, that "customers can't merge multiple customer profiles together by changing their email address." So a customer who notices they have two profiles can't fix it from their side. The page's instruction is that the customer asks you, and you merge the profiles in the admin.

For wallet users, the advice is to check the email field before paying. Shop Pay and Apple Pay prefill the contact field; a customer who looks at it and changes it to their account email keeps everything on one profile. Most won't, which is why the cleanup below is a routine rather than a one-off.

How to find and merge guest-and-account duplicates

Export your customers, normalize the emails, look for pairs with the same name and different emails, confirm each pair, then merge in the admin starting from the profile the customer signs in with.

  1. In the admin, go to Customers and export all customers as a CSV file. For a focused pass, build a segment on customer account status first so you can compare ENABLED profiles against DISABLED ones.
  2. Add a normalized email column: lowercase, strip anything after a plus sign, and remove dots from Gmail and Googlemail addresses. Pairs that collapse to one value are the easy wins; our guide on Gmail dots, plus addresses and duplicate customers explains why these are safe matches.
  3. Sort by last name. Flag rows with the same name where one profile is ENABLED and the other DISABLED, and rows with the same name and shipping address but different emails. These are the guest-plus-account pairs.
  4. Confirm each pair with order dates, addresses and the items bought. Two customers called Sam Lee at different addresses are two customers.
  5. Open the profile with the email the customer signs in with and choose More actions > Merge customer. Find the other profile, review the merged result and confirm. Shopify keeps the profile tied to the email kept on the merged profile, so pick the sign-in email as the one to keep.
  6. Tell the customer which email their account uses now. The other email is removed from the merged profile, and a sign-in with it would create profile number three.

The merge moves orders, addresses, tags and notes to the kept profile and can't be undone. Our article on merging customer accounts in Shopify goes through what moves, what doesn't, and which profile survives. Some profiles won't merge at all, for example those with store credit or a subscription history; Shopify shows the reason when it refuses.

A sensible rhythm is a pass after any sign-in change, such as turning on social sign-in or upgrading customer accounts, and a quarterly check otherwise. Stores with Shop Pay and a lot of returning customers tend to see a steady trickle of wallet-email pairs, so a monthly check pays for itself in fewer "where is my order" emails.

How Twinfold helps

Twinfold is a Shopify app by NewClick (independent, not made by Shopify) that finds duplicate customers and merges them in bulk after a preview. It doesn't change how checkout or sign-in creates profiles; it finds the pairs those flows leave behind.

Scan for duplicates reads your whole customer list through Shopify's bulk export, free on every plan. Guest-and-account pairs show up under three match reasons: Email variant (the same address after lowercasing, removing a "+tag", and removing Gmail dots), Same phone (one profile's phone found on another profile's address, with matching names) and Same name and address. A wallet-email pair with a completely different address, such as jane@example.com and jane.d@icloud.com, matches only if they share a phone or a name and address, so some pairs still need the manual review above.

Each group shows the profiles side by side, and you choose which one to Keep as main profile, which is where you pick the sign-in email. Every merge is previewed with Shopify before you confirm, groups you mark Not duplicates stay out of future scans, and Merge history keeps a record of what was combined and when.

Frequently asked questions

Does guest checkout create a new customer in Shopify?

It creates a customer profile only if the email on the order doesn't already belong to one. Shopify creates a profile for every order and uses the order's email as the unique identifier, so a guest who checks out with the same email as before is attached to their existing profile. A guest who uses a different email gets a second profile.

Will a customer see their old guest orders after creating an account?

Yes, when the account uses the same email as the guest orders. Shopify's account sign-up creates or reuses the profile with that email, and merchants on the Shopify Community report that past orders placed with the same address appear once the customer signs in. Orders placed under a different email stay on the other profile until you merge the two.

Why did Shop Pay or Apple Pay create a second customer profile?

Because the wallet supplied a different email from the one on the customer's existing profile. A Shopify support agent explained on the Community in 2021 that each email address used is its own customer profile, even when the same customer owns both. The fix after the fact is to merge the two profiles in the Shopify admin.

Does requiring sign-in before checkout prevent duplicate customers?

It removes some causes but not all. With Require customers to sign in to their account before checkout turned on in Settings > Checkout, shoppers can only check out with an email and accelerated checkout buttons are hidden in the cart, so wallet emails and phone-only profiles stop. A customer who signs in with a new email still gets a new profile, because Shopify creates one automatically.

What is the difference between a customer profile and a customer account in Shopify?

A customer profile is the record in your admin's Customers list, created by an order, an abandoned checkout, a marketing sign-up, an import or staff. A customer account is the sign-in a shopper uses on your store. Every account has a profile, but a profile doesn't need an account. Shopify tracks this as a customer account status with values DISABLED, INVITED, ENABLED and DECLINED.

Sources

  1. Shopify Help Center: Managing customers
  2. Shopify Help Center: Customer accounts
  3. Shopify Help Center: Setting up and managing customer accounts
  4. Shopify Help Center: Editing the checkout form options
  5. Shopify Help Center: Sign in with Shop
  6. Shopify Community: ShopPay creates a new customer, even if customer is logged in to a different email