Issue: A Shopify store owner wants to display an unbranded “Buy It Now” dynamic checkout button on product pages, rather than showing branded payment options (Apple Pay, PayPal, etc.) or disabling the button entirely.
Initial Suggestions: Disabling specific payment methods in Shopify’s Payment Settings would show only the unbranded button, but the original poster wants to keep all payment methods active while displaying a generic button.
Community Solution: User s4n provided a code workaround for the Dawn theme:
Modify the buy-buttons.liquid file in the snippets section
Replace the dynamic checkout code block with a custom unbranded button that triggers the hidden branded buttons via JavaScript
The solution hides the branded buttons (display:none) while showing a styled unbranded button
Requires testing on a backup/draft theme before going live
Current Status: The thread remains open with a recent error report (cblumberg1) encountering a “Cannot read properties of null” JavaScript error, suggesting the selector may not work universally across all theme versions or configurations.
Summarized with AI on October 26.
AI used: claude-sonnet-4-5-20250929.
I’m using a theme which has a parameter to show dynamic button in product page. When I toggle it off it stops showing the “Buy It Now” button completely. If I toggle it on it’s shows the button with Apple Pay, Paypal etc. brands. I know that’s feature for the Shopify but I want to show “Buy It Now” button without the branding. Is there any way for this case?
According to Shopify’s guide, you can disable those checkout methods in your Payment Settings then only the unbranded button will be displayed. Customers will be redirected to Shopify checkout instead of the cart page, after clicking the button.
I know that but I do not want to disable these payment methods. I just want to show checkout button with “Buy It Now” text and when the user clicks on it, it will be redirect to the checkout page.
@fatihturan No problem, thanks for the update. I’m still having this issue and keep getting pushed to ‘hire an expert’ in order to see if they can sort it. Seems like it should be standard functionality as part of branding your our store. If I get it resolved I’ll let you know!
I had to solve this as well and found a way to do it. NOTE: this was done on a Dawn theme and may not work for other themes.
Add the code below inside the {%- if block.settings.show_dynamic_checkout -%} statement to the buy-buttons.liquid file in the snippets section of your code editor.
Buy It Now!
{{ form | payment_button }}
Make sure to do this on a backed-up theme in draft status so you can confirm it is working before putting it live.
I had to solve this as well and found a way to do it. NOTE: this was done on a Dawn theme and may not work for other themes.
Add the code below inside the {%- if block.settings.show_dynamic_checkout -%} statement to the buy-buttons.liquid file in the snippets section of your code editor.
Buy It Now!
{{ form | payment_button }}
Make sure to do this on a backed-up theme in draft status so you can confirm it is working before putting it live.
Hi A_hs82, Yes, the only thing inside the original block of code should be shown below:
{%- if block.settings.show_dynamic_checkout -%}
{{ form | payment_button }}
{% endif %}
The code for {{ form | payment_button }} is contained within the new code in my response above. Paste it inside the if statement (between the “{%- if block.settings.show_dynamic_checkout -%}” and the “{% endif %}” tags)
Sorry to be a bother but could you share a screenshot of your code? I’ve been struggling with this for days. Nobody with card has bought anything from my site so I think the dynamic checkout is hurting me. Thank you so much
Is the “data-testid” supposed to be replace with something else? When I tried your code, the button looked how I wanted it to look, but it was not clickable.
Hi! I know this is an old post, but I just tried this and got this error: TypeError: Cannot read properties of null (reading ‘click’)
at HTMLButtonElement.onclick (