Showing applicable discount codes on product page

Shopify Partner
6 0 4



I am working on building a theme for my client. The store has lots of discount codes across different products which are applicable to all the customers unconditionally. The requirement here is to show the discount codes applicable for a specific product on the product page, or atleast in a seperate offers page. 

Is there any way to get the applicable discount codes for a products within the theme?



Replies 49 (49)
Not applicable
2 0 0
It looks like this only works with discount codes that are percentage based
and apply to all products. I'm installing it, because it could still be
useful, but it would be great if in the future it is able to
accommodate discount codes for specific single or groups of products rather
than the entire store. Also nice would be if it could accommodate set
dollar discounts, although being able to single out specific products would
be more important.
Shopify Partner
6 0 2

@joshrau thank you for the feedback! We'll add these features in future releases.

5 0 1

good day, can we apply different discount codes for different products separately? 

Shopify Partner
6 0 2

Hey, right now you can apply discount codes to all products. Different discount codes can be created - but one and the same customer cannot apply two discount codes at once. 

22 0 5



Did you ever get a solution for this? I am looking for the same thing.



5 0 1

no solutions whatsoever, still looking

3 0 1

Obviously it would be super great to have a built-in checkbox in the product page admin to hide / show the discount code on product pages.

The below solution is some-what involved, but once everything is set up, you'll be smooth sailing with dynamic discount codes on product pages and no app required.

Here's what I did:

Step 1: Create Discount Code
Take note of the name, you will use it in step 2.  For this example, we will call the discount code COOL5 and it will offer 5% off a collection. Pause.. Open a new tab and lets create a collection

Step 2: Create a Collection
The title of your collection is going to be very very important. The title of my collection for the discount I just created will be: DISCOUNT-COOL5-5%.

The structure of this title is: DISCOUNT-{discount_name}-{discount_amount} where discount_name and discount_amount should match the discount you're creating.

Save this collection as a manual collection, and then add any products you want (our Discount Code in step 1 will apply to these). Also, this tripped me up for a hot second, but make sure this collection is available in  at least the Store Sales Channel. I know, it sucks - this solution isn't perfect. If you don't do this the code we add in step 3 won't work since I guess collections have to be on a sales channel to appear in the collections liquid object.

Anyway, Go back to the Discount Code you were just creating in step 1 and select "Specific collections" in the "Applies To" section and select this collection you just created.

Step 3: Edit the code
This is something you only do once and it is well worth it.

Navigate to product-template.liquid by going to Online Store > Actions > Edit Code. On the left hand side search for "product-template".

Paste the below code where ever you'd like your discount code to appear on your product page and save:





        {% for collection in product.collections %}
            {% if collection.title contains "DISCOUNT" %}
                 {% assign parts = collection.title | split: "-" %}
                 {% capture discount_name %}{{ parts[1] }}{% endcapture %}
                 {% capture discount_amount %}{{ parts[2] }}{% endcapture %}
            {% endif %}
        {% endfor %}
        {% if discount_name != blank and discount_amount != blank %}
        	<p>Use code {{ discount_name }} for an instant {{ discount_amount }} off!</p>
        {% endif %}





For those interested, all this code does is loop over the product's associated collections, finds the collection where DISCOUNT is in the title and then stashes the name / amount in a variable, which you can do whatever you want with. And now you can tell why the naming is incredibly important.

Once this code is added, now your job is to just create Discount Codes and Collections as you normally would, with just a bit more attention to how things are named.

Here's a visual of the end result. I chose to place mine right under the price. The discount values you see here can all be changed by simply editing collection / discount titles. 

Screen Shot 2021-04-26 at 10.58.09 PM.png

Again, would way rather have a checkbox on the product page admin that toggled all this stuff - it'd be way cleaner, but this will do for me just fine. hit me up if you got questions.

Shopify Staff (Retired)
Shopify Staff (Retired)
4531 434 1020

Hi everyone, 

Thanks for being informative and adding constructive feedback in this thread.  While this is currently not something that can be done in the theme directly, it might be possible with the Storefront API (which is what Apps use). But it means you would have to build an app. 

Another possible workaround is when you click on the code and it adds you. Which technically is possible in code, you can create a cart URL with the discount code. But you’d have to manually do that for each product, which is the pain point. 

