How do I create a pre-order button in the Refresh Theme?

Hi guys,

I want to create a product template that I can use for pre-order products that will show a pre-order button in place of the add to cart button. I found a guide and tried to follow it but got a little lost, guessing it was not for my theme.

Just to be clear, I dont need to change anything to allow pre-order payments as we take full payment up front. This has been our model for 5 years so not looking to change anything around payments.

Thanks in advance for any help.

Hi @kronen-p0ps If you need this customization setup for you then contact me by my email for services.

It’s pretty quick if it’s just button text for a single product with no dynamic variant behavior.
Contact info in forum signature.
ALWAYS please provide context, examples: store url, theme name, post url(s) , or any further detail in ALL correspondence.

The old tutorials for this apply to just the old vintage themes.

If you just need to change the button text..,

Generally for dawn based themes for products with a SINGLE/default variant, or all variants are preorder, you basically have to create an alternate template i.e. product.preorder.json then down in the buy-buttons snippet add logic to show a different text when it’s the preorder template instead of a regular template.

{% if template.suffix == 'preorder'%} preorder {% else %} {{ 'products.product.add_to_cart' | t }} {% endif %}

https://github.com/Shopify/dawn/blob/main/snippets/buy-buttons.liquid#L91

:bomb: Keep in mind if you have variants that are NOT preorder then you need javascript to dynamically switch text and or other states of features on the page along with logic to know WHEN a variant is regular or preorder.

If your international you will need to create a translation key, i.e. product.product.preorder in the themes locales.

Hi Paul,

I am capable of doing this myself I am sure, but it would be much quicker to hire someone to do it for me. Just curious on what the cost would be for setting this up? It will be for a collection of items, we sell in stock and pre-order items so anything I add to the pre-order collection would need to have a pre-order button. I am guessing likely by using different product page templates?

@kronen-p0ps It’s like $10 bucks and that’s mainly just due to the time to get connected and access and talking, the actual code change is a like a minute if the logic is crystal clear lol.

raw implementation , no styling , no revisions, no dynamism, nothing fancy.

Also note this cannot change the behavior or content of dynamic checkout buttons(applepay, paypall, etc) so that has to be disabled for those products.

If you want the logic to be collection based a new template isn’t need you need to loop the products collections and check if it’s in it for what text to display in the buy buttons snippet.

https://shopify.dev/docs/api/liquid/objects/product#product-collections

Or tag based, as generally it can be simpler to be tag based where the collection is an automatic collection using product tag as a condition.

{% if product.tags contain “preorder” %}…

Depends on your workflow need, just let me know which if you email me, though I could literally slap in all three condition types for the same effect.

Hey,
Refresh theme doesn’t offer a built-in toggle for this - Shopify generally treats button text as universal across products unless you customize the code. What you’ll want to do is duplicate your existing product template. Navigate to Online Store → Themes → Actions → Edit code, find your main template, and create a copy specifically for pre-orders.

Inside that template (typically in sections/main-product.liquid or a product form snippet), add some Liquid logic that checks whether a product has a specific tag - something like “preorder.” When that tag is present, the button displays “Pre-order” instead of the default “Add to cart.” After setting up the template, you assign it to individual products through the Theme templates dropdown in each product’s admin page.

The catch: you’re taking on code maintenance - theme updates might overwrite your changes, and you’ll need to tag products manually.

Feel free to reach out if you go the custom route.

Cheers,
Yauheni