Express payments setup
Add accelerated checkout buttons (PayPal, Apple Pay, Shop Pay, and more) to the Llama Cart, including the required theme snippet and styling controls.
Express payments are Shopify's accelerated, one-tap checkout buttons — PayPal, Apple Pay, Amazon Pay, Meta Pay, Shop Pay, and Google Pay — surfaced inside the Llama Cart footer so shoppers can pay without going through the full checkout flow. They're turned off by default and require a one-time theme snippet to work.
This guide explains what express payments do, how to install the required snippet, every styling option in the Payments tab, how the buttons render on the storefront, and the edge cases that trip merchants up most often.
What express payments are
Shopify generates a set of dynamic, wallet-based checkout buttons for each storefront based on your Shopify Payments configuration and the shopper's context. The Llama Cart captures those real buttons and repositions them into the cart drawer, so shoppers see familiar, fully functional payment buttons instead of a custom imitation.
Because they're Shopify's own buttons, clicking one starts that wallet's express checkout exactly as it would anywhere else on your store — the Llama Cart only changes where the button appears and how it looks.
Express payments are disabled until you both add the theme snippet (below) and enable at least one gateway in the Payments tab of the Customizer. A brand-new cart shows no express buttons until you do both.
Step 1 — Add the required theme snippet
The Llama Cart can't invent payment buttons. It uses a MutationObserver to watch the page for Shopify's real dynamic checkout buttons, then moves them into the drawer. If those buttons never appear on the page, there is nothing to capture — so you must add a small snippet that tells Shopify to render the dynamic checkout buttons into a hidden container the app can read from.
This is a one-time change to your live theme.
Open your theme code
In your Shopify admin, go to Online Store > Themes. Find your live theme, click the ... (three-dot) menu, and choose Edit code.
Open theme.liquid
In the code editor, open the layout folder and click theme.liquid.
Paste the snippet before </body>
Scroll to the bottom of the file and paste the snippet just before the closing </body> tag:
{% if additional_checkout_buttons %}
<style>.lcu-dynamic-express-payments {display: none;}</style>
<div class="additional-checkout-buttons lcu-dynamic-express-payments"> </div>
{% endif %}The {% if additional_checkout_buttons %} guard renders the container only when your store actually has dynamic checkout buttons available. The inline <style> rule keeps the raw Shopify buttons hidden on the page — the app reveals them again once it has moved them into the drawer.
Save
Click Save. Open a storefront page, add a product to the cart, and confirm the express buttons now appear in the cart drawer footer.
Add this snippet only once. Shopify's additional_checkout_buttons object can only be rendered in one place. If your theme already prints it, or another app already added a similar container, adding a second copy can cause the buttons to render twice, render in the wrong place, or not render at all. See Conflicts with the theme or other apps below.
For the full walkthrough with screenshots, open the in-app guide: in the Payments tab, click Open step-by-step guide to setup Express Payments.
Step 2 — Enable and order gateways
Open the Customizer and go to the Payments tab. Under Payment Gateways you'll find the six supported gateways, each with an enable checkbox and a pair of up/down reorder arrows.
| Gateway | Default state |
|---|---|
| PayPal | Enabled |
| Apple Pay | Enabled |
| Amazon Pay | Enabled |
| Meta Pay | Enabled |
| Shop Pay | Enabled |
| Google Pay | Enabled |
To configure them:
Turn gateways on or off
Use each gateway's checkbox to include or exclude it. Unchecking a gateway hides it from the cart even if Shopify could otherwise show it.
Reorder with the arrows
Use the up and down arrows on each row to set the on-screen sequence. The gateway at the top of the list renders first in the drawer; the bottom one renders last. The arrows are disabled at the ends of the list (you can't move the top item up or the bottom item down).
A gateway only appears to a shopper if it is both enabled here and available to that shopper from Shopify. Shopify only emits a wallet button when that wallet is turned on in your Shopify Payments settings and the shopper is eligible for it (their region, device, and browser support that wallet). So the cart can — and often will — show fewer buttons than you've enabled. Enabling a gateway here never forces a button to appear; it only allows one to appear when Shopify provides it.
Step 3 — Style the buttons
Below the gateway list, the Payments tab gives you full control over how the button stack looks. These settings apply to whichever buttons end up rendering.
| Setting | Range | Default | What it controls |
|---|---|---|---|
| Payment buttons height | 25–55 px | 45 px | The height of each express button. |
| Row gap between buttons | 0–20 px | 8 px | The vertical space between stacked buttons. |
| Payment buttons border radius | 0–100 px | 3 px | How rounded each button's corners are. Set to 0 for square buttons, higher for pill shapes. |
| Payment buttons alignment | Left / Center / Right / Space between | Center | How buttons align within the footer. Space between spreads buttons across the full width. |
| Hide Buyer Consent | On / Off | Off | Hides the buyer-consent text that wallets show for accelerated checkout. |
Alignment options in detail
| Option | Effect |
|---|---|
| Left | Buttons align to the start of the footer. |
| Center | Buttons are centered in the footer (the default). |
| Right | Buttons align to the end of the footer. |
| Space between | Buttons are pushed apart so they span the footer's full width, with equal gaps between them. |
Hide buyer consent
When a subscription product is in the cart, accelerated checkout buttons display a line of buyer-consent / subscription text (the disclosure that the shopper is agreeing to a recurring purchase). Hide Buyer Consent removes that text from the express-payment area in the drawer.
Only hide buyer consent if you understand the compliance implications for your store and market. The consent line is there to disclose recurring billing for subscription items; hiding it is a presentation choice you're responsible for. Leave it off unless you have a specific reason to remove it.
How the buttons render
Understanding the render flow helps you diagnose "the buttons aren't showing" problems.
- Capture, don't recreate. On the storefront, the cart watches the snippet's container for Shopify's dynamic checkout buttons, then moves each enabled button into its slot in the drawer footer and reveals it. Once all expected buttons are captured, the observer disconnects.
- First-add refresh. When a shopper adds their first item to an empty cart, the app re-fetches the current page's HTML to pull a fresh copy of the dynamic checkout buttons. This is necessary because Shopify only generates wallet buttons once there's something to buy — so the very first add triggers a refresh to grab the up-to-date buttons.
- Customizer preview is static. Inside the Customizer, the Payments tab shows static preview icons for the enabled gateways in your chosen order, sizing, and spacing — not live, clickable wallet buttons. This lets you lay out the design without a real cart, but it means the preview always shows every enabled gateway, even ones a real shopper might not be eligible for.
Because the preview is static, the only fully reliable way to confirm what shoppers actually see is to add a product on your live storefront and look at the real cart drawer.
Recipes
Lead with the two fastest wallets and drop the rest.
- In Payment Gateways, use the arrows to move Apple Pay to the top and Shop Pay second.
- Uncheck every other gateway (PayPal, Amazon Pay, Meta Pay, Google Pay).
- Leave styling at defaults, or set Alignment to Space between so the two buttons share the footer width.
Remember: shoppers on devices or browsers that don't support Apple Pay simply won't see that button, so keeping at least one broadly supported wallet enabled is usually safer.
A store that sells subscription products and wants a cleaner express area.
- Enable the gateways your subscription checkout supports.
- Turn Hide Buyer Consent on to remove the subscription disclosure line from the express buttons in the drawer.
- Confirm with your own compliance requirements before going live — see the warning under Hide buyer consent.
Edge cases & troubleshooting
Conflicts with the theme or other apps
Shopify's additional_checkout_buttons can only be output in one location on a page. If your theme already renders dynamic checkout buttons, or another app injects its own additional-checkout-buttons container, adding the Llama Cart snippet creates a second source of the same buttons. The result is duplicated buttons, buttons appearing outside the drawer, or no buttons at all because the markup collides.
To fix it:
- Add the Llama Cart snippet only once.
- If another app or your theme already prints
additional_checkout_buttons, remove or disable that copy so only one container exists, then keep the Llama Cart snippet. - After any change, re-test on the live storefront by adding a product and inspecting the cart drawer.
Advanced: track express payment clicks
If you run custom analytics, you can listen for both standard checkout clicks and express-payment clicks with a single DOM event, lcu:checkout:clicked, dispatched on document. For express buttons the event detail includes a type of 'express_payment' and the provider that was clicked (shop_pay, google_pay, paypal, amazon_pay, or apple_pay), along with the current cart object and a timestamp. See the developer guide on listening for checkout and express payment button clicks for the full payload.
Where to go next
Llama Cart features
Tour the Llama Cart drawer — styles, rewards, announcements, discount codes, cart lines, campaigns, and express payments — and where to set each.
Rewards & progress bars
Build a spend-threshold reward tracker in the Llama Cart — free-shipping bars, milestone tiers, icons, tooltips, and visibility rules.
