How can I change product price to 'call for price' on my page?

Topic summary

A user wants to display “call for price” instead of $0.00 for specific products on their Shopify store.

Primary Solution:
Modify the product-template.liquid and collection-template.liquid files by wrapping price display code in a conditional statement:

  • If product price > 0, show the price
  • If price ≤ 0, display “call for price”

Alternative Approach (for selective products):
Use product tags to control which items show pricing:

  • Tag products with “no-price”
  • Add conditional code checking for this tag
  • Allows bulk editing and easier management than creating separate templates

Implementation Notes:

  • Always duplicate the theme before making changes
  • Search for “{{ product.price }}” or “{{ variant.price }}” in template files
  • For newer themes, check collection.liquid if traditional template files don’t exist
  • The tag-based method is recommended over creating alternate templates, which requires manually applying templates to individual products

Current Status:
Multiple users are seeking help implementing this feature. One user using the Motion theme is having difficulty locating the price code in their specific theme structure.

Summarized with AI on October 26. AI used: claude-sonnet-4-5-20250929.

Hi - I have been trying to change our one product page price from $0.00 to ‘call for price’. Any idea how to get it right?

URL: https://www.sportscarboutique.com/collections/wheels

You’ll have to go into both your collection-template.liquid file and product-template.liquid file and find where the price occurs in the code and make a condition around it:

{% if product.price > 0 %}
  {{ product.price | money }}
{% else %}
  Call for pricing
{% endif %}

Obviously it’s not going to look exactly like this, but that’s the general idea. Duplicate your theme, then go into the duplicate and open up those files. Ctrl + F and search for “price” and look for something that kind of looks like what I showed above “{{ product.price }}” or even “{{ variant.price }}” – put something next to it like a string of characters “aaaaa” and save the file. Refresh and if you see the string of characters appear next to the price you’ll know you’re in the right spot. Then wrap the condition around it.

I read on another blog post that you needed to go in and create a new template, as well as a new section if you wanted to change the price for some items (ie; I have a few items on my store that I’d like to keep as ‘call for price’.) Will this method work instead? It’s not clear to me where I need to rewrite the code if I just open a new template, as it doesn’t show any prices–only this:

{% section ‘product-template’ %}
{% section ‘product-recommendations’ %}
{% section ‘product-collection-links’ %}

You could make new files and do it that way, but the way I posted will also work. {% section ‘product-template’ %} is where you’ll find the price for your product page. In the sections folder there will be a file called “product-template.liquid”. If you want I can just do this for you real quick, wouldn’t take much time. I’ll just need to request access to your themes. I’ll duplicate your live theme and then make the changes on the duplicate and you can preview them before publishing. If that’s ok let me know and I’ll request access.

Thanks for the quick response! I appreciate the offer for help. If I do this, will it affect all the items in my store? Is there a way to toggle between the two themes once I’ve made a duplicate, so that I can apply the ‘no price’ option to individual products?

The way that I posted would only affect prices that are equal to or less than 0. Any changes you make on your duplicate will not affect your live store, so just don’t publish the theme until you have everything working the way you want to. Another way you could do this is to tag your products that you do not want to have a price with something like “no-price”. Then in your code you can say:

{% unless product.tags contains 'no-price' %}
  {{ product.price }}
{% else %}
  Call for pricing.
{% endunless %}

That way if you ever don’t want to show a price on your product all you would have to do is tag it “no-price”. There’s multiple ways you can do it, if you were to go the route of making an alternate product-template and collection-template, you’d need to go through all your products and collections individually and apply the alternate template to them through the admin which could be a pain. This way, you only have to make one adjustment in the code, and you can bulk edit the products and add the tag to all of them at once.

collection-template.liquid file and product-template.liquid file

These don’t exist [anymore?] ~

It really depends on the theme, they exist in most themes. You might want to look in collection.liquid – that is the very base file that is output on all collection pages. It’s just a typical practice that instead of finding any code in collection.liquid, when you open the file typically it points to another file:

{% section 'collection-template' %}

The reason being is that in section files you can include a schema, which allows the client more of an ability to edit the collection pages themselves through the customize editor. So check collection.liquid

Hello Ninthony,

I am attempting to accomplish something similar on my store. I am using the Motion theme, and I am struggling to locate where the pricing occurs in the code. My Site is https://blackswanbarrelsshop.com/.

Here is a screenshot of the sections I have open in the code editor. I’m not having any luck in finding the price section in the code.

Any help is appreciated!

Thank you,

Josh Vassallo

hi! can you reach out to me - I would like to add this edit to my store, thanks!