Why does the PayPal button show up on my product page but disappear at checkout?
The PayPal button appears as an express option while shopping but never shows up as a payment choice at the actual checkout step — here's why placement varies by template and how to fix it.
What's going on
A merchant enables PayPal in their Shopify store and sees the button appear right where they'd expect it — on the product page next to Add to Cart, or on the cart page as a quick express option. Then a customer clicks through to the actual checkout page and PayPal simply isn't there as a payment method, or it shows up inconsistently depending on which page the customer started from.
This is confusing because merchants reasonably assume that if a payment button is visible anywhere in the buying flow, it should be usable at every step of that flow. In reality, Shopify treats "dynamic checkout buttons" (the express wallet buttons shown on product and cart pages) and "payment methods available at checkout" as related but distinct pieces of configuration, and each one is placed per template inside the theme.
The result is a genuinely template-specific problem: the same store might show the PayPal button correctly on the product page, drop it on a custom cart drawer that wasn't updated with the newer theme blocks, and then never present it as a selectable option on the checkout page itself because the underlying PayPal account setup only completed one half of the integration.
Why it happens
Shopify's accelerated/dynamic checkout buttons (PayPal, Shop Pay, Apple Pay, Google Pay) are configured through Settings > Payments, but where they visually render is controlled separately, template by template, inside the theme editor — commonly as part of the Buy Buttons block on the product template and a similar block or setting on the cart template. A theme that hasn't been updated to include that block on every template, or a custom cart drawer built outside the standard cart template, can show the button in one place and silently omit it in another.
Separately, PayPal integrations can be connected at two different depths: enabling PayPal Express Checkout (which only produces the express button) versus fully activating PayPal as a checkout payment method. If only the express layer is connected, the button will keep appearing pre-checkout while never becoming a selectable payment option once the customer reaches the actual checkout page.
On stores with heavily customized checkouts (Shopify Plus checkout.liquid legacy customizations, or newer checkout UI extensions), payment method visibility can also be filtered or reordered by that customization layer independently of the Payments settings, which is why the same store setup can behave differently after a checkout redesign.
5 ways to fix it
Check whether PayPal is actually enabled as a checkout payment method (not just an express button)
Go to Settings > Payments in your Shopify admin and look at the Payment methods section. PayPal can show up in two different roles: as an accelerated "dynamic checkout" button on product and cart pages, and as a selectable payment method on the actual checkout page. These are controlled by overlapping but separate settings tied to your PayPal account connection. If your PayPal account only completed the express-checkout setup and not the full payment method activation, the button appears early but PayPal never becomes a selectable option at the payment step. Reconnect or verify your PayPal Business account fully through Settings > Payments so both roles are active, or deliberately disabled if you only want one.
Review where dynamic checkout buttons are placed per template in your theme editor
On Online Store 2.0 themes, the PayPal/Shop Pay/Apple Pay button lives inside the Buy Buttons block (product template) and often a separate block or setting on the cart template. Open the theme editor, select the Product template, click the Buy Buttons block, and confirm whether "Show dynamic checkout buttons" is checked; repeat for the Cart template. Placement is genuinely per-template, so it's normal for a merchant to enable it on product and cart but never add the equivalent block to a custom cart drawer, which is why the button seems to vanish rather than carry through to checkout.
Look for a customized checkout (Shopify Plus checkout.liquid or checkout extensibility) that suppresses payment icons
If your store uses Shopify Plus checkout customizations or checkout extensibility apps, payment method icons and wallet buttons can be hidden or reordered by that customization, independent of your Payments settings. Check any checkout branding or checkout UI extension configuration for a rule that hides express payment icons, and confirm PayPal is included in the payment methods list rendered there.
Reorder or deduplicate wallet buttons instead of running two PayPal integrations at once
A common cause of confusing or duplicate PayPal prompts is having both PayPal Express Checkout and a separately configured PayPal payment gateway active, or having the dynamic checkout button enabled on both product and cart pages when a merchant only wants one prompt. In Settings > Payments, open the Manage panel for each wallet-capable payment method to reorder priority or disable duplicates, and decide deliberately whether you want the express button on the product page, the cart page, or both, rather than leaving default settings that show it everywhere.
Confirm the customer's currency and PayPal account eligibility match
PayPal buttons can silently disappear at the final step if the customer's currency, shipping country, or the store's PayPal account status doesn't support that combination through Shopify Payments compatibility rules. This is less about template placement and more about account-level restrictions, so if placement settings all look correct, check your PayPal Business account dashboard for any restriction notices or currency limitations.
Bottom line
In most cases this comes down to two things: PayPal's account connection covering the express button but not the full checkout payment method, and theme templates that don't consistently include the same dynamic-checkout block across product, cart, and any custom cart drawer. Walk through Settings > Payments and your theme editor's per-template blocks before assuming anything is broken — this is a configuration and mapping issue, not a bug, and free native settings resolve it in the vast majority of cases. If you're maintaining a lot of custom cart/checkout markup and keep losing track of where wallet buttons live, a written placement map (which templates show which buttons) is worth keeping as a reference doc so future theme edits don't reintroduce the problem.
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.