Hide Express Checkout Buttons (Shop Pay, PayPal, Apple Pay) on Shopify Product and Cart Pages
Express checkout buttons are fast, but they can skip your cart upsells, order notes, gift options, and minimum order logic. Here is how to hide them on Shopify product and cart pages, fully or conditionally.

Express checkout buttons are built for speed. A customer taps Shop Pay, PayPal, or Apple Pay on a product page and lands at checkout with their details already filled in. For many stores, that is exactly what you want.
But speed has a cost when your store depends on what happens between the product page and checkout. Cart upsells, gift wrapping options, order notes, delivery date pickers, and minimum order messages all live on the cart page. An express button on the product page skips all of them. This guide explains when hiding these buttons makes sense, how to do it on Shopify, and what hiding them does not change.
Why merchants hide express checkout buttons
They skip cart-level upsells. If your cart drawer offers a related product or a free-shipping progress bar, a customer who taps an express button on the product page never sees it.
They skip cart attributes and notes. Gift messages, delivery date selectors, engraving text, and order notes collected on the cart page are often missed when customers go straight to checkout.
They bypass cart-page messaging. Minimum order notices, bundle prompts, and "add one more for free shipping" messages only work if the customer sees the cart.
They encourage single-item orders. Buying one item at a time can raise your shipping cost per order and lower average order value.
They confuse some product types. Custom, personalized, or configured products often need options or uploads that a fast button can skip, depending on how the product form is built.
Wholesale or restricted products. Products with quantity rules or customer restrictions are better handled through the full cart flow.
What express buttons are, technically
On Shopify, there are two separate places where express payment options appear.
| Location | What controls it |
|---|---|
| Product page "Buy it now" and wallet buttons | Your theme, usually via a "Show dynamic checkout buttons" setting on the product information block |
| Cart page or cart drawer accelerated buttons | Your theme's cart template; availability and settings vary by theme |
| Express checkout section at the top of checkout | Shopify checkout and your payment settings, not your theme |
This distinction matters. If your goal is to stop a specific payment method entirely, storefront hiding is not enough. If your goal is to make customers pass through the cart, storefront hiding is exactly the right tool.
Your options on Shopify
Option 1: The theme editor setting
Most Shopify themes, including Dawn and many themes built on it, have a "Show dynamic checkout buttons" checkbox on the product information section in the theme editor. Unchecking it removes the express buttons from product pages store-wide.
- Go to Online Store → Themes → Customize.
- Open a product template.
- Select the product information section or the buy buttons block.
- Uncheck Show dynamic checkout buttons.
- Save, and repeat for any other product templates you use.
This is simple and reliable, but all-or-nothing for each template.
Option 2: Separate product templates
To hide buttons only on certain products, create an alternate product template with the setting turned off and assign it to those products. This works well for a small set of products, such as personalized items, but becomes hard to manage at scale.
Option 3: Cart page theme edits
Cart page express buttons are usually rendered by theme code. Some themes expose a setting to hide them; others require editing the cart template to remove or wrap the accelerated checkout output in a condition. Theme edits are lost or need re-applying when you update or switch themes, so document any change carefully.
Option 4: CSS or JavaScript
Some merchants hide the buttons with CSS targeting the dynamic checkout container. This can work, but the buttons load asynchronously and their markup can change, so CSS-based hiding needs to be checked after theme and Shopify updates. Conditional hiding, such as only below a cart value or only for certain products, needs JavaScript logic.
Option 5: A theme app embed
Apps can add a theme app embed that hides express buttons based on rules without editing theme code. Embeds are toggled from the theme editor and survive theme updates better than manual code edits.
Step-by-step: deciding what to hide
1. Identify what customers skip
List everything that lives only on your cart page: upsells, gift options, notes, delivery dates, minimum order messages. If the list is empty, you may not need to hide anything.
2. Choose the scope
Decide whether to hide buttons store-wide, on specific products, on the cart page only, or conditionally.
3. Pick the lightest method
Use the theme setting if store-wide is fine. Use templates for a handful of products. Use an app embed for conditional rules.
4. Check checkout-level rules
Any rule that must always be enforced, such as a minimum order value or a product restriction, should run at checkout with a validation function rather than relying on customers seeing the cart. See our guide to minimum order value at Shopify checkout.
5. Test on mobile and desktop
Wallet buttons depend on the device and browser. Apple Pay appears on supported Apple devices, for example. Test where your customers actually shop.
Conditional hiding examples
| Goal | Condition | Where to hide |
|---|---|---|
| Protect personalized products | Product tagged personalized | Product page |
| Push cart upsells | Cart total below free-shipping threshold | Cart page |
| Collect gift messages | Product tagged gift | Product and cart page |
| Enforce full cart flow for wholesale | Customer has tag wholesale | Product and cart page |
| Delivery date required | Product in a collection that needs a delivery date | Product page |
What hiding does not do
It does not remove express options from checkout. Customers who reach checkout may still see express wallets at the top.
It does not enforce rules. A customer can still reach checkout through other paths, such as a direct checkout link. Rules that must hold should be validated at checkout. Our Shopify checkout validation rules guide explains how.
It does not change payment rules. Hide, rename, and reorder rules from Payment Customization still apply at checkout regardless of how the customer got there.
Pitfalls and edge cases
Lower conversion for impulse buys. Express buttons help impulse purchases. Hiding them store-wide can slow down customers who were ready to buy. Prefer targeted hiding.
Theme updates. Manual code edits and CSS selectors can break when the theme updates. Recheck after every update.
Cart drawers vs cart pages. Many themes use a cart drawer and a cart page. Make sure you hide buttons in both if needed.
Layout gaps. Removing buttons can leave empty space or misaligned add-to-cart buttons. Check the design after hiding.
Doing it with Blockly Checkout Customizer
Blockly Checkout Customizer, launching soon on the Shopify App Store, is designed to include a theme app embed for hiding express checkout buttons on product and cart pages, with conditions such as product tag, collection, cart value, or customer tag. It pairs that storefront control with checkout-level validation rules, so anything that must be enforced is still checked at checkout, not just hidden on the storefront.
Takeaway
Express checkout buttons are valuable, but they skip everything your cart page does. If your store depends on cart upsells, gift options, notes, or minimum order messaging, hide the buttons where they get in the way, starting with the theme setting and moving to conditional hiding only when needed. Remember that storefront hiding is a guide, not a guard: enforce critical rules at checkout, and expect express options to still appear inside checkout itself.
Related articles

How to Reorder Payment Methods at Shopify Checkout

Shopify Checkout Links: Pre-fill Products, Discounts and Customer Details

