Unable to display out the percentage badge

Hi there, I was using this code to display my product discount badge but the code was able to run on span but unable on using assign. Since I want to display the percentage like the second image.

{% if product.compare_at_price >= 0 and product.compare_at_price != null %}

Save {% assign saving = variant.compare_at_price | minus: variant.price | times: 100 | divided_by: variant.compare_at_price %} {% assign percentage = saving | at_least: percentage %}
{% endif %}

Hi @Boonphei ,

Try this code instead.

{% if product.compare_at_price >= 0 and product.compare_at_price != null %}

Save

{{ product.compare_at_price_max | minus:product.price | times:100 | divided_by:product.compare_at_price_max | json }}%
{% assign saving = variant.compare_at_price | minus: variant.price | times: 100 | divided_by: variant.compare_at_price %}
{% assign percentage = saving | at_least: percentage %}

{% endif %}

Hi @made4Uo ,

it was unable to display the percentage too. Since the fourth row of this code have the wrong formula so I want to remove it.

Oh. Got it. You just have to add the forloop for variants. Try this

{% if product.compare_at_price >= 0 and product.compare_at_price != null %}

      {% assign percentage = 0 %}
      {% for variant in product.variants %}
      {% assign saving = variant.compare_at_price | minus: variant.price | times: 100 | divided_by: variant.compare_at_price | round %}
      {% assign percentage = saving | at_least: percentage %}
      {% endfor %} 
Save

     {{ percentage | append: "%" }}

{% endif %}