ProductHow it worksDocsBlogPricingGet Framer Plugin
← Blog

Shopify Guest Checkout on a Framer Site: Setup and Pitfalls

Yes, customers can check out as guests on a Framer plus Shopify store. Your Framer site never processes a payment; the cart hands the buyer to Shopify's hosted checkout, and Shopify guest checkout is switched on or off there, inside Shopify's customer-account settings. Nothing in Framer controls it. What Framer does control is whether that handoff carries the cart, the domain and the analytics session intact, and that is where real builds break.

Guest checkout is simply an order completed with a contact method and payment details but no account and no password. The buyer gets a confirmation email; you get an order. Neither side stores a reusable login.

How does guest checkout work?

Guest checkout works by treating the email address as the only identifier the order needs. Shopify collects a contact method, a shipping address and a payment method, creates the order against that email, and skips account creation entirely. The buyer can still be offered an account afterwards, from the order confirmation, without it blocking the purchase.

That difference matters more than most merchants assume. 75% of shoppers listed guest checkout as a priority when choosing where to buy, according to a 2025 IDC survey of 8,000 shoppers across eight European countries. On the other side of the same decision, 19% of users abandon a checkout if they are forced to create an account. Forcing a login is one of the few checkout choices with a measured cost attached.

Where Shopify guest checkout is actually controlled

In your Shopify admin, under Settings → Customer accounts. Not in Framer, and not in the theme, because a Framer front end has no theme.

Under classic customer accounts the control was a three-way choice — accounts disabled, optional, or required — and only required switched guest checkout off. Shopify has been retiring classic accounts through 2026 in favour of new customer accounts, where sign-in sits beside guest checkout rather than in front of it. If you enable guest checkout Shopify still shows a sign-in link, and that is correct behaviour, not a misconfiguration.

So when guest checkout appears to be missing on a live store, work through it in this order: the customer-accounts setting, then any installed app that gates checkout (wholesale, B2B, subscriptions and loyalty apps all do this), then the handoff itself. Three causes, and the third one is the one a Framer build introduces.

Can I shop on Shopify without an account?

Yes, on any store where accounts are not set to required. You will be asked for an email or phone number so the merchant can send a confirmation and handle returns, but you will not create a password and nothing is stored for a future visit. A "Shopify guest checkout login" prompt appearing before you can pay means that specific store chose to require accounts, or installed an app that does.

The three ways a Framer site hands off to checkout

Every Framer plus Shopify build uses one of three handoffs, and they are not interchangeable. This is the comparison the how-to guides skip:

Handoff method Guest checkout Checkout domain Cart persists across pages Analytics attribution
Buy Button JS embed Inherits the store setting Shopify store domain Per-embed only — breaks between Framer pages Weak; referrer often lost on the jump
Cart permalink (/cart/{variant}:{qty}) Inherits the store setting Shopify store domain No — rebuilt from the URL every click Poor; each click is a fresh entry with no cart history
Storefront API cart + checkoutUrl Inherits the store setting; customerAccessToken is optional Shopify store domain Yes — you hold the cart ID Strongest; you own the session and can pass parameters

Read the second column carefully, because it is the single most common wrong assumption. Checkout runs on your Shopify store's domain in all three cases. Shopify made checkout on your own domain free for all merchants and activated it automatically, which removed the old checkout.shopify.com redirect — but "your own domain" means the domain attached to the Shopify store, not the Framer domain serving your marketing pages. A cart permalink cannot be rewritten onto your Framer domain, and no amount of checkout customization changes that.

The third column is what decides whether a multi-page Framer store feels like a store. A Buy Button embed scopes its cart to the component instance, so a buyer who adds a product, browses to another Framer page and adds a second product can end up with two unrelated carts. Only the Storefront API path gives you one cart ID you can persist yourself. That architectural difference is the same one covered in our headless architecture guide for designers, and it is the reason serious Framer stores outgrow embeds.

Pitfalls that break guest checkout on a Framer build

Five specific failures, in the order we see them:

  1. The Buy Button script races the page. Framer paints fast; the Shopify SDK loads after. The button renders empty or not at all, intermittently, which is why it "sometimes doesn't show up" rather than never showing up.
  2. A stale checkoutUrl. Generating the URL at page load and reusing it hands buyers an expired checkout.
  3. Two carts, one buyer. Separate embeds on separate Framer pages, no shared cart ID.
  4. The domain jump eats attribution. One boundary from the Framer domain to the Shopify checkout domain is enough to lose the source unless you pass parameters deliberately.
  5. An app quietly requires login. The setting says optional; a B2B or subscription app overrides it for certain products.

Number two has an official fix, and Shopify states it plainly:

The checkoutUrl should be requested when the buyer is ready to navigate to checkout and can be re-requested if it is stale.

— Shopify Storefront API cart documentation

What changed in 2025 and 2026

On 28 August 2025 Shopify extended Storefront API buyer authentication so authenticated buyers reach checkout with vaulted cards and store credit available. Read the scope precisely: it upgrades the logged-in path and leaves guest checkout unchanged. For a headless Framer front end, that makes the two paths worth building deliberately rather than treating login as a nuisance — returning buyers who sign in now get a materially faster checkout, while first-time buyers still go straight through as guests.

Which brings up the presentation problem. 62% of ecommerce sites failed to make guest checkout the most prominent option in Baymard's 2025 checkout benchmark. A correctly configured store can still bury the guest path behind a sign-in form that looks mandatory. On a Framer build you control the cart UI completely, so lead with the guest path and offer the account as the upgrade.

Getting the handoff right

Pick the handoff before you design the cart, not after. If the store is a handful of products and one page, a Buy Button is fine. If buyers move across pages, you need a cart that survives navigation — which means the Storefront API path, whether you write it yourself or use a tool like FramerLink to keep products and carts in sync without code. Either way, verify guest checkout by buying something from your own store in a private window: no login, no password, order confirmed. If that fails, the problem is in the three causes above, and it is almost never Framer.

For the setup steps behind all of this, start with connecting Shopify to Framer, then decide how deep you need the headless Shopify front end to go.

Frequently asked questions

Do I need to change anything in Framer to enable guest checkout?

No. Guest checkout is a Shopify-side setting found under Settings, then Customer accounts. Framer only controls how the cart hands the buyer to Shopify's hosted checkout. If a forced login appears, the cause is the Shopify account setting or an installed app, never a Framer component.

Why is my Shopify guest checkout not working after a Framer redesign?

Almost always the handoff, not the setting. A cart permalink rebuilt on every click, a Buy Button script that loads after the page paints, or a checkout URL cached from an earlier session will each send buyers to an empty or expired checkout that looks like guest checkout is broken.

Can guest buyers check out on my own domain instead of Shopify's?

Checkout runs on your Shopify store's domain, which Shopify activates for every merchant at no cost. It does not run on your Framer domain. Buyers moving from a Framer front end to checkout therefore cross one domain boundary, which you should plan for in analytics.

Does guest checkout stop me from collecting customer emails?

No. Guest buyers still supply an email or phone number at checkout, so you keep order confirmation and recovery contact. What you lose is a stored account with saved addresses, payment methods and order history, unless the buyer opts into an account after the purchase.

Sources