Простое и в то же время эффективное решение как вывести вместо старой цены в бейджах товара размер скидки на него в процентах.
В шаблоне
{if $old_price?}
<div class="product-tag-sale">
-{$_modx->runSnippet('salepercent', [
'price' => $price,
'old_price' => $old_price,
])}%
</div>
{/if}
Сниппет salepercent
<?php
$price = empty($price) ? 0 : str_replace(' ', '', $price);
$old_price = empty($old_price) ? 0 : str_replace(' ', '', $old_price);
if($old_price > 0){
return floor((($old_price - $price) / $old_price) * 100);
}
return '';
?>