In saying all this, there is a feature request for this, where I have added all the feedback from this thread to it but currently there is no update and I am unable to give any timelines for it. 

To learn more visit the Shopify Help Center or the Community Blog.

Shopify Partner
79 4 11

Thanks Nick, 

Hopefully with the deployment of 2.0 we will see increased focus on value add for consumers. 



Not applicable
1 0 2

I cant believe that there is no app for this simple yet very powerful feature. On Shopify app store , there are literally thousands of apps for similar kind of features, yet there is no app for this kind of function . Below is another non Shopify store with this feature , Its in another language but , you can understand the feature. It shows how much the final price will be at the checkout (green price) .It says %25 off for purchases over $300. and since the product qualify for the discount , it shows the price in green.


This feature make customer feel like they score a nice additional discount and encourage them to complete the purchase. Of course you can directly apply the discount but it wouldn't give the excitement of scoring a deal.

Screen Shot 2021-10-10 at 21.25.57.png

4 0 1

I've spent several days searching for something to do this as well but still no updates?

A few people have mentioned they don't want to pay for a plugin to achieve this - I've struggled to even find a paid plugin that does it? Can someone please list them?


The suggested product from "Bold" does not achieve this - it simply discounts a product without any coupons.


I have tinkered with the suggestion from @Ehorvat but unfortunately this is really limited. For example if you have AfterPay running, it won't calculate the correct repayments. There's only so many areas of the website I want to hack into to get this to work.


I can't believe Shopify still haven't added a checkbox for this.

Not applicable
1 0 0

Hello - 


It's been four years and we have yet to find a solution. Someone come up with this so its already made in Shopify or on an app. 😞 Something so simple yet so complicated to have.


Screen Shot 2022-08-20 at 3.07.03 PM.png

22 0 5

Its crazy it isn't a feature yet 😞

Shopify Staff
Shopify Staff
1315 119 425

Hey folks! I think I may have a workaround for this request 🙂


It would be possible to display each individual discount code on the product page by using metafields. The general process would be to assign the discount code as a metafield value to each individual product, and then use the metafield Liquid object to output the unique value/ discount code on each product page. 


If you use this approach however, it’s important to remember that if a product’s discount code is changed, you’d need to manually update the discount metafield on the product level. 


Here’s a description of the process:


  1. Create a discount code for a specific product. 



  1. Create a product metafield definition, with a single line text content type eg: “discount” 06-03-usbk2-hxsbn


  1. On the product editing page that is associated with the discount, add the discount code to the new “discount” metafield: 06-07-saymu-s1b78


  1. If your theme supports sections on all pages, and has a custom Liquid block on your main product section (like Dawn) you can navigate to the Theme Editor and select a Product page. Add a new Custom Liquid block to the main product section, and add code that will display the value of a products' discount metafield (if one exists): 
{% if != blank %}

  <p>Use this discount for 30% off: {{ }}</p>

{% endif %} 




  1. If your theme does not have a custom Liquid block, you can add the same code to a product.liquid template or section to display the message and discount code.


  1. Create more discounts for other products, and add the discount code as the value for the discount (meta)field in the product editing page on the admin. When a buyer switches pages, they’ll see a different discount code (or no code if the product does not contain a discount metafield value). 


Hope this solution helps! You could also customize the look and feel with CSS, and potentially build this as its own block element. It would also be a great idea for an app developer to build this logic and workflow into an app!!



Liam | Developer Advocate @ Shopify 
 - Was my reply helpful? Click Like to let me know! 
 - Was your question answered? Mark it as an Accepted Solution
 - To learn more visit or the Shopify Web Design and Development Blog

11 0 5

I want to offer a solution! 

I was able to set a % or fixed discount from the DISCOUNT section in Shopify Admin. You can apply this to 1 or as many collections as need more. You could also apply this to specific products individually I think. Title the discount name with the % or fixed amount you want to offer, this way you can keep track of what it is used for. 

Next, I added tags to the associated products you want to discount, you can do this in bulk by filtering by collection in the PRODUCTS section. The tags could be DISOUNT-5% or similar.

Then on the products page you can add logic, IF PRODUCT.TAGS CONTAIN DISCOUNT-5% THEN... add your logic to display discounts. I simply did the current price * percent discount to output my results. See below!

Here is my output that I came up with:


Please reach out if you want any other help on this or have any suggestions/ recommendations!