Простое и в то же время эффективное решение как вывести вместо старой цены в бейджах товара размер скидки на него в процентах.
В шаблоне
{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 ''; ?>