Показывает покупателю точный процент скидки

На одном из платных шаблонов InSales заметил что около каждой карточки товара выводиться информация о скидке, причем указан какой процент составляет скидка. Сразу захотелось реализовать что-то подобное на одном из сайтов. Изучил документацию и нашел как это можно сделать благодаря шаблонизатору liquid.
Собственно вот готовый код решения, останется только адаптировать под свой дизайн:
{% if product.old_price %}
{% assign current = product.price| divided_by: product.old_price %}
{% assign full = current| times: 100 %}
{% assign total = 100| minus: full %}
<div class="product_sale">-{{total |round: 0}}%</div>
{% endif %}
Альтернативный вариант в 1 строчку:
{{ product.price | divided_by: product.old_price | times: -100 | plus: 100 | round: 0 }}
Принцип работы следующий:
- Текущую цену товара делим на старую цену
- Получившуюся цифру умножаем на 100
- От 100 отнимаем получившуюся цифра
- Округляем цифру до десятков. Она и есть наша искомая скидка
10 комментариев
Дайте пожалуйста еще код что бы когда нет скидки окно не выводилось, иначе же пишет "-0%".