Shopify Dawn Theme: How to Hide Prices and Use 'Price on Request' Like a Pro

Hey there, fellow store owners! Ever found yourself in a tricky spot where you need to showcase certain products on your Shopify store, but for various reasons, you can't display the price right upfront? Maybe it's a high-value item, something custom, or a product with fluctuating market rates. You want to use a "Price on Request" option instead, especially if you're rocking the popular Dawn theme.

This exact scenario popped up in a recent Shopify community discussion, and it's a super common challenge. The good news? Our amazing community members chimed in with some fantastic, app-free solutions that you can implement with a bit of theme customization. Let's dive into how you can achieve this, drawing directly from their expert advice!

The Core Challenge: Hiding Prices for Specific Products

The original poster, @snk729, was looking for a way to hide prices for about 10-12 specific products on their Dawn theme and replace them with a "Price on Request" message. They wanted to do this without adding another app to their store, which is a smart move for performance and cost.

The community quickly rallied, offering two primary methods: using product tags or a combination of metafields and custom templates. Both are valid, but they each have their sweet spots.

Method 1: The Quick & Easy Way with Product Tags

For a limited number of products, like @snk729's 10-12 items, using product tags is often the quickest and cleanest initial setup. @dinesh_kumar and @mastroke were big proponents of this approach. It's flexible because you can apply it to as many products as needed just by adding a tag, without touching code each time.

How to Implement "Price on Request" Using Product Tags:

  1. Assign a Unique Tag: For each product where you want to hide the price, add a specific tag. A good example is price-on-request or price-request.
  2. Modify Your Price Snippet: In your Dawn theme, you'll typically find the price output within a snippet file, often named something like price.liquid or directly in your card-product.liquid or main-product.liquid. You'll need to wrap the existing price code with a conditional statement.

    Here's how @mastroke suggested it:

    {% if product.tags contains ‘price-on-request’ %}
    
    

    Price on Request

    {% else %} {%- existing price code stays here -%} {% endif %}

    You'll need to locate all instances where the price is displayed (e.g., product cards, product page, search results) and apply similar logic. This might involve editing several files, but typically price.liquid is a good starting point if your theme uses it.

  3. Hide the Add to Cart Button: If you're not showing a price, you probably don't want customers adding the item to their cart. You'll need to find the code for your "Add to Cart" button (often in buy-button.liquid or directly in main-product.liquid) and add a similar conditional statement.

    @mastroke provided this handy snippet:

    {% unless product.tags contains ‘price-request’ %}
    {%- existing buy button code -%}
    {% endunless %}
    
  4. Style It Up: Don't forget to add some CSS to make your "Price on Request" text look good!

Method 2: The Scalable & Clean Approach with Metafields and Custom Templates

While tags are great for quick fixes, the combination of a custom metafield and a separate product template, as initially proposed by @snk729 and confirmed as "perfectly fine" by @devcoders, is a very clean and scalable solution. This method gives you more control and keeps your product data organized.

How to Implement "Price on Request" Using Metafields & Custom Templates:

  1. Create a Product Metafield: Go to your Shopify admin, navigate to Settings > Custom data > Products. Create a new metafield definition, perhaps named "Price on Request" with a "True or false" content type. This will be your control switch.
  2. Create a Custom Product Template: In your Shopify Theme Editor (Online Store > Themes > Actions > Edit code), create a new product template. Name it something descriptive, like product.price-request. Base it on the default product template. This template will be specifically for products where you want to hide the price.
  3. Modify Your New Template:
    • In your new product.price-request template, locate the section that displays the product price. Replace the existing price output code with your "Price on Request" text or a custom button.
    • Similarly, find the "Add to Cart" button code and either remove it or replace it with a contact form, a link to your contact page, or a custom inquiry form, as @devcoders suggested.
  4. Modify Product Card Output (Collections, Featured Products): You'll also need to edit snippets like card-product.liquid (or wherever product card prices are rendered) to check your new metafield. If the "Price on Request" metafield is set to true for a product, display "PRICE ON REQUEST" there as well, instead of the actual price. This ensures consistency across your store.
  5. Assign to Products: For each product requiring "Price on Request," assign the price-request template you created and set its "Price on Request" metafield to true.

Don't Forget These Critical Considerations!

While implementing these solutions, it's easy to miss a few crucial spots. The community thread highlighted some advanced considerations that are vital for a complete and secure implementation:

  • Hide Prices Everywhere: As @devcoders wisely pointed out, you need to double-check that the price is hidden in all possible locations. This includes search results, quick view pop-ups, featured product sections, the cart page, and any product feeds you might be using. A thorough audit is key!
  • Structured Data & SEO Implications: This is a big one, brought up by @tim_tairli. Shopify automatically generates structured data (often in JSON-LD format) for products, which search engines like Google use to display rich snippets (including prices) in search results.

    If you have a price set on a product in Shopify, even if you hide it on the front end, it can still appear in search results because of this structured data. You'd need to remove or modify the structured data output in your theme, typically found in main-product.liquid, looking for code like this:

    
          
        

    However, @tim_tairli also noted that Google doesn't particularly like products without prices in their structured data, which could impact your SEO. It's a trade-off to consider for these specific products.

  • JSON Endpoints Can Reveal Prices: Another excellent point from @tim_tairli: if a price is set on a product in your admin, it can still be revealed by accessing the product's JSON data directly via URLs like https://yoursite.com/products/product-handle.json or https://yoursite.com/products/product-handle.js. While most casual browsers won't do this, it's something to be aware of if absolute price secrecy is paramount.

Whichever method you choose, remember that thorough testing is your best friend. Check your changes across different pages, devices, and even incognito windows to ensure everything works as expected. The Shopify community is a treasure trove of knowledge, and this discussion is a perfect example of how combining different insights leads to robust solutions. Happy customizing!

Share:

Start with the tools

Explore migration tools

See options, compare methods, and pick the path that fits your store.

Explore migration tools