Customers are checking out with just a phone number, and I can't recover their abandoned carts by email, what's going on?

When Shopify checkout lets shoppers identify themselves with just a phone number, no email ever lands on the order, so abandoned-checkout emails, receipts, and recovery flows have nothing to send to.

emailcheckoutabandoned-checkoutcustomer-contact-methodrecovery

What's going on

A merchant notices their abandoned-checkout list is full of rows with no email address, just a phone number, and none of them ever receive a recovery email. Digging in, the cause turns out to be a checkout setting: Shopify can be configured to let a shopper identify themselves with a phone number instead of an email, and when a shopper picks that option, there genuinely is no email on file for that checkout. It isn't a bug or a broken integration, it's checkout behaving exactly as configured.

This mostly shows up on stores that enabled phone-based contact to reduce friction for SMS-first or mobile-heavy audiences, or that inherited the setting from a theme, a checkout app, or a store duplicated from another project. The downstream effects go beyond recovery emails: order confirmations, shipping notifications, review requests, and any email-marketing flow keyed on customer email will all silently fail to reach that customer, because the underlying record has no email to send to.

It tends to surface as an occasional annoyance rather than a constant fire, often only noticed when someone audits the abandoned-checkout report and wonders why the recoverable count is so much smaller than the abandoned count.

Why it happens

Shopify's checkout settings include a Customer contact method option that controls what identifier a shopper must supply to start checkout, commonly some combination of email-only or email-or-phone. If it's set to allow phone number on its own, a share of shoppers, especially on mobile or in audiences where phone is the more natural identifier, will pick phone, and no email gets stored for that order at all. There's no way to back-fill it afterward from Shopify's side.

This is compounded by privacy and anti-spam rules: Shopify won't, and merchants legally shouldn't, auto-convert a phone number into an email subscriber or pull in contact information the customer never actually provided. So the fix has to happen at the point of consent, the checkout configuration itself, rather than through some workaround that manufactures an email address after the fact.

5 ways to fix it

1

Set Customer contact method to Email only, it fixes the root cause for free

In Shopify admin, checkout settings include a Customer contact method option that controls whether shoppers can identify themselves with an email, a phone number, or either. If it currently allows phone number as a standalone option, some shoppers will use it, and Shopify will have no email on file for that order at all. Switching the setting to require email restores order confirmations, abandoned-checkout emails, and marketing consent capture for every checkout going forward. This costs nothing and is usually the actual fix, most stores that hit this had the phone-inclusive option left on, often inherited from a theme or a duplicated store setup.

2

Don't try to force both email and phone as required on every order

It's tempting to require both fields, but standard Shopify checkout doesn't let you mandate two separate contact identifiers at once on most plans. Some stores add a phone number field elsewhere in checkout (for shipping or SMS updates) while still requiring email as the primary contact method, which gets you both pieces of information without letting shoppers skip email entirely. If your theme or checkout has a phone field you're unsure how to configure, describe what you want to a developer or Shopify support rather than guessing at settings, since the exact options vary by plan and checkout version.

3

Recover already-lost phone-only checkouts through channels other than email

For checkouts that already closed with only a phone number, email-based recovery, whether Shopify's native abandoned-checkout emails or a marketing app's email flow, has nothing to send to and simply won't fire for those rows. If you have SMS marketing consent and a number on file, a manual outreach or a compliant SMS recovery message is the realistic path for those specific orders. Don't expect an email fix to retroactively rescue checkouts that never captured an email in the first place.

4

Give customers a low-friction, opt-in way to add an email afterward

For orders that closed with phone-only contact, you can invite the customer to add an email later, for example through the order status page or a follow-up message, framed as optional and useful for receipts or tracking. Keep it genuinely skippable. Privacy and anti-spam rules (GDPR, CAN-SPAM, CASL, and SMS-specific consent rules like TCPA) mean you can offer this, but you can't require it after the fact or automatically enroll a phone number in email marketing it never consented to.

5

If you need phone and email captured together at scale, treat it as a deliberate build, not a quick toggle

Stores with a lot of SMS-first or mobile-heavy traffic sometimes want both channels captured cleanly and reconciled on one customer profile by default. That's realistically a custom checkout project or a purpose-built app, not a setting you flip, so it's worth scoping deliberately rather than reaching for it as a first response to this problem.

Bottom line

In most cases this is a quick fix: set Customer contact method to require email in your checkout settings, and the core problem, including the abandoned-checkout recovery gap, stops recurring for future orders. You don't need an app for that part. An app or custom checkout build only earns its keep if you specifically need phone and email captured and reconciled together at scale, which is a real project to scope, not a default reach, and it won't help you recover the orders you've already lost by email alone.

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.